summaryrefslogtreecommitdiffstats
path: root/install/po
diff options
context:
space:
mode:
authorJohn Dennis <jdennis@redhat.com>2012-02-21 17:06:05 -0500
committerJohn Dennis <jdennis@redhat.com>2012-02-21 17:06:05 -0500
commitd4cc16766a5a1e613939177e04bcb0f7211c2230 (patch)
tree81c8c69ad22c27b527300b6abc19d4c2308e83d9 /install/po
parent62b91f5acffcd30bf031b6455323c01453386eb2 (diff)
downloadfreeipa-d4cc16766a5a1e613939177e04bcb0f7211c2230.tar.gz
freeipa-d4cc16766a5a1e613939177e04bcb0f7211c2230.tar.xz
freeipa-d4cc16766a5a1e613939177e04bcb0f7211c2230.zip
pulled new po files from Transifex
Diffstat (limited to 'install/po')
-rw-r--r--install/po/as.po7214
-rw-r--r--install/po/bn_IN.po7214
-rw-r--r--install/po/de.po7219
-rw-r--r--install/po/el.po7212
-rw-r--r--install/po/es.po9772
-rw-r--r--install/po/fa.po7207
-rw-r--r--install/po/fr.po9002
-rw-r--r--install/po/gu.po7212
-rw-r--r--install/po/he.po7212
-rw-r--r--install/po/id.po7217
-rw-r--r--install/po/it.po7212
-rw-r--r--install/po/ja.po7208
-rw-r--r--install/po/kn.po7253
-rw-r--r--install/po/ko.po7207
-rw-r--r--install/po/nl.po7216
-rw-r--r--install/po/pl.po7423
-rw-r--r--install/po/pt.po7212
-rw-r--r--install/po/pt_BR.po7214
-rw-r--r--install/po/ru.po7261
-rw-r--r--install/po/sv.po7214
-rw-r--r--install/po/uk.po10689
-rw-r--r--install/po/zh_CN.po7219
-rw-r--r--install/po/zh_TW.po7205
23 files changed, 86410 insertions, 87604 deletions
diff --git a/install/po/as.po b/install/po/as.po
index 6d9b51b72..3276c4857 100644
--- a/install/po/as.po
+++ b/install/po/as.po
@@ -2,160 +2,511 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:49+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/team/as/)\n"
+"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/language/as/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: as\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/bn_IN.po b/install/po/bn_IN.po
index 70eac1190..cc7a230df 100644
--- a/install/po/bn_IN.po
+++ b/install/po/bn_IN.po
@@ -2,14 +2,15 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
-# sankarshan mukhopadhyay <sankarshan@fedoraproject.org>, 2010.
+# Translators:
# jdennis <jdennis@redhat.com>, 2011.
+# sankarshan mukhopadhyay <sankarshan@fedoraproject.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
"Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n"
"MIME-Version: 1.0\n"
@@ -18,146 +19,496 @@ msgstr ""
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "বাতিল করা হয়েছে।"
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "অজানা কমà§à¦¯à¦¾à¦¨à§à¦¡ %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "পাসওয়ারà§à¦¡ দà§à¦Ÿà¦¿ মিলছে না"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "à¦à¦•à¦Ÿà¦¿ পসিকà§à¦¸ (posix) গà§à¦°à§à¦ª আগে থেকে উপসà§à¦¥à¦¿à¦¤"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "ভà§à¦² পà§à¦°à¦•à¦¾à¦°"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "কেবলমাতà§à¦° à¦à¦•à¦Ÿà¦¿ মান অনà§à¦®à¦¦à¦¿à¦¤"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "à¦à¦•à¦Ÿà¦¿ দশমিক সংখà§à¦¯à¦¾ হওয়া জরà§à¦°à¦¿"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -187,6 +538,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -195,20 +547,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -222,13 +566,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -237,222 +574,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -540,673 +1094,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1268,155 +1732,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1429,189 +1844,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr ""
+
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
-"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1619,40 +2016,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1666,130 +2075,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1802,6 +2188,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1811,11 +2205,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1841,7 +2238,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1870,357 +2267,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2257,183 +2861,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2476,146 +3025,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2637,7 +3163,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2645,7 +3171,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2654,7 +3180,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2665,263 +3191,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2946,83 +3420,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3049,93 +3517,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+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
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3191,218 +3810,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3434,1017 +4037,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4484,63 +5225,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4581,130 +5306,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4713,46 +5503,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d ভেরিয়াবেল"
@@ -4770,10 +5537,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d পà§à¦²à¦¾à¦—-ইন লোড করা হয়েছে"
@@ -4783,7 +5551,7 @@ msgstr[1] "%(count)d পà§à¦²à¦¾à¦—-ইন লোড করা হয়েছে"
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4809,105 +5577,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4928,33 +5695,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5010,136 +5760,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5161,32 +5876,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5209,18 +5911,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5229,95 +5936,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5362,164 +6042,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5556,18 +6216,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
+msgstr ""
+
+#: ipalib/plugins/role.py:67
+msgid "roles"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5576,95 +6237,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5692,89 +6330,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5827,118 +6450,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5955,189 +6542,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6147,223 +6723,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6404,235 +6999,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "\"%(value)s\" বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ যোগ করা হয়েছে"
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6640,505 +7213,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "বাতিল করা হয়েছে।"
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "অজানা কমà§à¦¯à¦¾à¦¨à§à¦¡ %(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "পাসওয়ারà§à¦¡ দà§à¦Ÿà¦¿ মিলছে না"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "à¦à¦•à¦Ÿà¦¿ পসিকà§à¦¸ (posix) গà§à¦°à§à¦ª আগে থেকে উপসà§à¦¥à¦¿à¦¤"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "ভà§à¦² পà§à¦°à¦•à¦¾à¦°"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "কেবলমাতà§à¦° à¦à¦•à¦Ÿà¦¿ মান অনà§à¦®à¦¦à¦¿à¦¤"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "à¦à¦•à¦Ÿà¦¿ দশমিক সংখà§à¦¯à¦¾ হওয়া জরà§à¦°à¦¿"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7159,6 +7288,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7183,283 +7317,297 @@ msgstr "সিরিয়াল নমà§à¦¬à¦° পাওয়া সমà§à¦­à¦¬ à¦
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7479,248 +7627,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7811,5 +7947,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/de.po b/install/po/de.po
index 1b62da23f..43f33180b 100644
--- a/install/po/de.po
+++ b/install/po/de.po
@@ -2,14 +2,16 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Fabian Affolter <fab@fedoraproject.org>, 2011.
+# Mario Blättermann <mariobl@freenet.de>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
-"Last-Translator: fab <fab@fedoraproject.org>\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
+"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
"Language-Team: German <trans-de@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,146 +19,496 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Geben Sie %(label)s zum Überprüfen ein:"
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Passwörter stimmen nicht überein!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Abgebrochen."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "Ein interner Fehler ist aufgetreten"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "Unbekannter Befehl %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "Keine Anmeldeinformationen-Cache gefunden"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Ticket abgelaufen"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r wird benötigt"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r ungültig: %(error)s "
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Passwörter stimmen nicht überein"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Befehl nicht implementiert"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Dieser Eintrag existiert bereits"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -186,6 +538,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "Gruppe '%s' existiert nicht"
@@ -194,20 +547,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -221,13 +566,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACIs"
@@ -236,222 +574,439 @@ msgstr "ACIs"
msgid "ACI name"
msgstr "ACI-Namen"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "Benutzer-Gruppe"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "Berechtigungen"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "Attribute"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "Typ"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "Mitglied von"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "Mitglied einer Gruppe"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "Filter"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -539,673 +1094,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "Ort"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr "Karte"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "Key"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr "Einhänge-Informationen"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "Beschreibung"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Failed managedby"
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
-msgid "Failed to remove"
+#: ipalib/plugins/baseldap.py:163
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:166
+msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:474
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1267,155 +1732,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "Zertifikat"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "Betreff"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1428,189 +1844,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "Grund"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "Fehler"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
-"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1618,40 +2016,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1665,130 +2075,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1801,6 +2188,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1810,11 +2205,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1840,7 +2238,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1869,357 +2267,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2256,183 +2861,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2475,146 +3025,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2636,7 +3163,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2644,7 +3171,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2653,7 +3180,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2664,263 +3191,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2945,83 +3420,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3048,93 +3517,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3190,218 +3810,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr ""
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3433,1017 +4037,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
-msgstr "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
+msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr "Automount"
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4483,63 +5225,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4580,130 +5306,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4712,46 +5503,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4769,10 +5537,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4782,7 +5551,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4808,105 +5577,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4927,33 +5695,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5009,136 +5760,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5160,32 +5876,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5208,18 +5911,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5228,95 +5936,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5361,164 +6042,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5555,18 +6216,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5575,95 +6237,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5691,89 +6330,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5826,118 +6450,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5954,189 +6542,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6146,223 +6723,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6403,235 +6999,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6639,505 +7213,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Geben Sie %(label)s zum Überprüfen ein:"
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Passwörter stimmen nicht überein!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "Abgebrochen."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "Keine Anmeldeinformationen-Cache gefunden"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "Ticket abgelaufen"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r ungültig: %(error)s "
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7158,6 +7288,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7182,283 +7317,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7478,248 +7627,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7810,5 +7947,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/el.po b/install/po/el.po
index 9227c5b8e..cc2f3e7d6 100644
--- a/install/po/el.po
+++ b/install/po/el.po
@@ -2,12 +2,13 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:48+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek <trans-el@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -16,146 +17,496 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/es.po b/install/po/es.po
index ebe8f44cc..b976d8239 100644
--- a/install/po/es.po
+++ b/install/po/es.po
@@ -1,18 +1,20 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
-#
-# Hugo Jiménez Hernández <hjimenezhdez@gmail.com>, 2011.
-# jdennis <jdennis@redhat.com>, 2011.
+#
+# Translators:
+# Eduardo Villagrán M <gotencool@gmail.com>, 2012.
# gguerrer <gguerrer@redhat.com>, 2011.
# Héctor Daniel Cabrera <logan@fedoraproject.org>, 2011.
+# Hugo Jiménez Hernández <hjimenezhdez@gmail.com>, 2011.
+# jdennis <jdennis@redhat.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-10-12 23:51+0000\n"
-"Last-Translator: John Dennis <jdennis@redhat.com>\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
+"Last-Translator: Eduardo Villagrán M <gotencool@gmail.com>\n"
"Language-Team: Spanish (Castilian) <trans-es@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,255 +22,497 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
-msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Ingrese %(label)s nuevamente para verificar: "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "¡Las contraseñas no coinciden!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Cancelado."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
msgstr ""
-"\n"
-"Sub-paquete que contiene todos los complementos del núcleo.\n"
-#: ipalib/plugins/aci.py:20
-msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-"\n"
-"Instrucciones de control de acceso al directorio del servidor (ACIs)\n"
-"\n"
-"ACIs son utilizadas para permitir o negar acceso a la información. Actualmente este módulo\n"
-"está diseñado para permitir el acceso (no para negarlo).\n"
-"\n"
-"Los comandos aci están diseñados para garantizar permisos que permitan actualizar\n"
-"o eliminar entradas existentes, o para añadir nuevas. El objetivo de ACIs\n"
-"que se ofrece hunto a IPA es el de ofrecer un conjunto de permisos de bajo nivel que\n"
-"garanticen acceso a grupos especiales denominados grupos de tareas. Estos permisos de\n"
-"nivel bajo pueden ser transformados en funciones que garanticen acceso más amplio. Estas\n"
-"funciones son otro tipo de grupo, denominados funciones.\n"
-"\n"
-"Por ejemplo, si posee grupos de tareas que permiten agregar y modificar usuarios, podría\n"
-"crear la función useradmin. Podría asignar usuarios a la función useradmin\n"
-"para permitirles realizar las operaciones definidas por el grupo de tareas.\n"
-"\n"
-"Puede crear ACIs que deleguen permisos de modo que los usuarios en el grupo A puedan modificar\n"
-"atributos en el grupo B.\n"
-"\n"
-"La opción type es un mapeo que se aplica a todas las entradas en las ubicaciones\n"
-"de equipo de grupos o de usuario. Ha sido creada fundamentalmente para ser\n"
-"utilizada cuando se garanticen permisos agregados (por ejemplo escribir nuevas entradas).\n"
-"\n"
-"Un ACI se constituye de tres partes:\n"
-"1. destino\n"
-"2. permisos\n"
-"3. reglas de obligación\n"
-"\n"
-"El destino es un conjunto de reglas que definen los objetos LDAP que están\n"
-"siendo utilizados. Este elemento incluye una lista de atributos, un área del árbol\n"
-"del LDPA en cuestión, y un filtro LDAP.\n"
-"\n"
-"Los destinos son:\n"
-"- attrs: lista de los atributos involucrados\n"
-"- type: un tipo de objeto (user, group, host, service, etc)\n"
-"- memberof: miembros de un grupo\n"
-"- targetgroup: garantiza el acceso para modificar un grupo específico. Esto ha sido diseñado\n"
-" fundamentalmente para habilitar usuarios, o agregar o eliminar miembros de un grupo específico.\n"
-"- filter: Un filtro LDAP legal utilizado para precisar el alcance del destino.\n"
-"- subtree: Utilizado para aplicar una regla sobre todo un conjunto de objetos. Por ejemplo,\n"
-" para permitir agregar usuarios a los que necesite garantizarles permisos para que puedan \"agregar\" en el sub árbol\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. La opción sub árbol\n"
-" es a prueba de fallos para objetos que puedan haber quedado fuera de la opción tipo.\n"
-"\n"
-"Los permisos definen qué es lo que le es permitido realizar al ACI, y pueden ser uno o más\n"
-"1. write - modifica uno o más atributos\n"
-"2. read - lee uno o más atributos\n"
-"3. add - agrega una nueva entrada en el árbol\n"
-"4. delete - elimina una entrada existente\n"
-"5. all - se garantizan todos los permisos\n"
-"\n"
-"Tenga en cuenta la diferencia entre atributos y entradas. Los permisos son\n"
-"independientes, de modo que ser capaz de agregar un usuario no significa que el usuario podrá\n"
-"ser modificable.\n"
-"\n"
-"La regla de obligación define a quién le garabtiza permisos el ACI en cuestión. El servidor LDAP\n"
-"permite esto a cualquier entrada LDAP válida, pero sugerimos la utilización del grupo de tareas\n"
-"de modo que los derechos puedan ser compartidos fácilmente a través de las funciones.\n"
-"\n"
-"Para obtener una mayor descripción de los controles de accesos visite\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-"NOTA: Ahora los ACIs son agregados mediante el complemento de permisos. Estos ejemplos se ofrecen para\n"
-"demostrar de qué manera funcionan las diferentes opciones, pero esto es hoy en día realizado mediante la\n"
-"línea de comando de permisos (vea el último ejemplo).\n"
-"\n"
-" Agregar un ACI de modo que el grupo \"secretaries\" pueda actualizar la dirección sobre cualquier usuario:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Mostrar el nuevo ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Agregar un ACI que otorgue permisos a los miembros de \"addusers\" para que puedan agregar nuevos usuarios:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Agregar un ACI que permita a los miembros de \"editors\" administrar miembros del grupo \"admins\":\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Agregar un ACI que permita a los miembros del grupo \"admin\" administrar la calle y el código postal de aquellos que forman parte del grupo \"editors\":\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Agregar un ACI que permita al grupo \"admins\" administrar la calle y el código postal de aquellos que trabajen para el jefe:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Agregar un nuevo registro completo a IPA que no se encuentre cubierto por ninguna de las opciones --type, creando un permiso:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"El comando show muestra el ACI raw 389-ds.\n"
-"\n"
-"IMPORTANTE: Cuando se modifiquen los atributos de destino de un ACI ya existente\n"
-"debe también incluir todos los atributos existentes. Cuando se realice un aci-mod, el\n"
-"targetattr REEMPLAZA los atributos actuales, no se los agrega.\n"
-"\n"
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
-msgstr "Una lista de valores ACI"
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
msgstr ""
-"\n"
-" Dado un nombre y un prefijo construir un nombre de ACI."
-#: ipalib/plugins/aci.py:181
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr "Pruebe `ipa --help` para una lista de opciones generales."
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr "Nombre del comando"
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr "No existe el fichero para leer"
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "error %(code)d desconocido de %(server)s: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "ha ocurrido un error interno"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "ha ocurrido un error interno en el servidor en %(server)r"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "comando desconocido %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "error en el servidor %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "no es posible conectar con %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Petición JSON-RPC no válida: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr "error de clasificación para el transporte de datos XML-RPC: %(error)s "
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Error de kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "no se ha recibido ninguna credencial de Kerberos"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "El servicio %(service)r no se ha encontrado en la base de datos Kerberos"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "No se han encontrado credenciales de cache"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "El ticket ha expirado"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "Los permisos de credenciales de caché son incorrectos"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "Las credenciales de caché están mal formadas"
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "No es posible resolver KDC para el reinado solicitado"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Acceso insuficiente: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "el comando %(name)r no tiene argumentos"
+
+#: ipalib/errors.py:664
+#, 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] "el comando %(name)r lleva al menos %(count)d argumento"
+msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "superponiendo argumentos y opciones: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r es necesario"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r inválido: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "API no posee tal nombre de espacio: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Las contraseñas no coinciden"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "El comando no se ha implementado"
+
+#: ipalib/errors.py:785
+msgid "Client is not configured. Run ipa-client-install."
+msgstr "El cliente no está configurado. Ejecutar la API de cliente a instalar."
+
+#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147
+#: ipalib/errors.py:1462 ipalib/errors.py:1479
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Esta entrada ya existe"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Debe registrar el equipo para poder generar un servicio de host"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "El servicio principal no tiene la forma de servicio/nombre de equipo totalmente calificado: %(reason)s"
+
+#: ipalib/errors.py:877
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "El reinado para el principal no coincide con el reinado para este servidor IPA"
+
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Este comando necesita acceso de usuario root"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "Este ya es un grupo posix"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr "Esta entrada ya está habilitada"
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr "Esta entrada ya está desactivada"
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr "Esta entrada no puede ser activada o desactivada"
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr "Esta entrada no es miembro"
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Un grupo no puede ser miembro de sí mismo"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr "Esta entrada ya es un miembro"
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Falló la decodificación base64: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "Un grupo no puede ser agregado como miembro de sí mismo"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "El grupo de usuarios predeterminado no puede ser eliminado"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr "El equipo no posee un registro DNS A con el que se corresponda "
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "No se permite eliminar un grupo administrado. Primero debe ser desasociado. "
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr "Un grupo administrado no puede tener una política de contraseñas."
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr "'%(entry)s' no tiene certificado"
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr "No se puede crear un grupo privado. Un grupo de '%(group)s' ya existe."
+
+#: ipalib/errors.py:1195
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr "Se encontró un problema al verificar si todos los miembros eran %(verb)s: %(exc)s"
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-"\n"
-" Analizar el nombre de ACI crudo y devolver una tupla que contenga el prefijo\n"
-" de ACI y el nombre de ACI real."
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
msgstr ""
-"\n"
-" Obtenga el nombre del grupo de un filtro de memberOf"
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "no existe un comando para el tópico de ayuda %(topic)r"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "la modificación choca con otra modificación diferente"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "no existen modificaciones a ser realizadas"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "han sido excedidos los límites para esta consulta"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr "modificar la clave principal no está permitido"
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr " %(attr)s : Solamente un valor permitido."
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr "%(attr)s: sintaxis inválida."
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr "%(info)s de filtro de búsqueda errado"
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "La operación certificada no puede ser completada: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Error de certificado de formato: %(error)s "
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr "Ya está registrado"
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr "Aún no está registrado"
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "Los resultados se encuentran truncados, intente realizar una búsqueda más específica"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr "Recuperar e imprimir todos los atributos del servidor. Afecta a la salida del comando."
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "Imprimir entradas como almacenadas en el servidor. Solamente afecta formato de salida."
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr "Versión de cliente. Se utiliza para determinar si el servidor va a aceptar la solicitud."
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr "Reenvía al servidor en lugar de ejecutarse localmente"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Un diccionario representando una entrada LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Una lista de entradas LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Todos los comandos deberían por lo menos tener un resultado"
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "tipo incorrecto"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "Sólo se permite un valor"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "debe ser True o False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "debe ser un entero"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "debe ser como mínimo %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "puede ser como máximo %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "debe ser un número decimal"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "debe ser como mínimo %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "puede ser como máximo %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "debe coincidir con el modelo \"%(pattern)s"
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "debe ser un dato binario"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "debe ser como mínimo de %(minlength)d bytes"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "puede ser a lo sumo de %(maxlength)d bytes"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "debe ser exactamente de %(length)d bytes"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "debe ser texto Unicode"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
msgstr ""
-"\n"
-" Dado un nombre y un conjunto de palabras clave construir una ACI."
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "debe tener como mínimo %(minlength)d caracteres"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "puede tener a lo sumo %(maxlength)d caracteres"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "debe tener exactamente %(length)d caracteres"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr "El carácter '%(char)r' no está permitido."
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "debe ser uno de %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Una lista de valores ACI"
#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
@@ -282,9 +526,7 @@ msgstr "Se requiere prefijo de ACI "
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de "
-"destino, atributos, o miembro de "
+msgstr "es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de destino, atributos, o miembro de "
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -299,6 +541,7 @@ msgid "One of group, permission or self is required"
msgstr "Uno de grupo, permiso o self es necesario"
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "El grupo '%s' no existe"
@@ -307,22 +550,12 @@ msgid "empty filter"
msgstr "Vaciar filtro"
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
-msgstr "Error de sintaxis: %(error)s "
-
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-"Convertir una ACI en sus palabras equivalentes. \n"
-" Esto se utiliza para la operación de modificación para que podamos combinar kw entrante y ACI existente ACI y pasar el resultado a _make_aci()."
+msgstr "Error de sintaxis:%(error)s "
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "No se encuentra un ACI cuyo nombre sea \"%s\""
@@ -334,18 +567,7 @@ msgstr "Prefijo ACI"
msgid ""
"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
"none)"
-msgstr ""
-"Prefijo utilizado para distinguir los tipos de ACI (permiso,delegación, "
-"autoservicio, ninguno)"
-
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-"\n"
-" Objeto ACI"
+msgstr "Prefijo utilizado para distinguir los tipos de ACI (permiso,delegación, autoservicio, ninguno)"
#: ipalib/plugins/aci.py:412
msgid "ACIs"
@@ -355,274 +577,439 @@ msgstr "ACI"
msgid "ACI name"
msgstr "Nombre de ACI"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr "Permiso"
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr "El permiso ACI permite el acceso a"
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "Grupo de usuarios"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr "El grupo de usuarios ACI permite el acceso a"
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "Permisos"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
-msgstr ""
-"lista separada por comas de la concesión de permisos (leer, escribir, "
-"agregar, eliminar, todos) "
+msgstr "lista separada por comas de la concesión de permisos (leer, escribir, agregar, eliminar, todos) "
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "Atributos"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr "Lista de atributos separada por comas"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "Tipo"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
-msgstr ""
-"Objeto de tipo IPA (usuario, grupo, grupo de host, servicio, grupo de red)"
+msgstr "Objeto de tipo IPA (usuario, grupo, grupo de host, servicio, grupo de red)"
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "Miembro de"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "Miembro de un grupo"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "Filtro"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)"
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr "Subárbol"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr "Subárbol al que aplicar ACI"
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "Grupo elegido"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
-msgstr "Grupo al que aplicar ACI"
+msgstr "Grupo al que aplicar API"
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr "Dirija su propia entrada (usted)"
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr "Aplique ACI a su propia entrada (usted)"
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-"\n"
-" Crear nuevos ACI."
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "Ha sido creado ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr "Probar la sintaxis pero no escribir nada"
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Ha sido eliminado ACI \"%(value)s\""
+
+#: 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
+msgid "ACI"
+msgstr "ACI"
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "Ha sido modificado ACI \"%(value)s\""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "%(count)d ACI coincidente"
+msgstr[1] "%(count)d ACIs coincidentes"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr " Nuevo nombre de ACI"
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "ACI renombrado a \"%(value)s\""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
-msgstr ""
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
"\n"
-" Ejecute la operación aci-create.\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
"\n"
-" Retorna la entrada como será creada en LDAP.\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
"\n"
-" :param aciname: El nombre de la ACI a agregar.\n"
-" :param kw: Otros argumentos de palabra clave para atributos de LDAP.\n"
-" "
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "Descripción"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr "Grupo Predeterminado"
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr "Grupo: %s no encontrado!"
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr "%s no es un atributo válido."
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-"\n"
-" Borrar ACI."
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "Ha sido eliminado ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr "Condiciones que no pueden ser agregadas"
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr "Número de condiciones agregadas"
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-"\n"
-" Ejecute la operación aci-delete.\n"
-" :param aciname: El nombre de la ACI se agrega. \n"
-" :param kw: sin uso"
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-"\n"
-" Modficar ACI."
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
-msgstr "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "Ha sido modificado ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr "Condiciones que no pueden ser eliminadas"
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr "Número de condiciones eliminadas"
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Modify an automember rule.\n"
" "
msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" Buscar ACI\n"
-"\n"
-" Retorna una lista de ACI\n"
-"\n"
-" EJEMPLOS:\n"
-"\n"
-" Para hallar todas las ACI que se aplican directamente a miembros del grupo ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" Para hallar todas las ACI que otorgan acceso add:\n"
-" ipa aci-find --permissions=add \n"
-"\n"
-" Observe que el comando find solamente busca el texto dado en el conjunto de\n"
-" ACI, no evalúa las ACI para ver si algo se aplicaría.\n"
-" Por ejemplo, la búsqueda de memberof=ipausers hallaría que\n"
-" tiene ipusers como un memberof. Puede haber ACI que se aplican a \n"
-" miembros de ese grupo indirectamente.\n"
+" Delete an automember rule.\n"
" "
+msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "%(count)d ACI coincidente"
-msgstr[1] "%(count)d ACIs coincidentes"
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:466
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-"\n"
-" Mostrar una sola ACI dado un nombre de ACI."
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Display information about an automember rule.\n"
+" "
msgstr ""
-"\n"
-" Ejecutar la operación de aci-show. \n"
-"\n"
-" Devuelve la entrada: \n"
-"\n"
-" uid parámetros: el nombre de inicio de sesión del \n"
-" usuario para recuperar.: param kw: sin usar\n"
-" "
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Rename an ACI.\n"
+" Set default group for all unmatched entries.\n"
" "
msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
+msgid ""
"\n"
-" Cambiar el nombre de un AIC."
+" Remove default group for all unmatched entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
-msgstr "Nuevo nombre de ACI"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
-msgstr "ACI renombrado a \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -708,897 +1095,585 @@ msgid ""
"\n"
" Remove the man key from the auto.share map:\n"
" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr "\n\\n\nAutomount\\n\n\\n\nAlmacena configuración de automount(8) para autofs(8) en IPA.\\n\n\\n\nLa base de una configuración de montaje automático es el archivo de configuración auto.master.\\n\nSe trata también de la ubicación de base en IPA. Varias configuraciones de auto.master\\n\nse pueden almacenar independientemente. Una ubicación es la implementación-específica\\n\ncon el predeterminado siendo la ubicación llamada 'default'. Por ejemplo, puede tener ubicaciones por\\n\nregiones geográficas, por piso, por tipo, etc.\\n\n\\n\nAutomount tiene tres tipos de objetos básicos: ubicaciones, mapas y llaves.\\n\n\\n\nUna ubicación define un conjunto de mapas anclados en un auto.master. Esto le permite\\n\nalmacenar múltiples configuraciones de montaje automático. Una ubicación es sí misma \\n\nno es muy interesante, es solo el punto de inicio de un nuevo mapa de montaje automático.\\n\n\\n\nUn mapa es aproximadamente equivalente a un archivo de montaje automático discreto y proporciona\\n\nalmacenamiento para llaves.\\n\n\\n\nUna llave es un punto de montaje asociado a un mapa.\\n\n\\n\nAl crear una ubicación, se crean automáticamente dos mapas para\\n\nella: auto.master y auto.direct. auto.master es el mapa de raíz para todos\\n\nlos mapas de montaje automático para la ubicación. auto.direct es el mapa predeterminado\\n\npara montajes directos y se monta en /-.\\n\n\\n\nEJEMPLOS:\\n\n\\n\nUbicaciones:\\n\n\\n\n Crear una ubicación llamada, \\\"Baltimore\\\":\\n\n ipa automountlocation-add baltimore\\n\n\\n\n Mostrar la nueva ubicación:\\n\n ipa automountlocation-show baltimore\\n\n\\n\n Buscar ubicaciones disponibles:\\n\n ipa automountlocation-find\\n\n\\n\n Remover una ubicación denominada:\\n\n ipa automountlocation-del baltimore\\n\n\\n\n Mostrar lo que los mapas de automontaje les gustaría mirar si estuvieran en el sistema de archivos:\\n\n ipa automountlocation-tofiles baltimore\\n\n\\n\n Importar una configuración existente en una ubicación:\\n\n ipa automountlocation-import baltimore /etc/auto.master\\n\n\\n\n La importación fallará si se encuentran entradas duplicadas. Para\\n\n operación continua donde se ignoran los errores use la opción\\n\n --continue.\\n\n\\n\nMapas:\\n\n\\n\n Crear un nuevo mapa, \\\"auto.share\\\":\\n\n ipa automountmap-add baltimore auto.share\\n\n\\n\n Mostrar el nuevo mapa:\\n\n ipa automountmap-show baltimore auto.share\\n\n\\n\n Buscar mapas en la ubicación de baltimore:\\n\n ipa automountmap-find baltimore\\n\n\\n\n Remover el mapa auto.share:\\n\n ipa automountmap-del baltimore auto.share\\n\n\\n\nKeys:\\n\n\\n\n Crear una nueva llave para el mapa auto.share en la ubicación baltimore. Esto vincula\\n\n el mapa creado anteriormente a auto.master:\\n\n ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\\n\n\\n\n Crear una nueva llave para nuestro mapa auto.share, un montaje NFS para páginas man:\\n\n ipa automountkey-add baltimore auto.share --key=man --info=\\\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\\\"\\n\n\\n\n Buscar todas las llaves para el mapa auto.share:\\n\n ipa automountkey-find baltimore auto.share\\n\n\\n\n Buscar todas las claves de automount directas:\\n\n ipa automountkey-find baltimore --key=/-\\n\n\\n\n Remover la clave de man del mapa auto.share:\\n\n ipa automountkey-del baltimore auto.share --key=man\\n\n"
+
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-"\n"
-"Automount\n"
-"\n"
-"Almacena configuración de automount(8) para autofs(8) en IPA.\n"
-"\n"
-"La base de una configuración de montaje automático es el archivo de configuración auto.master.\n"
-"Se trata también de la ubicación de base en IPA. Varias configuraciones de auto.master\n"
-"se pueden almacenar independientemente. Una ubicación es la implementación-específica\n"
-"con el predeterminado siendo la ubicación llamada 'default'. Por ejemplo, puede tener ubicaciones por\n"
-"regiones geográficas, por piso, por tipo, etc.\n"
-"\n"
-"Automount tiene tres tipos de objetos básicos: ubicaciones, mapas y llaves.\n"
-"\n"
-"Una ubicación define un conjunto de mapas anclados en un auto.master. Esto le permite\n"
-"almacenar múltiples configuraciones de montaje automático. Una ubicación es sí misma \n"
-"no es muy interesante, es solo el punto de inicio de un nuevo mapa de montaje automático.\n"
-"\n"
-"Un mapa es aproximadamente equivalente a un archivo de montaje automático discreto y proporciona\n"
-"almacenamiento para llaves.\n"
-"\n"
-"Una llave es un punto de montaje asociado a un mapa.\n"
-"\n"
-"Al crear una ubicación, se crean automáticamente dos mapas para\n"
-"ella: auto.master y auto.direct. auto.master es el mapa de raíz para todos\n"
-"los mapas de montaje automático para la ubicación. auto.direct es el mapa predeterminado\n"
-"para montajes directos y se monta en /-.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-"Ubicaciones:\n"
-"\n"
-" Crear una ubicación llamada, \"Baltimore\":\n"
-" ipa automountlocation-add baltimore\n"
-"\n"
-" Mostrar la nueva ubicación:\n"
-" ipa automountlocation-show baltimore\n"
-"\n"
-" Buscar ubicaciones disponibles:\n"
-" ipa automountlocation-find\n"
-"\n"
-" Remover una ubicación denominada:\n"
-" ipa automountlocation-del baltimore\n"
-"\n"
-" Mostrar lo que los mapas de automontaje les gustaría mirar si estuvieran en el sistema de archivos:\n"
-" ipa automountlocation-tofiles baltimore\n"
-"\n"
-" Importar una configuración existente en una ubicación:\n"
-" ipa automountlocation-import baltimore /etc/auto.master\n"
-"\n"
-" La importación fallará si se encuentran entradas duplicadas. Para\n"
-" operación continua donde se ignoran los errores use la opción\n"
-" --continue.\n"
-"\n"
-"Mapas:\n"
-"\n"
-" Crear un nuevo mapa, \"auto.share\":\n"
-" ipa automountmap-add baltimore auto.share\n"
-"\n"
-" Mostrar el nuevo mapa:\n"
-" ipa automountmap-show baltimore auto.share\n"
-"\n"
-" Buscar mapas en la ubicación de baltimore:\n"
-" ipa automountmap-find baltimore\n"
-"\n"
-" Remover el mapa auto.share:\n"
-" ipa automountmap-del baltimore auto.share\n"
-"\n"
-"Keys:\n"
-"\n"
-" Crear una nueva llave para el mapa auto.share en la ubicación baltimore. Esto vincula\n"
-" el mapa creado anteriormente a auto.master:\n"
-" ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n"
-"\n"
-" Crear una nueva llave para nuestro mapa auto.share, un montaje NFS para páginas man:\n"
-" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
-"\n"
-" Buscar todas las llaves para el mapa auto.share:\n"
-" ipa automountkey-find baltimore auto.share\n"
-"\n"
-" Buscar todas las claves de automount directas:\n"
-" ipa automountkey-find baltimore --key=/-\n"
-"\n"
-" Remover la clave de man del mapa auto.share:\n"
-" ipa automountkey-del baltimore auto.share --key=man\n"
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-"\n"
-" Ubicación de contenedores para los mapas de auto montaje."
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr "Ubicaciones de automontado"
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "Ubicación"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr "Nombre de la ubicación de montaje automático."
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-"\n"
-" Crear un lugar de montaje automático nuevo."
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-"\n"
-" Eliminar una ubicación de montaje automático."
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-"\n"
-" Mostrar una ubicación de montaje automático."
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-"\n"
-" Buscar una ubicación de montaje automático."
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-"\n"
-" Generar archivos de montaje automático para un lugar específico."
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
msgstr ""
-"\n"
-" Importar archivos de montaje automático para una ubicación específica."
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:323
msgid "Master file"
-msgstr "Archivo maestro"
+msgstr " Archivo maestro"
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
-msgstr "Archivo maestro automount."
+msgstr " Archivo maestro automount."
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
-msgstr ""
-"Modo de funcionamiento continuo. Reporta los errores, pero el proceso "
-"continúa."
+msgstr " Modo de funcionamiento continuo. Reporta los errores, pero el proceso continúa."
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr "No se encontró el archivo %(file)s "
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-"\n"
-" La idea básica es leer el archivo maestro y crear todos los mapas \n"
-" que necesitamos, entonces lea cada archivo de mapa\n"
-" y añada todas las claves al mapa."
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-"\n"
-" Objeto de mapa de montaje automático."
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr "Mapa"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
-msgstr "Nombre del mapa automount."
-
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "Descripción"
+msgstr " Nombre del mapa automount."
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr "Mapas de montaje automático"
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-"\n"
-" Crear un mapa de montaje automático."
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-"\n"
-" Eliminar un mapa de montaje automático."
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-"\n"
-" Modificar un mapa de montaje automático."
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-"\n"
-" Buscar un mapa de montaje automático."
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-"\n"
-" Mostrar un mapa de montaje automático."
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
msgstr ""
-"\n"
-" Objeto de clave de montaje automático."
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "Llave"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
-msgstr "Nombre de clave de montaje automático"
+msgstr " Nombre de clave de montaje automático"
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr "Información de montaje"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "descripción"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr "Llaves de montaje automático"
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, python-format
msgid ""
"The key,info pair must be unique. A key named %(key)s with info %(info)s "
"already exists"
-msgstr ""
-"El par de claves, la información debe ser único. Un nombre clave %(key)s "
-"con información %(info)s ya existe"
+msgstr "El par de claves, la información debe ser único. Un nombre clave %(key)s con información %(info)s ya existe"
-#: ipalib/plugins/automount.py:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr "ya existe una llave denominada %(key)s"
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr "La clave de montaje automático %(key)s con info %(info)s no existe"
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
+msgstr "Se ha encontrado más de una entrada con la llave %(key)s, utilice --info para seleccionar una entrada específica."
+
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-"Se ha encontrado más de una entrada con la llave %(key)s, utilice --info "
-"para seleccionar una entrada específica."
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
msgstr ""
-"\n"
-" Crear una clave de montaje automático."
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
msgstr ""
-"\n"
-" Crear un nuevo punto de montaje indirecto."
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "Punto de montaje"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr "Mapa del padre"
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
+msgstr "Nombre del mapa de montaje automático de padre (por defecto: auto.master)."
+
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-"Nombre del mapa de montaje automático de padre (por defecto: auto.master)."
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-"\n"
-" Eliminar una clave de montaje automático."
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
msgstr ""
-"\n"
-" Modificar una llave de montaje automático."
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr "Nueva información de montaje"
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-"\n"
-" Búsqueda de una clave de montaje automático."
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
-msgstr ""
-"\n"
-" Mostrar una llave de montaje automático."
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-"\n"
-"Clase de bases para los complementos de LDAP.\n"
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
+msgstr "Contraseña"
+
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr "Miembros fallidos"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr "Usuarios miembros"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr "Grupos de miembros"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr "Miembros de los grupos"
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr "Equipos miembro"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr "Grupos de equipo miembro"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr "Miembro de los grupos de equipo"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
-msgstr "Roles"
+msgstr " Roles"
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr "Grupos de comando sudo"
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr "Concesión de privilegios a los roles"
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
-msgstr "Miembros de netgroups"
+msgstr " Miembros de netgroups"
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr "Miembros de netgroups"
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr "Servicios de miembros"
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
+msgstr "\\n\nServicios\\n\n\\n\nUn servicio IPA representa un servicio que se ejecuta en un host. El registro del servicio IPA\\n\npuede almacenar la principal de kerberos, un certificado SSL, o ambos.\\n\n\\n\nUn servicio IPA puede administrarse directamente desde una máquina, siempre y cuando\\n\nla máquina tenga el permiso correcto. Esto es cierto, incluso para\\n\nmáquinas que no están asociadas con el servicio. Por ejemplo,\\n\nsolicitando un certificado SSL mediante credenciales principales de servicio de host.\\n\nPara administrar un servicio mediante credenciales de host necesita\\n\nejecutar kinit como el host:\\n\n\\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\\n\n\\n\nAñadir un servicio IPA le permite al servicio asociado solicitar un certificado o una tabla de claves\\n\nSSL, pero esto se realiza como un paso independiente; no se producen como\\n\ncomo resultado de añadir un servicio\\n\nSolamente el aspecto público de un certificado es almacenado en un registro de servicio;\\n\nla clave privada no es almacenada.\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Añadir un nuevo servicio IPA:\\n\n ipa service-add HTTP/web.example.com\\n\n\\n\n Permitir a un host administrar un certificado de servicio IPA:\\n\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\\n\n ipa role-add-member --hosts=web.example.com certadmin\\n\n\\n\n Borra un servicio IPA:\\n\n ipa service-del HTTP/web.example.com\\n\n\\n\n Buscar todos los servicio IPA asociados con un host:\\n\n ipa service-find web.example.com\\n\n\\n\n Buscar todos los servicios HTTP:\\n\n ipa service-find HTTP\\n\n\\n\n Desactivar la clave del servicio de kerberos y certificado SSL:\\n\n ipa service-disable HTTP/web.example.com\\n\n\\n\n Solicitar un certificado para un servicio IPA:\\n\n ipa cert-request --principal=HTTP/web.example.com example.csr\\n\n\\n\n Generar y recuperar una tabla de claves para un servicio IPA:\\n\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\\n\n\\n"
+
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr "Grupos de servicio de Miembros HBAC"
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr "Usuarios indirectos miembros"
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr "Grupos de miembros indirectos"
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr "Hosts de miembros indirectos"
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr "Miembros indirectos de host-groups"
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr "Roles de miembros indirectos"
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
-msgstr "Permisos indirectos de miembro "
+msgstr "\\n\nPermisos indirectos de miembro "
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr "Servicio HBAC de miembro indirecto"
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr "Grupo de servicio HBAC de miembros indirectos "
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr "Miembros indirectos netgroups"
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr "Equipo externo"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr "Falló host/hostgroups"
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr "Falló usuarios/grupos"
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr "Falló managedby"
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr "No se ha podido quitar"
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
-msgstr ""
-"\n"
-" Dada una lista de valores en la forma name=value, devuelve una lista de nombre."
-
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-"\n"
-" Al agregar o quitar miembros inversa estamos falsificando una actualización\n"
-" de un objeto A mediante la actualización del atributo de miembro en el objeto B.\n"
-" El complemento memberof hace que este trabajo añada o quite el atributo\n"
-" memberof desde o hacia un objeto, solamente se necesita un poco de tiempo.\n"
-"\n"
-" Este hara bucle por 6+ segundos, recuperando el objeto A para que podamos\n"
-" ver si todos los atributos memberof se han actualizado.\n"
-" "
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-"\n"
-" Objeto que representa una entrada LDAP."
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr "Entrada"
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr "no se encuentra la entrada (%(container)s) de contenedor"
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: no se encuentra %(oname)s"
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: no se encuentra %(oname)s"
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
-msgstr "%(oname)s con el nombre \"%(pkey)s\" ya existe"
+msgstr " %(oname)s con el nombre \"%(pkey)s\" ya existe"
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-"Añadir un par de atributo y valor. El atributo debe ser parte del esquema."
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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 ""
-"Establecer un atributo a un par nombre y valor. El formato es attr=value. \n"
-"Para los atributos de valor múltiple, el comando sustituye los valores ya presentes."
+msgstr "Establecer un atributo a un par nombre y valor. El formato es attr=value. \nPara los atributos de valor múltiple, el comando sustituye los valores ya presentes."
-#: ipalib/plugins/baseldap.py:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-"\n"
-" Si el conjunto de objectclasses es limitado, haga que sean actualizados\n"
-" solo aquellos en entry_attrs (más dn)\n"
-"\n"
-" allow_only nos dice qué modo registrar:\n"
-"\n"
-" Si el valor es True entonces verificamos que los atributos se encuentren en la lista\n"
-" de los permitidos.\n"
-"\n"
-" Si el valor es False entonces tales atributos no están permitidos.\n"
-" "
-#: ipalib/plugins/baseldap.py:474
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Callback registration interface\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-"\n"
-" Interfaz de registro de devolución de llamada"
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-"\n"
-" Crear una nueva entrada en LDAP."
-
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
-msgstr ""
-"\n"
-" Clase de base para los comandos que necesita para recuperar una entrada existente."
-
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-"\n"
-" Clase de base para los comandos que necesita para recuperar una o más de las entradas existentes."
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr "Modo continuo: No se detenga en los errores."
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-"\n"
-" Recuperar una entrada LDAP."
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr "Derechos"
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
-msgstr ""
-"Mostrar los derechos de acceso de esta entrada (requiere --all). Consulte la"
-" página man de IPA para más detalles."
-
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-"\n"
-" Actualización de una entrada LDAP."
+msgstr "Mostrar los derechos de acceso de esta entrada (requiere --all). Consulte la página man de IPA para más detalles."
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr "Cambiar el nombre de"
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr "Cambie el nombre del %(ldap_obj_name)s objeto"
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr "la entrada fue eliminada mientras estaba siendo modificada"
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-"\n"
-" Eliminar una entrada LDAP y todos sus subentradas directas."
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-"\n"
-" Clase de base para la manipulación de miembros."
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-"\n"
-" Agregar otras entradas de LDAP a los miembros."
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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 "Miembros que no han podido ser añadidos"
-#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr "Cantidad de miembros añadidos"
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-"\n"
-" Eliminar entradas de LDAP de los miembros."
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr "Miembros que no han podido ser eliminados"
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr "Cantidad de miembros eliminados"
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-"\n"
-" Recuperar todas las entradas de LDAP con las características indicadas."
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr "Tiempo límite"
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr "Tiempo máximo de búsqueda en segundos"
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr "Tamaño límite"
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr "Cantidad máxima de entradas obtenidas"
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-"\n"
-" Clase de base para la manipulación de miembro de reversa"
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-"\n"
-" Agregar otros ingresos de LDAP a los miembros de reversa. \n"
-" La llamada se parece a \"añadir A a B\", pero en realidad ejecuta agregar B a A para manejar membresía de reversa."
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
-msgstr "agregado"
+msgstr "Agregado"
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-"\n"
-" Retire otras entradas LDAP de los miembros de reversa. La llamada se parece a \"eliminar una de B\", pero en realidad ejecuta quitar B de A para manejar membresía de reversa."
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr "eliminado"
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-"\n"
-"Complemento para realizar múltiples llamadas ipa mediante una llamada de procedimiento remota\n"
-"\n"
-"Para ejecutar este código en el lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"donde el contenido del archivo batch_request.json debe ser como el del siguiente ejemplo\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"El formato de la respuesta es anidado de la misma forma. En la parte superior se podrá observar\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"Y entonces, una respuesta anidada por cada método de comando IPA enviado en la petición\n"
-"\n"
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr "Métodos anidados para ejecutar"
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-"Versión de cliente. Se utiliza para determinar si el servidor va a aceptar "
-"la solicitud."
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1658,240 +1733,108 @@ msgid ""
"\n"
"http://www.ietf.org/rfc/rfc5280.txt\n"
"\n"
-msgstr ""
-"\n"
-"Operaciones de certificado IPA\n"
-"\n"
-"Ejecuta un conjunto de comandos para administrar los certificados SSL del servidor.\n"
-"\n"
-"Las solicitudes de certificados existen en la forma de Solicitud de Firma de Certificado (CSR)\n"
-"en formato PEM.\n"
-"\n"
-"Si utiliza el back end de autofirma el asunto en la CSR debe coincidir\n"
-"con el asunto configurado en el servidor. El Certificado dogtag usa justo el valor CN\n"
-"de la CSR y fuerza al resto del asunto.\n"
-"\n"
-"Un certificado se almacena con un principal de servicio y un principal de servicio que el host\n"
-"necesita.\n"
-"\n"
-"Para solicitar un certificado:\n"
-"\n"
-"* El host debe existir\n"
-"* El servicio debe existir (o use la opción --add para añadirlo automáticamente)\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Solicite un nuevo certificado y añada el principal:\n"
-" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
-"\n"
-" Recupere un certificado existente:\n"
-" ipa cert-show 1032\n"
-"\n"
-" Recupere un certificado (see RFC 5280 for reason details):\n"
-" ipa cert-revoke --revocation-reason=6 1032\n"
-"\n"
-" Retire un certificado del estatus de suspendido:\n"
-" ipa cert-remove-hold 1032\n"
-"\n"
-" Revise el estatus de una solicitud de firma:\n"
-" ipa cert-status 10\n"
-"\n"
-"IPA inmediatamente acepta (o declina) todas las solicitudes de certificado\n"
-"por lo tanto, el estatus de una solicitud no suele ser normal. Esto es para el uso futuro o \n"
-"el caso en el que un CA no expide inmediatamente un certificado.\n"
-"\n"
-"Las siguientes razones de revocación están soportadas:\n"
-"\n"
-" * 0 - no especificado\n"
-" * 1 - compromiso de clave\n"
-" * 2 - compromiso de cA\n"
-" * 3 - afiliación cambiada\n"
-" * 4 - sustituida\n"
-" * 5 - cese de operación\n"
-" * 6 - certificado retenido\n"
-" * 8 - retirar de CRL\n"
-" * 9 - privilegio negado \n"
-" * 10 - Compromiso A\n"
-"\n"
-"Observe que la razón del código 7 no se utiliza. Consulte RFC 5280 para mayor información:\n"
-"\n"
-"http://www.ietf.org/rfc/rfc5280.txt\n"
-"\n"
-
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-"\n"
-" Devuelve el valor de CN en el asunto de la solicitud o Ninguno"
+msgstr "\n\\n\nOperaciones de certificado IPA\\n\n\\n\nEjecuta un conjunto de comandos para administrar los certificados SSL del servidor.\\n\n\\n\nLas solicitudes de certificados existen en la forma de Solicitud de Firma de Certificado (CSR)\\n\nen formato PEM.\\n\n\\n\nSi utiliza el back end de autofirma el asunto en la CSR debe coincidir\\n\ncon el asunto configurado en el servidor. El Certificado dogtag usa justo el valor CN\\n\nde la CSR y fuerza al resto del asunto.\\n\n\\n\nUn certificado se almacena con un principal de servicio y un principal de servicio que el host\\n\nnecesita.\\n\n\\n\nPara solicitar un certificado:\\n\n\\n\n* El host debe existir\\n\n* El servicio debe existir (o use la opción --add para añadirlo automáticamente)\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Solicite un nuevo certificado y añada el principal:\\n\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\\n\n\\n\n Recupere un certificado existente:\\n\n ipa cert-show 1032\\n\n\\n\n Recupere un certificado (see RFC 5280 for reason details):\\n\n ipa cert-revoke --revocation-reason=6 1032\\n\n\\n\n Retire un certificado del estatus de suspendido:\\n\n ipa cert-remove-hold 1032\\n\n\\n\n Revise el estatus de una solicitud de firma:\\n\n ipa cert-status 10\\n\n\\n\nIPA inmediatamente acepta (o declina) todas las solicitudes de certificado\\n\npor lo tanto, el estatus de una solicitud no suele ser normal. Esto es para el uso futuro o \\n\nel caso en el que un CA no expide inmediatamente un certificado.\\n\n\\n\nLas siguientes razones de revocación están soportadas:\\n\n\\n\n * 0 - no especificado\\n\n * 1 - compromiso de clave\\n\n * 2 - compromiso de cA\\n\n * 3 - afiliación cambiada\\n\n * 4 - sustituida\\n\n * 5 - cese de operación\\n\n * 6 - certificado retenido\\n\n * 8 - retirar de CRL\\n\n * 9 - privilegio negado \\n\n * 10 - Compromiso A\\n\n\\n\nObserve que la razón del código 7 no se utiliza. Consulte RFC 5280 para mayor información:\\n\n\\n\nhttp://www.ietf.org/rfc/rfc5280.txt\\n\n\\n\n"
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
-msgstr ""
-"Falla al intentar decodificar la petición de identificación de certificado"
+msgstr "Falla al intentar decodificar la petición de identificación de certificado"
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-"\n"
-" Devuelve el valor inicial del nombre alt del sujeto, si lo hay"
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
-msgstr ""
-"Falla al intentar decodificar la petición de identificación de certificado"
+msgstr "Falla al intentar decodificar la petición de identificación de certificado"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-"\n"
-" Asegúrese de que la CSR esté codificada en base 64 y puede ser descifrada por nuestro analizador PKCS#10\n"
-" analizador."
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
-msgstr ""
-"Falla al intentar decodificar la petición de identificación de certificado: "
-"%s"
+msgstr "Falla al intentar decodificar la petición de identificación de certificado: %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-"\n"
-" Franja y capa inicial y final al COMIENZO y FIN del bloque"
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-"\n"
-" Convertir un SN dado en decimal o hexadecimal. \n"
-"Devuelve el número o ninguno si la conversión falla."
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
+msgstr "CSR"
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-"\n"
-" Dada una entidad con o sin un reino devuelva la parte del host."
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-"\n"
-" Enviar una solicitud de certificado de firma."
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr "Principal"
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
-msgstr ""
-"Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)"
+msgstr "Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)"
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr "si no existe, agregar automáticamente el principal"
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "Certificado"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "Asunto"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr "Emisor"
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr "No antes de"
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr "No luego de"
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr "Huella digital (MD5)"
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr "Huella digital (SHA1)"
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "Número de serie"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Nombre de la variable de mapeo de dicionario a valorizar "
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
-msgstr ""
-"\n"
-" Comprobar el estado de una solicitud de certificado de firma."
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
+msgstr "Verificar el estado de una solicitud de firma de certificado."
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "Id de la petición"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "Estado de la petición"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr "Número de serie en decimales, o hexadecimales, si tiene un prefijo 0x"
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-"\n"
-" Recuperar un certificado existente."
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr "Motivo de la revocación"
@@ -1904,82 +1847,49 @@ msgid "File to store the certificate in."
msgstr "Archivo para almacenar el certificado"
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
-msgstr ""
-"\n"
-" Revocar un certificado."
+msgid "Revoke a certificate."
+msgstr "Revocar un certificado."
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "Revocado"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "Motivo"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "Motivo por el cual el certificado ha sido revocado (0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr "7 no es una razón válida de revocación"
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-"\n"
-" Tome un certificado revocado que esté en espera."
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr "No revocado"
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "Error"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
-"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"NOTES:\n"
"\n"
-"User management options:\n"
-"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
-"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
-"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
-"\n"
-"Server Configuration.\n"
-"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
-"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
"Some attributes are read-only, provided only for information purposes. These\n"
"include:\n"
@@ -1988,211 +1898,173 @@ msgid ""
" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
"Password plug-in features: currently defines additional hashes that the\n"
" password will generate (there may be other conditions).\n"
-msgstr ""
"\n"
-"Administrar la configuración de IPA\n"
-"\n"
-"Administra los valores predeterminados que IPA usa y algunos parámetros de ajuste.\n"
+"EXAMPLES:\n"
"\n"
-" Para mostrar la configuración actual:\n"
+" Show basic server configuration:\n"
" ipa config-show\n"
"\n"
-" Para modificar la configuración:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"Las opciones actuales son:\n"
-"\n"
-"Opciones de administración de usuario:\n"
-"\n"
-" --maxusername=INT Máxima logitud al crear o modificar un usuario\n"
-" --homedirectory=STR Ubicación predeterminada de directorios principales (por defecto: /home)\n"
-"\n"
-" --defaultshell=STR Shell predeterminada para nuevos usuarios (predeterminada: /bin/sh)\n"
-" --defaultgroup=STR Grupo predeterminado para nuevos usuarios (predeterminado: ipausers). \n"
-" grupo debe existir o añadir nuevos usuarios \n"
-"\n"
-" --emaildomain=STR Predeterminado: email domain para nuevos usuarios\n"
-"\n"
-"Buscar opciones de ajuste. Impactan la cantidad de datos \n"
-"y\n"
-"la cantidad de registros que retornan de una determinada búsqueda.\n"
-"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or \n"
-"-1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Configuración de servidor.\n"
-"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"El valor de notificación de contraseña se almacena aquí, por lo tanto será replicado.\n"
-"No se utiliza actualmente para notificar a usuarios antes de la expiración de contraseña.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Algunos atributos son de solo-lectura, se proporcionan únicamente para propósitos informativos. Estos atributos\n"
-"incluyen:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Base de asunto de certificado: la base de asunto de certificado configurada,\n"
-" e.g. O=EXAMPLE.COM.\n"
-" Es configurable únicamente en el momento de instalación.\n"
-"Funcionalidades de conexión de contraseña: actualmente define almohadillas que la\n"
-" contraseña generará (pueden haber otras condiciones).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
+msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
-msgstr "searchtimelimit debe ser -1 o > 1."
+msgstr "searchtimelimit debe ser -1 o&gt; 1."
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
-msgstr ""
-"\n"
-" Objeto de configuración IPA"
+msgid "configuration options"
+msgstr "opciones de configuración"
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr "Configuración"
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
-msgstr "Máxima longitud de nombre de usuario"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
+msgstr "Largo máximo para nombre de usuario"
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr "Base del directorio principal"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
-msgstr "Ubicación predeterminada de los directorios principales."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
+msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "Shell predeterminada"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
-msgstr "Shell predeterminada para los nuevos usuarios."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
+msgstr "Shell predeterminada para usuarios nuevos"
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "Grupo de usuarios predeterminado"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr "Grupo predeterminado para los nuevos usuarios."
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
+msgstr "Grupo predeterminado para usuarios nuevos"
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-"Correo electrónico de dominio predeterminado para los nuevos usuarios"
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
-msgstr "Correo electrónico de dominio predeterminado de nuevos usuarios."
-
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr "Buscar límite de tiempo"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-"Cantidad de tiempo (seg.) máxima para una búsqueda (> 0, o -1 para un "
-"número ilimitado)."
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr "Límite del tamaño de la búsqueda"
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
-msgstr "Número máximo de registros para buscar (-1 es ilimitado)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
+msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr "Campos de búsqueda de usuario"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-"Una lista separada por comas de los campos en la búsqueda de usuarios."
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-"Una lista separada por comas de los campos a buscar en la búsqueda de "
-"grupos."
-
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "Modo de migración"
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
-msgstr "Activar el modo de migración."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
+msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr "Base de certificado de asunto"
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
-msgstr "Base para asuntos de certificados (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
+msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr "Grupo predeterminado objectclass"
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
-msgstr "Grupo predeterminado objectclassses (lista separada por comas)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
+msgstr ""
#: ipalib/plugins/config.py:159
msgid "Default user objectclasses"
msgstr "Usuario predeterminado objectclasses"
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
-msgstr "objectclassses predeterminado de usuario (lista separada por comas)."
-
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
-msgstr "Notificación de vencimiento de contraseña"
+msgid "Default user objectclasses (comma-separated list)"
+msgstr ""
#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
-msgstr "Número de días de aviso de caducidad de la contraseña."
+msgid "Password Expiration Notification (days)"
+msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr "Funciones del complemento de contraseña"
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
-msgstr "Hash adicional para generar la contraseña plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
+msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-"\n"
-" Modificar las opciones de configuración."
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr "El grupo no existe"
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr "atributo \"%s\" no permitido"
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-"\n"
-" Mostrar la configuración actual."
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr "Muestra la configuración actual"
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -2206,174 +2078,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-"\n"
-"Delegación Grupo a Grupo\n"
-"\n"
-"Un permiso permite a la delegación de permisos de grano fino. Las reglas de control de acceso,\n"
-"o las instrucciones (ACI), otorgan permiso a los permisos para realizar determinada tarea, como agregar un usuario, modificar un grupo, etc \n"
-"\n"
-"Delegaciones Grupo a Grupo otorgan a los miembros de un grupo para actualizar\n"
-"un conjunto de atributos de los miembros de otro grupo.\n"
-"\n"
-"EJEMPLOS: \n"
-"\n"
-"Agregar una regla de la delegación a las casas editoriales para editar direcciones de administrador:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street' \n"
-"\n"
-"Al administrar la lista de los atributos que necesita para incluir a todos los atributos, \n"
-"incluyendo los ya existentes. Añada PostalCode a la lista: \n"
-" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n"
-"\n"
-" Mostrar nuestra regla actualizada: \n"
-" ipa delegation-show 'editors edit admins street' \n"
-"\n"
-"Eliminar una regla\n"
-" ipa delegation-del 'editors edit admins street'\n"
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-"\n"
-" memberOf está en el filtro, pero queremos sacar el grupo para facilitar la visualización."
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr "Delegación ' %(permission)s ' no encontrado"
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr "Error al recuperar grupo de miembro %(group)s: %(error)s "
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-"\n"
-" Determinar si la ACI es un ACI Delegación y\n"
-" elevar una excepción si no lo es. \n"
-" Devuelva el resultado si se trata de\n"
-" una delegación de ACI, agregando un nuevo membergroup de atributo."
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-"\n"
-" objeto de delegación."
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr "Delegación"
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr "Nombre de delegación"
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
-msgstr ""
-"Lista separada por comas de los permisos a otorgar (lectura, escritura). El "
-"valor predeterminado es escritura."
+msgstr "Lista separada por comas de los permisos a otorgar (lectura, escritura). El valor predeterminado es escritura."
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr "Miembro del grupo de usuarios"
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr "Grupo de usuarios para solicitar a la delegación"
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-"\n"
-" Añadir una nueva delegación."
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr "Delegación añadida \"%(value)s\""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
-"\n"
-" Eliminación de una delegación."
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr "Delegación eliminada \"%(value)s\""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-"\n"
-" Modificar una delegación."
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr "Delegación modificada \"%(value)s\""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-"\n"
-" Búsqueda de delegaciones."
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] "%(count)d delegación coincidente"
msgstr[1] "%(count)d delegaciones coincidentes"
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-"\n"
-" Muestra información acerca de una delegación."
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -2386,6 +2191,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -2395,11 +2208,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -2425,7 +2241,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -2453,474 +2269,565 @@ msgid ""
" ipa dns-resolve www.example.com\n"
" ipa dns-resolve www\n"
msgstr ""
-"\n"
-"sistema de nombres de dominio (DNS)\n"
-"\n"
-"administra zona DNS y registros de recursos.\n"
-"\n"
-"EJEMPLOS:\n"
-" añadir nueva zona:\n"
-" ipa dnszone-add example.com --name-server nameserver.example.com\n"
-" --admin-email admin@example.com\n"
-"\n"
-" Añadir segundo nombre de servidor para example.com: \n"
-" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
-"\n"
-" Añadir un correo de servidor para example.com:\n"
-" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
-"\n"
-" Eliminar nombre de servidores añadidos previamente de example.com:\n"
-" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
-"\n"
-" Añadir un nuevo registro A para www.example.com: (IP aleatoria)\n"
-" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
-"\n"
-" Añadir un nuevo registro PTR para www.example.com\n"
-" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
-" \n"
-" Añadir nuevos registros SRV para servidores LDAP. Tres cuartas partes de las peticiones deberían ir a fast.example.com, un cuarto a slow.example.com. Si ninguno están disponibles, cambia a backup.example.com.\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n"
-"\n"
-" Cuando el comando dnsrecord-add se ejecuta sin opciones para añadir un registro especifico, se inicia un modo interactivo. Interactivamente se van mostrando los tipos de registros mas usuales para la zona respectiva: \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"
-" El modo interactivo puede usar también para eliminar registros de DNS:\n"
-" ipa dnsrecord-del example.com www\n"
-" Ninguna opción para borrar el registro indicado.\n"
-" ¿Borrar todos? si/No(Por defecto No): (No borrar todos los registros)\n"
-" Contenido actual del registro DNS:\n"
-"\n"
-" Un registro: 1.2.3.4, 11.22.33.44\n"
-" ¿Borrar Registro A '1.2.3.4'? Si/No (por defecto No): \n"
-" ¿Borrar Registro A '11.22.33.44'? Si/No (por defecto No):s \n"
-" \n"
-" Nombre registro: www\n"
-" registro A: 1.2.3.4 (registro A 11.22.33.44 ha sido borrado)\n"
-"\n"
-" mostrar zona example.com:\n"
-" ipa dnszone-show example.com\n"
-" Encontrar zona con \"example \" en su nombre de dominio:\n"
-"\n"
-" ipa dnszone-find example\n"
-"Encontrar registros para recursos con \"www\" in su nombre en la zona example.com:\n"
-" ipa dnsrecord-find example.com www\n"
-"Encontrar registros A con valor 10.10.0.1 en la zona example.com\n"
-" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
-"\n"
-" Mostrar registros para recurso www en zona example.com\n"
-" ipa dnsrecord-show example.com www\n"
-"Borrar zona example.com con todos los registros de recursos:\n"
-" ipa dnszone-del example.com\n"
-"\n"
-"Resolver un nombre de host para ver si existe(añadirá por dominio IPA por defecto si no hay uno incluido):\n"
-" ipa dns-resolve www.example.com\n"
-" ipa dns-resolve www\n"
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
-msgstr "Generar número de serie de zonas."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
-msgstr "Consulte RFC 2915"
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr "el valor de prioridad debe ser un entero"
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr "el valor de prioridad debe estar entre 0 y 65535"
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
+msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
msgstr ""
-"El servidor de nombre '%(host)s' no tiene su correspondiente registro "
-"A/AAAA"
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-"\n"
-" Zona DNS, contenedor de registros de recursos."
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: 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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr "el valor de protocolo debe estar entre 0 y 255"
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr "%s debe ser entero"
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr "d1 y d2 deben estar entre 0 y 90"
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr "m1, m2, s1 y s2 deben estar entre 0 y 59.999"
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr "alt debe estar entre -100000.00 y 42849672.95"
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr "siz, hp y vp deben estar entre 0 y 90000000.00"
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr "El servidor de nombre '%(host)s' no tiene su correspondiente registro A/AAAA"
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr "Nombre de la zona"
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr "Nombre de la zona (FQDN)"
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr "Nombre de servidor autoritativo"
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
-msgstr "Nombre de servidor autoritativo."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
+msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr "Correo-e de administrador"
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr "Serie SOA"
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr "Número de serie de registro SOA"
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr "Actualizar SOA"
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr "registro SOA tiempo de actualización"
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr "Reintentar SOA"
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr "tiempo de reintento de "
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr "Expirar SOA"
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr "tiempo de expiración de registro SOA"
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr "Mínimo SOA"
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
-msgstr ""
-"¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?"
+msgstr "¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?"
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr "Tiempo para abandonar SOA"
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr "tiempo de vida de registro SOA"
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr "Clase SOA"
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr "Clase de registro SOA "
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr "Política de actualización de BIND"
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr "Activar zona"
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr "¿Está la zona activa?"
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr "Actualización dinámica"
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr "Permitir actualizaciones dinámicas."
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-"\n"
-" Crear nueva zona DNS (registro SOA)."
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr "Forzar"
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr "Fuerza la creación de la zona DNS del servidor de nombres no en DNS."
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr "Agregue el servidor de nombres de DNS con esta dirección IP"
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr "DNS no está configurado"
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-"\n"
-" Eliminar zona DNS (registro SOA)."
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-"\n"
-" Modificar zona DNS (registro SOA)."
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-"\n"
-" Búsqueda de zonas DNS (registros SOA)."
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-"\n"
-" Mostrar información sobre una zona DNS (registro SOA)."
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-"\n"
-" Desactivar zona de DNS."
-#: ipalib/plugins/dns.py:472
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
+msgstr ""
+
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
+msgstr ""
+
+#: ipalib/plugins/dns.py:878
+#, python-format
msgid "Disabled DNS zone \"%(value)s\""
msgstr "Zona de DNS desactivada \"%(value)s\" "
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-"\n"
-" Habilitar zona DNS."
-#: ipalib/plugins/dns.py:494
+#: ipalib/plugins/dns.py:899
+#, python-format
msgid "Enabled DNS zone \"%(value)s\""
msgstr "Zona DNS habilitada \" %(value)s \""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
-msgstr ""
-"\n"
-" Registro DNS."
-
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:922
msgid "DNS resource record"
msgstr "Registro de recursos DNS"
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
msgid "Record name"
msgstr "Nombre de registro"
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
msgid "Time to live"
msgstr "Tiempo para abandonar"
-#: ipalib/plugins/dns.py:538
+#: ipalib/plugins/dns.py:944
msgid "Class"
msgstr "Clase"
-#: ipalib/plugins/dns.py:539
+#: ipalib/plugins/dns.py:945
msgid "DNS class"
msgstr "Clase DNS"
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
-msgstr ""
-"\n"
-" Clase base para los comandos de registro DNS con opciones de registro."
-
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
-msgstr ""
-"\n"
-" Clase de base para añadir o eliminar registros de las entradas de recursos DNS."
-
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
-msgstr ""
-"\n"
-" Agregar registros a recursos DNS."
-
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
-msgstr ""
-"\n"
-" Añadir nuevo registro de recursos DNS."
-
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
-msgstr ""
-"Forzar la creación del registro DNS, aunque su nombre no sea absoluto"
-
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, python-format
msgid ""
"Reverse zone for PTR record should be a sub-zone of one the following fully "
"qualified domains: %s"
-msgstr ""
-"La zona invertida para registro PTR debería ser una sub-zona de uno de los "
-"siguientes dominios integramente cualificados: %s"
+msgstr "La zona invertida para registro PTR debería ser una sub-zona de uno de los siguientes dominios integramente cualificados: %s"
-#: ipalib/plugins/dns.py:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
-msgstr ""
-"La zona invertida %s requiere exactamente %d componentes de direcciones IP, "
-"%d dados"
+msgstr "La zona invertida %s requiere exactamente %d componentes de direcciones IP, %d dados"
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-"Registro PTR '%s' no está integramente cualificado(compruebe último '.')"
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "Forzar la creación del registro DNS, aunque su nombre no sea absoluto"
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-"\n"
-" Eliminar entrada de registro de DNS."
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr "Registro eliminado \"%(value)s\""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-"\n"
-" Eliminar registro de recursos DNS."
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
msgid ""
"Neither --del-all nor options to delete a specific record provided.\n"
"Command help may be consulted for all supported record types."
-msgstr ""
-"Ni --del-all ni opciones para borrar un registro en concreto ha sido especificado.\n"
-"El comando de ayuda puede ser consultado para ver los tipos de registros soportados."
+msgstr "Ni --del-all ni opciones para borrar un registro en concreto ha sido especificado.\nEl comando de ayuda puede ser consultado para ver los tipos de registros soportados."
-#: ipalib/plugins/dns.py:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr "Eliminar todos los registros asociados"
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr "Ninguna opción para borrar un registro en concreto especificado."
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr "¿Borrar todos?"
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr "Contenidos actuales del registro DNS:\n"
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr "registro %s con valor %s no encontrado "
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-"\n"
-" Mostrar recursos de DNS."
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-"\n"
-" Búsqueda de recursos de DNS."
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-"\n"
-" Resolver un nombre de host en DNS"
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr "Ha sido encontrado '%(value)s'"
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr "Nombre del equipo anfitrión"
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr "No ha sido encontrado el equipo anfitrión '%(host)s' "
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-"\n"
-" Comprueba si alguno de los servidores tiene habilitado el servicio DNS."
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2955,249 +2862,130 @@ msgid ""
"IMPORTED if you have used entitle-import.\n"
"\n"
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
-msgstr ""
-"\n"
-"Derechos\n"
-"\n"
-"Administrar derechos para máquinas clientes\n"
-"\n"
-"Los derechos pueden ser administrados ya sea al registrar un servidor \n"
-"de derecho server con un nombre de usuario y contraseña o al importar manualmente los certificados\n"
-"\n"
-"Un certificado de derechos contiene información incorporada\n"
-"tal como el producto que va a ser autorizado, la cantidad y fechas de validez.\n"
-"\n"
-"Un servidor de derechos administra el número de derechos de cliente disponibles.\n"
-"Para marcar estos derechos como usados por el servidor de IPA, se proporciona una cantidad\n"
-"y se marca como consumida en el servidor de derechos.\n"
-"\n"
-" Registrar con un servidor de derechos:\n"
-" ipa entitle-register consumer\n"
-"\n"
-" Importar un certificado de derechos:\n"
-" ipa entitle-import /home/user/ipaclient.pem\n"
-"\n"
-" Mostrar los derechos actuales:\n"
-" ipa entitle-status\n"
-"\n"
-" Recuperar detalles sobre certificados de derechos:\n"
-" ipa entitle-get\n"
-"\n"
-" Consumir algunos derechos del servidor de derechos:\n"
-" ipa entitle-consume 50\n"
-"\n"
-"La ID de registro es un identificador único (UUID). Esta ID será\n"
-"IMPORTED if you have used entitle-import.\n"
-"\n"
-"Cambios a /etc/rhsm/rhsm.conf requieren un reinicio del servicio httpd.\n"
+msgstr "\n\\n\nDerechos\\n\n\\n\nAdministrar derechos para máquinas clientes\\n\n\\n\nLos derechos pueden ser administrados ya sea al registrar un servidor \\n\nde derecho server con un nombre de usuario y contraseña o al importar manualmente los certificados\\n\n\nUn certificado de derechos contiene información incorporada\\n\ntal como el producto que va a ser autorizado, la cantidad y fechas de validez.\\n\n\n\\n\nUn servidor de derechos administra el número de derechos de cliente disponibles.\\n\nPara marcar estos derechos como usados por el servidor de IPA, se proporciona una cantidad\\n\ny se marca como consumida en el servidor de derechos.\\n\n\n\\n\n Registrar con un servidor de derechos:\\n\n ipa entitle-register consumer\\n\n\n\\n\n Importar un certificado de derechos:\\n\n ipa entitle-import /home/user/ipaclient.pem\\n\n\n\\n\n Mostrar los derechos actuales:\\n\n ipa entitle-status\\n\n\n\\n\n Recuperar detalles sobre certificados de derechos:\\n\n ipa entitle-get\\n\n\n\\n\n Consumir algunos derechos del servidor de derechos:\\n\n ipa entitle-consume 50\\n\n\\n\nLa ID de registro es un identificador único (UUID). Esta ID será\\n\nIMPORTED if you have used entitle-import.\\n\n\\n\n\nCambios a /etc/rhsm/rhsm.conf requieren un reinicio del servicio httpd.\\n\n"
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-"\n"
-" Suscríbase a nuestro grupo de derechos. Suponga que sólo hay un grupo."
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-"\n"
-" Recuperar nuestra UUID, certificado y la clave de LDAP. \n"
-" Salvo en caso de error, la persona que llama es la responsable de la eliminación de archivos \n"
-" temporales"
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
-msgstr ""
-"\n"
-" Objeto de derecho"
-
-#: ipalib/plugins/entitle.py:189
+#: ipalib/plugins/entitle.py:190
msgid "Entitlements"
msgstr "Autorizaciones"
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-"\n"
-" Mostrar derechos actuales"
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr "UUID"
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr "Producto"
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr "Cantidad"
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr "Consumido"
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-"\n"
-" Consumir un derecho"
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr "Derecho(s) consumido(s) %(value)s."
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-"\n"
-" Remplácelo para ajustar el valor al número de derechos\n"
-" consumidos."
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-"\n"
-" Devolver los certificados no es muy interesante. Devuelve el estado de los derechos en su lugar."
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-"\n"
-" Recuperar el certificado de derechos"
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr "Inicio"
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr "Fin"
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr "Número de serie"
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr "No es un certificado de derechos"
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-"\n"
-" Búsqueda de cuentas de derechod."
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-"\n"
-" Regístrese al sistema de derechos"
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr "Registrado en el servidor de derechos."
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr "Nombre de usuario"
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr "Inscripción UUID"
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
-msgstr "Contraseña"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
+msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr "Contraseña de registro"
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-"\n"
-" Importación de un certificado de derechos."
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
-msgstr ""
-"\n"
-" Si añadimos la primera entrada no hay actualizaciones por lo tanto, EmptyModlist \n"
-" será lanzada. Ignórelo."
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
+msgstr "Inscripción UUID"
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-"\n"
-" Re-sincronización de la cache de derecho local con el servidor de derechos"
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
-msgstr "Derecho(s) sincronizado(s)."
+msgstr "Derecho (s) sincronizado(s)."
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -3239,217 +3027,124 @@ msgid ""
" Display information about a named group.\n"
" ipa group-show localadmins\n"
msgstr ""
-"\n"
-"Grupos de usuarios\n"
-"\n"
-"Administrar grupos de usuarios. Por defecto, nuevos grupos son grupos POSIX. Usted\n"
-"puede añadir la opción --nonposix al comando group-add para señalar un nuevo grupo\n"
-"como un non-POSIX, y puede usar el mismo argumento para el comando group-mod\n"
-"para convertir un grupo non-POSIX a un grupo POSIX. Los grupos POSIX no pueden convertirse\n"
-"en grupos non-POSIX.\n"
-"\n"
-"Cada grupo debe tener una descripción.\n"
-"\n"
-"Los grupos POSIX deben tener un número ID de grupo (GID). El cambiar un GID está\n"
-"soportado pero tiene un impacto en sus permisos de archivos. Es necesario\n"
-"proporcionar un GID al crear un grupo. IPA generará uno automáticamente\n"
-"si no está provisto.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo grupo:\n"
-" ipa group-add --desc='local administrators' localadmins\n"
-"\n"
-" Añadir un nuevo grupo non-POSIX:\n"
-" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
-"\n"
-" Convertir un grupo non-POSIX a posix:\n"
-" ipa group-mod --posix remoteadmins\n"
-"\n"
-" Añadir un nuevo grupo POSIX con un número de ID de grupo específico:\n"
-" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
-"\n"
-" Añadir un nuevo grupo POSIX y permitir que IPA asigne un número de ID de grupo:\n"
-" ipa group-add --desc='printer admins' printeradmins\n"
-"\n"
-" Remover un grupo:\n"
-" ipa group-del unixadmins\n"
-"\n"
-" Añadir el grupo \"remoteadmins\" al grupo \"localadmins\":\n"
-" ipa group-add-member --groups=remoteadmins localadmins\n"
-"\n"
-" Añadir una lista de usuarios al grupo \"localadmins\":\n"
-" ipa group-add-member --users=test1,test2 localadmins\n"
-"\n"
-" Remover un usuario del grupo \"localadmins\":\n"
-" ipa group-remove-member --users=test2 localadmins\n"
-"\n"
-" Mostrar información sobre un grupo con nombre.\n"
-" ipa group-show localadmins\n"
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
-msgstr ""
-"\n"
-" Objeto de grupos."
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr "grupo"
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr "grupos"
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "Grupos de usuarios"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "Nombre del grupo"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "Descripción del grupo"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr "GID (utilice esta opción para definirlo manualmente)"
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
-msgstr ""
-"\n"
-" Crear un nuevo grupo."
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
+msgstr "Crear un grupo nuevo."
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "Ha sido agregado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
-msgstr "Crear como un grupo no POSIX"
+msgstr " Crear como un grupo no POSIX"
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
-msgstr ""
-"\n"
-" Borrar grupo."
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
+msgstr "Eliminar grupo."
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "Ha sido eliminado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
-msgstr ""
-"\n"
-" Modificar un grupo."
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
+msgstr "Modificar un grupo."
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "Ha sido modificado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr "Cambiar a un grupo POSIX"
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-"\n"
-" Buscar grupos."
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d grupo coincidente"
msgstr[1] "%(count)d grupos coincidentes"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr "Búsqueda de grupos privados"
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-"\n"
-" Mostrar información sobre un grupo con nom llamado."
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
-msgstr ""
-"\n"
-" Añadir miembros a un grupo."
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
+msgstr "Agregar miembro a un grupo."
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
-msgstr ""
-"\n"
-" Eliminar miembros de un grupo."
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
+msgstr "Eliminar miembro desde un grupo."
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-"\n"
-" Separar un grupo administrado de un usuario"
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-"\n"
-" Se requiere la actualización del usuario y del grupo. Primero tenemos que \n"
-" comprobar si el usuario y el grupo pueden ser actualizados, luego, \n"
-" nos ocupamos de nuestro trabajo. No queremos una situación en la que solamente el usuario o \n"
-" el grupo puede ser modificado y nos dejen en mal estado."
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr "no se permite modificar las entradas de los usuarios"
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr "no se permite modificar las entradas de los grupos"
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr "No es un grupo administrado"
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -3471,7 +3166,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -3479,7 +3174,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -3488,7 +3183,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -3498,344 +3193,212 @@ msgid ""
" Remove a named HBAC rule:\n"
" ipa hbacrule-del allow_server\n"
msgstr ""
-"\n"
-"Control de acceso basado en host\n"
-"\n"
-"Controla quién puede acceder a los servicios en los hosts y desde dónde.\n"
-"Puede\n"
-"usar HBAC para controlar a los usuarios y grupos en un host de origen puedan acceder a un servicio o grupo de servicios en un host de destino.\n"
-"\n"
-"Puede especificar una categoría de usuarios, host de destino y hosts de origen. Está actualmente limitada a \"all\", pero se podría expandir en el futuro.\n"
-"\n"
-"Los hosts de destino y fuente en reglas de HBAC deben ser manejados por IPA.\n"
-"\n"
-"Los servicios y grupos disponibles están controlados por complementos hbacsvc y hbacsvcgroup respectivamente.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Crear una regla, \"test1\", que otorgue a todos los usuarios acceso al host \"server\" desde cualquier parte:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
-" ipa hbacrule-add-host --hosts=server.example.com test1\n"
-"\n"
-" Mostrar las propiedades de una regla llamada HBAC:\n"
-" ipa hbacrule-show test1\n"
-"\n"
-" Crear una regla para un servicio específico. Esto permite jThis lets the user john access\n"
-" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
-" ipa hbacrule-add-user --users=john john_sshd\n"
-" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
-"\n"
-" Create a rule for a new service group. This lets the user john access\n"
-" the FTP service on any machine from any machine:\n"
-" ipa hbacsvcgroup-add ftpers\n"
-" ipa hbacsvc-add sftp\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
-" ipa hbacrule-add-user --users=john john_ftp\n"
-" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
-"\n"
-" Disable a named HBAC rule:\n"
-" ipa hbacrule-disable test1\n"
-"\n"
-" Remove a named HBAC rule:\n"
-" ipa hbacrule-del allow_server\n"
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-"\n"
-" Ver si opciones [atribute] \"all\" en minúscula de una manera segura."
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-"\n"
-" Objeto HBAC."
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
-msgstr "Regla HBAC"
+msgstr "REgla HBAC"
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "Nombre de la regla"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "Tipo de regla (permitir o negar)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr "Tipo de regla"
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "Categoría de usuario"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr "Categoría de usuario al que se aplica la regla"
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr "Categoría del equipo"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr "Categoría del equipo al que se aplica la regla"
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr "Categoría del equipo de origen"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr "Categoría del equipo de origen al que se aplica la regla"
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
-msgstr "Categoría de servicio"
+msgstr " Añadir servicios a una regla de HBAC"
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr "Categoría de servicio a la que se aplica la regla"
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr "Habilitado"
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "Usuarios"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr "Grupos"
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr "Equipos"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr "Grupos de equipo"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
-msgstr "Equipos fuente"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
-msgstr "Grupos de origen de host"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
-msgstr "Servicios"
+msgstr "Sevicios HBAC"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
-msgstr "Grupos de servicio"
+msgstr " Búsqueda de servicios HBAC."
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-"\n"
-" Crear una regla HBAC nueva."
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr "Añadida regla HBAC \"%(value)s\""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-"\n"
-" Eliminar una regla HBAC."
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr "Suprimida regla HBAC \"%(value)s\""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-"\n"
-" Modificar una regla HBAC."
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr "Modificada regla HBAC \"%(value)s\""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-"\n"
-" Búsqueda de reglas HBAC."
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] "%(count)d regla coincidente de HBAC"
msgstr[1] "%(count)d reglas coincidentes de HBAC "
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
-"\n"
-" Mostrar las propiedades de una regla de HBAC."
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-"\n"
-" Habilitar una regla HBAC."
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr "Habilitada regla HBAC \"%(value)s\""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-"\n"
-" Desactivar una regla HBAC. "
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr "\"%(value)s\" regla HBAC desactivada "
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Añadir un tiempo de acceso a una regla HBAC."
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "Hora de acceso"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-"\n"
-" Eliminar el tiempo de acceso a la regla HBAC."
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-"\n"
-" Agregar usuarios y grupos a una regla de HBAC."
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-"\n"
-" Quitar usuarios y grupos a partir de una regla de HBAC."
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-"\n"
-" Agregar host de destino y hostgroups a una regla HBAC"
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-"\n"
-" Quitar host de destino y hostgroups de una regla de HBAC."
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-"\n"
-" Añadir hosts de origen y hostgroups de una norma HBAC."
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-"\n"
-" Retirar hosts de origen y hostgroups de una regla de HBAC."
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-"\n"
-" Añadir servicios a una regla de HBAC."
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Eliminar los grupos de servicio y el servicio de una regla de HBAC."
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -3858,118 +3421,79 @@ msgid ""
" Delete an HBAC service:\n"
" ipa hbacsvc-del tftp\n"
"\n"
+msgstr "\nServicios de HBAC\n\nLos servicios PAM a los que HBAC puede controlar el acceso. El nombre utilizado aquí debe coincidir\ncon el nombre del servicio que PAM está evaluando.\n\nEJEMPLOS:\n\n Añadir un nuevo servicio:\n ipa hbacsvc-add tftp\n\n Modificar un servicio de HBAC:\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Buscar servicios para HBAC. Este ejemplo retornará dos resultados, el servicio FTP\n y el servicio recién añadido tftp:\n ipa hbacsvc-find ftp\n\n Borrar un servicio de HBAC:\n ipa hbacsvc-del tftp\n\n"
+
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-"\n"
-"Servicios de HBAC\n"
-"\n"
-"Los servicios PAM a los que HBAC puede controlar el acceso. El nombre utilizado aquí debe coincidir\n"
-"con el nombre del servicio que PAM está evaluando.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo servicio:\n"
-" ipa hbacsvc-add tftp\n"
-"\n"
-" Modificar un servicio de HBAC:\n"
-" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
-"\n"
-" Buscar servicios para HBAC. Este ejemplo retornará dos resultados, el servicio FTP\n"
-" y el servicio recién añadido tftp:\n"
-" ipa hbacsvc-find ftp\n"
-"\n"
-" Borrar un servicio de HBAC:\n"
-" ipa hbacsvc-del tftp\n"
-"\n"
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr "Servicio HBAC"
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
-"\n"
-" Objeto de servicio HBAC."
-#: ipalib/plugins/hbacsvc.py:61
+#: ipalib/plugins/hbacsvc.py:66
msgid "HBAC Services"
msgstr "Servicios HBAC"
-#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "Nombre del servicio"
-
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
-msgstr "Servicio HBAC"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "% (Count) d HBAC servicios encontrados"
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr "Descripción de servicio HBAC"
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-"\n"
-" Agregar un servicio HBAC nuevo."
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr "Servicio de HBAC \"%(value)s\" añadido"
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-"\n"
-" Eliminar un servicio existente HBAC."
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr "Suprimido el servicio HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-"\n"
-" Modificar un servicio HBAC."
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
-msgstr "Servicio modificado HBAC \"%(value)s\""
+msgstr " Servicio modificado HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-"\n"
-" Búsqueda de servicios HBAC."
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] "Servicio HBAC %(count)d coincidente"
msgstr[1] "Servicios HBAC %(count)d coincidentes"
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-"\n"
-" Mostrar información sobre un servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3994,133 +3518,246 @@ msgid ""
"\n"
" Delete an HBAC service group:\n"
" ipa hbacsvcgroup-del login\n"
+msgstr "\nGrupos de servicio HBAC\n\nGrupos de servicio HBAC pueden contener cualquier número de servicios individuales, o \"miembros\". Cada grupo debe contener una descripción\n\nEJEMPLOS:\n\n Añadir un nuevo grupo de servicio HBAC:\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Añadir miembros a un grupo de servicio HBAC:\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Mostrar información sobre grupo llamado:\n ipa hbacsvcgroup-show login\n\n Añadir un nuevo grupo al grupo \"login\":\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Eliminar un grupo de servicio HBAC:\n ipa hbacsvcgroup-del login\n"
+
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
msgstr ""
-"\n"
-"Grupos de servicio HBAC\n"
-"\n"
-"Grupos de servicio HBAC pueden contener cualquier número de servicios individuales, o \"miembros\". Cada grupo debe contener una descripción\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo grupo de servicio HBAC:\n"
-" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
-"\n"
-" Añadir miembros a un grupo de servicio HBAC:\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
-"\n"
-" Mostrar información sobre grupo llamado:\n"
-" ipa hbacsvcgroup-show login\n"
-"\n"
-" Añadir un nuevo grupo al grupo \"login\":\n"
-" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
-"\n"
-" Eliminar un grupo de servicio HBAC:\n"
-" ipa hbacsvcgroup-del login\n"
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-"\n"
-" HBAC servicio objeto de grupo."
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
-msgstr "Grupos de servicios HBAC"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
-msgstr "Nombre del servicio"
+msgstr " Desactivar la tecla de Kerberos, certificado SSL y todos los servicios de un host."
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
-msgstr ""
+msgstr "Servicios y grupos especificados"
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-"\n"
-" Añadir un nuevo grupo de servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr "Agregado servicio de grupo HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
-"\n"
-" Eliminar un grupo de servicio HBAC."
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
-msgstr "Suprimido el servicio HBAC grupo \"%(value)s\""
+msgstr " Suprimido el servicio HBAC grupo \"%(value)s\""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-"\n"
-" Modificar un grupo de servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr "Servicio modificado HBAC grupo \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-"\n"
-" Búsqueda de un grupo de servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] "%(count)d grupo de servicio HBAC coincidente"
msgstr[1] "%(count)d grupos de servicio HBAC coincidentes"
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-"\n"
-" Mostrar información sobre un grupo de servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-"\n"
-" Añadir miembros a un grupo de servicio HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
-msgstr ""
+"Simulate use of Host-based access controls\n"
+"\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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\n"
+"\n"
+"EXAMPLES:\n"
"\n"
-" Eliminar miembros de un grupo de servicio HBAC."
+" 1. Use all enabled HBAC rules in IPA database to simulate:\n"
+" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "Nombre de usuario"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr "Servicio"
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr "Eliminar miembro desde un grupo."
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -4174,291 +3811,204 @@ msgid ""
"\n"
" Add a host that can manage this host's keytab and certificate:\n"
" ipa host-add-managedby --hosts=test2 test\n"
-msgstr ""
-"\n"
-"Hosts/Máquinas\n"
-"\n"
-"Un host representa una máquina. Se puede utilizar en un número de contextos:\n"
-"- entradas de servicios están asociadas a un host\n"
-"- un host almacena el host o servicio principal\n"
-"- Un host puede ser utilizado en reglas de Control de Acceso basado en host (HBAC) \n"
-"- Cada cliente inscrito genera una entrada de host\n"
-"\n"
-"REGISTRO:\n"
-"\n"
-"Hay tres situaciones de inscripción de nuevo cliente:\n"
-"\n"
-"1. Se está inscribiendo como un administrador total. La entrada de host puede existir\n"
-" o no. Un administrador total es un miembro de un rol hostadmin o de un grupo admins.\n"
-"2. Se está inscribiendo como un administrador limitado. El host ya debe existir. Un administrador limitado es un miembro de un rol con un privilegio de inscripción de host.\n"
-"3. El host ha sido creado con una contraseña de una sola vez.\n"
-"\n"
-"Un host solo puede incribirse una vez. Si un cliente se ha inscrito y necesita reincribirse, la entrada de host debe eliminarse y volverse a crear. Observe que\n"
-"re-crear la entrada de host hará que todos los servicios de host sean eliminados y todos los certificados SSL asociados a dichos servicios sean revocados.\n"
-"\n"
-"Opcionalmente, un host puede almacenar información tal como en donde se localiza el sistema operativo que ejecuta, etc.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo host:\n"
-" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n"
-"\n"
-" Borrar un host:\n"
-" ipa host-del test.example.com\n"
-"\n"
-" Añadir un nuevo host con una contraseña de una sola vez:\n"
-" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
-"\n"
-" Añadir un nuevo host con una contraseña aleatoria de una sola vez:\n"
-" ipa host-add --os='Fedora 12' --random test.example.com\n"
-"\n"
-" Modificar información sobre un host:\n"
-" ipa host-mod --os='Fedora 12' test.example.com\n"
-"\n"
-" Inhabilitar la clave de Kerberos, certificado SSL y todos sus servicios:\n"
-" ipa host-disable test.example.com\n"
-"\n"
-" Añadir un host que pueda administrar esta tabla de claves y certificado de host:\n"
-" ipa host-add-managedby --hosts=test2 test\n"
-
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-"\n"
-" Requieren por lo menos un punto en el nombre de host \n"
-" (para apoyar localhost.localdomain)"
+msgstr "\nHosts/Máquinas\n\nUn host representa una máquina. Se puede utilizar en un número de contextos:\n- entradas de servicios están asociadas a un host\n- un host almacena el host o servicio principal\n- Un host puede ser utilizado en reglas de Control de Acceso basado en host (HBAC) \n- Cada cliente inscrito genera una entrada de host\n\nREGISTRO:\n\nHay tres situaciones de inscripción de nuevo cliente:\n\n1. Se está inscribiendo como un administrador total. La entrada de host puede existir\n o no. Un administrador total es un miembro de un rol hostadmin o de un grupo admins.\n2. Se está inscribiendo como un administrador limitado. El host ya debe existir. Un administrador limitado es un miembro de un rol con un privilegio de inscripción de host.\n3. El host ha sido creado con una contraseña de una sola vez.\n\nUn host solo puede incribirse una vez. Si un cliente se ha inscrito y necesita reincribirse, la entrada de host debe eliminarse y volverse a crear. Observe que\nre-crear la entrada de host hará que todos los servicios de host sean eliminados y todos los certificados SSL asociados a dichos servicios sean revocados.\n\nOpcionalmente, un host puede almacenar información tal como en donde se localiza el sistema operativo que ejecuta, etc.\n\nEJEMPLOS:\n\n Añadir un nuevo host:\n ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n\n Borrar un host:\n ipa host-del test.example.com\n\n Añadir un nuevo host con una contraseña de una sola vez:\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Añadir un nuevo host con una contraseña aleatoria de una sola vez:\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Modificar información sobre un host:\n ipa host-mod --os='Fedora 12' test.example.com\n\n Inhabilitar la clave de Kerberos, certificado SSL y todos sus servicios:\n ipa host-disable test.example.com\n\n Añadir un host que pueda administrar esta tabla de claves y certificado de host:\n ipa host-add-managedby --hosts=test2 test\n"
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Es necesario un nombre de equipo totalmente certificado"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr "Zona invertida DNS para dirección IP %(addr)s no encontrada"
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr "Keytab"
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
-msgstr ""
-"\n"
-" Comprobar si tenemos ya sea una dirección IPv4 o IPv6."
-
-#: ipalib/plugins/host.py:189
+#: ipalib/plugins/host.py:207
msgid "invalid IP address"
msgstr "Dirección IP no válida"
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:216
+msgid "host"
+msgstr ""
+
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-"\n"
-" Objeto de host."
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr "Nombre del equipo"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr "Una descripción de este equipo"
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr "Localidad"
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") "
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "Plataforma"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "Sistema operativo"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "Contraseña de usuario"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr "Contraseña utilizada en el registro bruto"
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
-msgstr ""
-"Generar una contraseña aleatoria que se utilizará en la inscripción "
+msgstr "Generar una contraseña aleatoria que se utilizará en la inscripción "
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr "Contraseña aleatoria"
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr "Certificado del servidor codificado con base-64"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr "Nombre principal"
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-"\n"
-" Añadir un nuevo host."
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "Ha sido agregado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
-msgstr ""
-"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS"
+msgstr "fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS"
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr "Ignorar la detección inversa de DNS"
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr "Agregar el host de DNS con esta dirección IP"
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr "Zona DNS %(zone)s no encontrado"
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
-msgstr ""
-"El host fue añadido, pero la actualización de DNS falló con: %(exc)s"
+msgstr "El host fue añadido, pero la actualización de DNS falló con:%(exc)s"
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-"\n"
-" Eliminar un anfitrión."
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "Ha sido eliminado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr "Eliminar entradas de DNS"
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-"\n"
-" Modificar la información sobre un host."
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "Ha sido modificado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr "Nombre del prinicpal de Kerberos para este equipo"
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-"\n"
-" Buscar hosts."
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "%(count)d equipo coincidente"
msgstr[1] "%(count)d equipos coincidentes"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-"\n"
-" Mostrar información de host."
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr "archivo para almacenar"
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr "Certificado almacenado en el archivo '%(file)s'"
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-"\n"
-" Desactivar la tecla de Kerberos, certificado SSL y todos los servicios de un host."
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr "Host desactivado \"%(value)s\""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-"\n"
-" Añadir hosts que pueden manejar esta máquina."
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-"\n"
-" Retire los hosts que puede manejar esta máquina."
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -4488,1136 +4038,1157 @@ msgid ""
"\n"
" Delete a hostgroup:\n"
" ipa hostgroup-del baltimore\n"
+msgstr "\nGrupos de hosts.\n\nAdministrar grupos de hosts. Es útili para aplicar control a un número de hosts mediante Host-basado en Control de Acceso.\n\nEJEMPLOS:\n\n Añadir un nuevo grupo de host:\n ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n\n Añadir otro nuevo grupo de host:\n ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n\n Añadir miembros de hostgroup:\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Añadir un hostgroup como miembro de otro\n hostgroup:\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Quitar un host de un hostgroup:\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Mostrar un grupo de host:\n ipa hostgroup-show baltimore\n\n Eliminar un hostgroup:\n ipa hostgroup-del baltimore\n"
+
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-"\n"
-"Grupos de hosts.\n"
-"\n"
-"Administrar grupos de hosts. Es útili para aplicar control a un número de hosts mediante Host-basado en Control de Acceso.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo grupo de host:\n"
-" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
-"\n"
-" Añadir otro nuevo grupo de host:\n"
-" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
-"\n"
-" Añadir miembros de hostgroup:\n"
-" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
-"\n"
-" Añadir un hostgroup como miembro de otro\n"
-" hostgroup:\n"
-" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
-"\n"
-" Quitar un host de un hostgroup:\n"
-" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
-"\n"
-" Mostrar un grupo de host:\n"
-" ipa hostgroup-show baltimore\n"
-"\n"
-" Eliminar un hostgroup:\n"
-" ipa hostgroup-del baltimore\n"
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-"\n"
-" Objeto de hostgroup."
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr "Grupo de equipo"
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr "Nombre del grupo de equipo"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr "Una descripción de este grupo de equipo"
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-"\n"
-" Añadir una nueva hostgroup."
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "Ha sido agregado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
msgstr ""
-"\n"
-" Eliminar hostgroup."
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-"\n"
-" Modificar un hostgroup."
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "Ha sido modificado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-"\n"
-" Buscar hostgroups."
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "%(count)d grupo de equipos coincidente"
msgstr[1] "%(count)d grupos de equipos coincidentes"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Mostrar información sobre un hostgroup."
-
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Agregar miembros a un hostgroup."
-
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-"\n"
-" Eliminar miembros de un hostgroup."
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-"\n"
-"Complementos no se pueden acceder directamente a través de la CLI, los comandos usados internamente\n"
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-"\n"
-" Exportar complemento de meta-datos para la WebUI."
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr "Nombre del objeto a exportar"
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr "Nombre del método para exportación"
-#: ipalib/plugins/internal.py:52
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:64
msgid "Dict of JSON encoded IPA Objects"
msgstr "El dict de JSON ha codificado objetos IPA"
-#: ipalib/plugins/internal.py:53
+#: ipalib/plugins/internal.py:65
msgid "Dict of JSON encoded IPA Methods"
msgstr "Métodos IPA codificados de Dict de JSON "
-#: ipalib/plugins/internal.py:96
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
+msgstr "Su tiquetes de Kerberos ya no es válido. Por favor, ejecute kinit y, a continuación haga clic en 'Reintentar'. Si es la primera vez que ejecuta la API de interfaz de usuario Web <ahref='/ipa/config/unauthorized.html'>siga estas instrucciones</a> para configurar su navegador."
+
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
+msgstr ""
+
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr "Añadir ${other_entity} a ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
+msgstr ""
+
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
+msgstr ""
+
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr "Retirar ${other_entity} de ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179
+msgid "Add"
+msgstr "Agregar"
+
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
+msgstr "Agregar y agregar otro"
+
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
+msgstr "Añadir y cerrar"
+
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
+msgstr "Agregar y Editar"
+
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
+msgstr "Añadir Muchos"
+
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ipalib/plugins/internal.py:185
+msgid "Close"
+msgstr "Cerrar"
+
+#: ipalib/plugins/internal.py:186
+msgid "Find"
+msgstr "Buscar"
+
+#: ipalib/plugins/internal.py:187
+msgid "Get"
+msgstr "Obtener"
+
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
+msgstr "Tema"
+
+#: ipalib/plugins/internal.py:189
+msgid "OK"
+msgstr "Aceptar"
+
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
+msgstr "Eliminar"
+
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
+msgstr "Resetear"
+
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
+msgstr "Restaurar"
+
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
+msgstr "Reintentar"
+
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
+msgstr "Revocar"
+
+#: ipalib/plugins/internal.py:195
+msgid "Update"
+msgstr "Actualizar"
+
+#: ipalib/plugins/internal.py:196
+msgid "View"
+msgstr "Ver"
+
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201
+msgid "General"
+msgstr "General"
+
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
+msgstr "Configuración de identidad"
+
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
+msgstr "Configuraciones de ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
+msgstr "Volver al comienzo"
+
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209
+msgid "Available"
+msgstr "Disponible"
+
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
+msgstr "Esta página tiene cambios sin guardar. Por favor, guardar o deshacer."
+
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
+msgstr "Prospectivo"
+
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
+msgstr ""
+
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
+msgstr ""
+
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:229
+msgid "No response"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231
+msgid "URL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
+msgstr "Configuración"
+
+#: ipalib/plugins/internal.py:240
+msgid "Search"
+msgstr "Búsqueda"
+
+#: ipalib/plugins/internal.py:242
+msgid "False"
+msgstr ""
+
+#: ipalib/plugins/internal.py:244
msgid "Logged In As"
msgstr "Registrado como"
-#: ipalib/plugins/internal.py:99
+#: ipalib/plugins/internal.py:248
msgid "Attribute"
msgstr "Atributo"
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr "Agregar ubicación de montaje automático"
-
-#: ipalib/plugins/internal.py:103
+#: ipalib/plugins/internal.py:253
msgid "Automount Location Settings"
msgstr "Configuración de ubicación de automount"
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr "Añadir mapa de automontaje"
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
-msgstr "Añadir Clave de Automontaje"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
+msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
-msgstr "No especificada"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
+msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
-msgstr "Clave de transacción"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
+msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
-msgstr "CA de transacción"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
+msgstr "AA transacción"
-#: ipalib/plugins/internal.py:115
+#: ipalib/plugins/internal.py:262
msgid "Affiliation Changed"
msgstr "Afiliación cambiada"
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
-msgstr "Obsoleta"
-
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
-msgstr "Cese de operaciones"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
+msgstr "CA de transacción"
-#: ipalib/plugins/internal.py:118
+#: ipalib/plugins/internal.py:264
msgid "Certificate Hold"
msgstr "Certificado retenido"
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
-msgstr "Borrar de CRL"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
+msgstr "Cese de operaciones"
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
-msgstr "Retirada de privilegios"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
+msgstr "Nombre común"
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
-msgstr "AA transacción"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
+msgstr "Ingrese la CRS con codificación Base64 abajo"
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
-msgstr ""
-"Para confirmar su intención de revocar el certificado, seleccione una "
-"razón de la lista desplegable y haga clic en el botón \"Revocar\"."
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
+msgstr "Expira el"
-#: ipalib/plugins/internal.py:124
-msgid "Note"
-msgstr "Nota"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
+msgstr "Las huellas dactilares"
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
-msgstr "Motivo de la revocación"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr "Nuevo número de certificados de "
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
-msgstr ""
-"Para confirmar su intención de restaurar este certificado, haga clic en el "
-"botón \"Restaurar\"."
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
+msgstr "Expedido por"
+
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
+msgstr "Expiración"
-#: ipalib/plugins/internal.py:128
+#: ipalib/plugins/internal.py:273
msgid "Issued To"
msgstr "Expedido para"
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
-msgstr "Nombre común"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
+msgstr "Clave de transacción"
-#: ipalib/plugins/internal.py:130
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
+msgstr "Huella digital de MD5"
+
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
+msgstr "Certificado no válido"
+
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
+msgstr "Un nuevo certificado"
+
+#: ipalib/plugins/internal.py:278
+msgid "Note"
+msgstr "Nota"
+
+#: ipalib/plugins/internal.py:279
msgid "Organization"
msgstr "Organización"
-#: ipalib/plugins/internal.py:131
+#: ipalib/plugins/internal.py:280
msgid "Organizational Unit"
msgstr "Unidad organizativa"
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
-msgstr "Expedido por"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
+msgstr "Retirada de privilegios"
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
-msgstr "Validez"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
+msgstr "Motivo de la revocación"
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
-msgstr "Emisor"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
+msgstr "Borrar de CRL"
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
-msgstr "Expira el"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr "Restaurar Certificado para "
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
-msgstr "Las huellas dactilares"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
+msgstr "Para confirmar su intención de restaurar este certificado, haga clic en el botón \"Restaurar\"."
-#: ipalib/plugins/internal.py:138
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr "Revocar certificado por ${entity} ${primary_key"
+
+#: ipalib/plugins/internal.py:287
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr "Para confirmar su intención de revocar el certificado, seleccione una razón de la lista desplegable y haga clic en el botón \"Revocar\"."
+
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
+msgstr "Certificado revocado"
+
+#: ipalib/plugins/internal.py:290
msgid "SHA1 Fingerprint"
msgstr "Huella digital SHA1"
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
-msgstr "Huella digital de MD5"
+#: ipalib/plugins/internal.py:291
+msgid "Superseded"
+msgstr "Obsoleta"
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
-msgstr "Ingrese la CRS con codificación Base64 abajo"
+#: ipalib/plugins/internal.py:292
+msgid "Unspecified"
+msgstr "No especificada"
-#: ipalib/plugins/internal.py:141
+#: ipalib/plugins/internal.py:293
msgid "Valid Certificate Present"
msgstr "Presentar certificado válido"
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
-msgstr "Un nuevo certificado"
+#: ipalib/plugins/internal.py:294
+msgid "Validity"
+msgstr "Validez"
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
-msgstr "Certificado revocado"
+#: ipalib/plugins/internal.py:295
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr "Certificado para ${entity} ${primary_key"
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
-msgstr "Certificado no válido"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
+msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
-msgstr "Certificado para ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
+msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
-msgstr "Nuevo número de certificados de ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
+msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
-msgstr "Revocar certificado por ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "Datos"
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
-msgstr "Restaurar Certificado para ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
+msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
-msgstr "Nombre"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
+msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
-msgstr "Añadir Delegación"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
+msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
-msgstr "Añadir zona DNS"
+#: ipalib/plugins/internal.py:309
+msgid "Standard Record Types"
+msgstr ""
-#: ipalib/plugins/internal.py:159
+#: ipalib/plugins/internal.py:310
+msgid "Records for DNS Zone"
+msgstr "Los registros para la zona DNS"
+
+#: ipalib/plugins/internal.py:311
+msgid "Record Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
msgid "DNS Zone Settings"
msgstr "Configuración de la Zona DNS"
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
-msgstr "Añadir registro DNS de recursos"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
+msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
-msgstr "Recursos"
+#: ipalib/plugins/internal.py:319
+msgid "Certificates"
+msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "Datos"
+#: ipalib/plugins/internal.py:320
+msgid "Consume"
+msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
-msgstr "Los registros para la zona DNS"
+#: ipalib/plugins/internal.py:321
+msgid "Consume Entitlement"
+msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
-msgstr "Añadir Grupo"
+#: ipalib/plugins/internal.py:323
+msgid "Download"
+msgstr ""
-#: ipalib/plugins/internal.py:170
+#: ipalib/plugins/internal.py:324
+msgid "Download Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Import"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Import Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
+msgid "Enter the Base64-encoded entitlement certificate below:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:329
+msgid "Loading..."
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "No Certificate."
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
+msgid "Register"
+msgstr ""
+
+#: ipalib/plugins/internal.py:333
+msgid "Registration"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
+msgstr "Estatus"
+
+#: ipalib/plugins/internal.py:338
msgid "Group Settings"
msgstr "Configuración del grupo"
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#: ipalib/plugins/internal.py:339
msgid "Is this a POSIX group?"
msgstr "¿Es esto un grupo POSIX?"
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
-msgstr "Añadir regla HBAC"
-
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
msgid "Active"
msgstr "Activo"
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
-msgstr "Permitir"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
+msgstr "Cualquier host"
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
-msgstr "Negar"
+#: ipalib/plugins/internal.py:344
+msgid "Any Service"
+msgstr "Cualquier servicio"
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
+msgstr "Cualquiera"
+
+#: ipalib/plugins/internal.py:346
+msgid "Accessing"
+msgstr "Acceso"
+
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
msgid "Inactive"
msgstr "Inactivos"
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
msgid "Rule status"
msgstr "Estatus de reglas"
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
-msgstr "¿Quién?"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
+msgstr "Vía de servicio"
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
-msgstr "Cualquiera"
+#: ipalib/plugins/internal.py:350
+msgid "From"
+msgstr "Desde"
+
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
+msgstr "Hosts y grupos especificados"
+
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
+msgstr "Servicios y grupos especificados"
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
msgid "Specified Users and Groups"
msgstr "Usuarios y grupos específicos"
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
-msgstr "Acceso"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
+msgstr "¿Quién?"
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
-msgstr "Cualquier host"
+#: ipalib/plugins/internal.py:362
+msgid "Access Denied"
+msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
-msgstr "Hosts y grupos especificados"
+#: ipalib/plugins/internal.py:363
+msgid "Access Granted"
+msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
-msgstr "Vía de servicio"
+#: ipalib/plugins/internal.py:364
+msgid "Include Disabled"
+msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
-msgstr "Cualquier servicio"
+#: ipalib/plugins/internal.py:365
+msgid "Include Enabled"
+msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
-msgstr "Servicios y grupos especificados"
+#: ipalib/plugins/internal.py:366
+msgid "HBAC Test"
+msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
-msgstr "Desde"
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
-msgstr "Añadir Servicio HBAC"
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
-msgstr "Añadir Grupo de Servicio HBAC"
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
+msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
-msgstr "Añadir Host"
+#: ipalib/plugins/internal.py:370
+msgid "Run Test"
+msgstr ""
-#: ipalib/plugins/internal.py:200
+#: ipalib/plugins/internal.py:371
+msgid "Specify external ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:372
+msgid "Unmatched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:375
msgid "Host Certificate"
msgstr "Certificado de host"
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
msgid "Host Name"
msgstr "Nombre de host"
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
+msgstr "La eliminación de clave, unprovision"
+
+#: ipalib/plugins/internal.py:378
msgid "Host Settings"
msgstr "Configuración del host"
-#: ipalib/plugins/internal.py:203
+#: ipalib/plugins/internal.py:379
msgid "Enrolled?"
msgstr "¿Inscrito?"
-#: ipalib/plugins/internal.py:204
+#: ipalib/plugins/internal.py:380
msgid "Enrollment"
msgstr "Inscripción"
-#: ipalib/plugins/internal.py:205
+#: ipalib/plugins/internal.py:381
msgid "Fully Qualified Host Name"
msgstr "Nombre de host totalmente calificado"
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
-msgstr "Estatus"
+#: ipalib/plugins/internal.py:382
+msgid "Kerberos Key"
+msgstr ""
-#: ipalib/plugins/internal.py:208
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr "No hay clave Kerberos Presente"
+
+#: ipalib/plugins/internal.py:384
msgid "Kerberos Key Present, Host Provisioned"
msgstr "Claves de Kerberos presente, Host aprovisionado"
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
-msgstr "La eliminación de clave, unprovision"
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
+msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
-msgstr "No hay clave Kerberos Presente"
+#: ipalib/plugins/internal.py:386
+msgid "One-Time-Password Not Present"
+msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
-msgstr "Inscríbase a través de una contraseña de una sola vez-contraseña"
+#: ipalib/plugins/internal.py:387
+msgid "One-Time-Password Present"
+msgstr ""
-#: ipalib/plugins/internal.py:212
+#: ipalib/plugins/internal.py:388
+msgid "Reset OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Reset One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:390
msgid "Set OTP"
msgstr "Establecer OTP"
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
-msgstr "Se ha establecido contraseña de una sola vez."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
+msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
-msgstr "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
+msgstr "Unprovision"
-#: ipalib/plugins/internal.py:215
+#: ipalib/plugins/internal.py:394
msgid "Are you sure you want to unprovision this host?"
msgstr "¿Está seguro que desea unprovision este equipo?"
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
-msgstr "Unprovision"
-
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
-msgstr "Añadir Grupo de Host"
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
+msgstr "Unprovisioning "
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:398
msgid "Host Group Settings"
msgstr "Configuraciones del Grupo de Host"
-#: ipalib/plugins/internal.py:223
+#: ipalib/plugins/internal.py:401
msgid "Kerberos ticket policy"
msgstr "Política de vale de Kerberos"
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
-msgstr "Añadir Netgroup"
-
-#: ipalib/plugins/internal.py:227
+#: ipalib/plugins/internal.py:404
msgid "Netgroup Settings"
msgstr "Configuración de Netgroup"
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
-msgstr "Añadir permiso"
-
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
msgid "Identity"
msgstr "Identidad"
-#: ipalib/plugins/internal.py:233
-msgid "Target"
-msgstr "Meta"
-
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
-msgstr "Por subárbol"
-
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
-msgstr "Grupo Objetivo"
-
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
-msgstr "Por tipo de objetos"
-
-#: ipalib/plugins/internal.py:238
+#: ipalib/plugins/internal.py:408
msgid "Permission with invalid target specification"
msgstr "Permiso con especificación de destino inválida"
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
-msgstr "Añadir Privilegio"
+#: ipalib/plugins/internal.py:410
+msgid "Target"
+msgstr "Meta"
-#: ipalib/plugins/internal.py:242
+#: ipalib/plugins/internal.py:413
msgid "Privilege Settings"
msgstr "Configuración de privilegios"
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
-msgstr "Añadir Directiva de contraseñas"
-
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
msgid "Password Policy"
msgstr "Directiva de contraseñas"
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
-msgstr "Añadir rol"
-
-#: ipalib/plugins/internal.py:250
+#: ipalib/plugins/internal.py:419
msgid "Role Settings"
msgstr "Configuración de rol"
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
-msgstr "Agregar definición de autoservicio"
-
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
-msgstr "Añadir Servicio"
-
-#: ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:424
msgid "Service Certificate"
msgstr "Certificado de servicio"
-#: ipalib/plugins/internal.py:258
+#: ipalib/plugins/internal.py:426
msgid "Service Settings"
msgstr "Configuración del servicio"
-#: ipalib/plugins/internal.py:260
+#: ipalib/plugins/internal.py:429
msgid "Provisioning"
msgstr "Aprovisionamiento"
-#: ipalib/plugins/internal.py:261
-msgid "Service"
-msgstr "Servicio"
-
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
-msgstr "Claves de Kerberos actuales, Servicio suministrado"
-
-#: ipalib/plugins/internal.py:267
+#: ipalib/plugins/internal.py:433
msgid "Are you sure you want to unprovision this service?"
msgstr "¿Está seguro de que desea no suministrar este servicio?"
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
-msgstr "Añadir comando Sudo"
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Claves de Kerberos actuales, Servicio suministrado"
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
-msgstr "Añadir Grupo de Comando Sudo"
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "Grupos"
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
msgid "Commands"
msgstr "Comandos"
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
-msgstr "Añadir regla Sudo"
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr "Permitir"
-#: ipalib/plugins/internal.py:287
-msgid "Access this host"
-msgstr "Acceder a este host"
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr "Cualquier comando"
-#: ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr "Cualquier grupo"
+
+#: ipalib/plugins/internal.py:450
msgid "Run Commands"
msgstr "Ejecutar comandos"
-#: ipalib/plugins/internal.py:291
-msgid "Any Command"
-msgstr "Cualquier comando"
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr "Negar"
-#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
-msgstr "Comandos especificados y grupos"
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr "Externos"
-#: ipalib/plugins/internal.py:293
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr "Acceder a este host"
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
msgid "As Whom"
msgstr "Como Whom"
-#: ipalib/plugins/internal.py:294
-msgid "Any Group"
-msgstr "Cualquier grupo"
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr "Comandos especificados y grupos"
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:459
msgid "Specified Groups"
msgstr "Grupos especificados"
-#: ipalib/plugins/internal.py:297
-msgid "External"
-msgstr "Externos"
-
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
-msgstr "Agregar usuario"
-
-#: ipalib/plugins/internal.py:301
+#: ipalib/plugins/internal.py:465
msgid "Account Settings"
msgstr "Configuración de la cuenta"
-#: ipalib/plugins/internal.py:302
+#: ipalib/plugins/internal.py:466
+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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
msgid "Contact Settings"
msgstr "Configuración de contactos"
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr "Dirección de correo"
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
-#: ipalib/plugins/internal.py:304
+#: ipalib/plugins/internal.py:473
msgid "Employee Information"
msgstr "Información del Empleado"
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
-msgstr "Información diversa"
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr "Error al cambiar el estado de cuenta"
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
-msgstr "Haga clic para desactivar"
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr "Dirección de correo"
-#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
-msgstr "Haga clic para activar"
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr "Información diversa"
-#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
-msgstr "Error al cambiar el estado de cuenta"
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
-#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr "Restablecer contraseña"
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
-#: ipalib/plugins/internal.py:312
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
msgid "New Password"
msgstr "Nueva Contraseña"
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
-msgstr "Repita la contraseña"
-
-#: ipalib/plugins/internal.py:314
+#: ipalib/plugins/internal.py:484
msgid "Password change complete"
msgstr "Cambiar la contraseña completa"
-#: ipalib/plugins/internal.py:315
+#: ipalib/plugins/internal.py:485
msgid "Passwords must match"
msgstr "Las contraseñas deben coincidir"
-#: ipalib/plugins/internal.py:319
-msgid "Add"
-msgstr "Agregar"
-
-#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
-msgstr "Agregar y agregar otro"
-
-#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr "Agregar y Editar"
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
-msgstr "Añadir y cerrar"
-
-#: ipalib/plugins/internal.py:323
-msgid "Add Many"
-msgstr "Añadir Muchos"
-
-#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr "Volver a la lista"
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ipalib/plugins/internal.py:326
-msgid "Close"
-msgstr "Cerrar"
-
-#: ipalib/plugins/internal.py:327
-msgid "Enroll"
-msgstr "Registro"
-
-#: ipalib/plugins/internal.py:328
-msgid "Find"
-msgstr "Buscar"
-
-#: ipalib/plugins/internal.py:329
-msgid "Get"
-msgstr "Obtener"
-
-#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr "Tema"
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
-msgstr "Aceptar"
-
-#: ipalib/plugins/internal.py:332
-msgid "Reset"
-msgstr "Resetear"
-
-#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr "Eliminar"
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr "Restaurar"
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr "Reintentar"
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr "Revocar"
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
-msgstr "Actualizar"
-
-#: ipalib/plugins/internal.py:338
-msgid "View"
-msgstr "Ver"
-
-#: ipalib/plugins/internal.py:341
-msgid "Available"
-msgstr "Disponible"
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr "Restablecer contraseña"
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
msgstr ""
-"Esta página tiene cambios sin guardar. Por favor, guardar o deshacer."
-
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
-msgstr "Sucio"
-
-#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
-msgstr "Ocultar ya inscrito."
-
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
-msgstr "Seleccione ${entity} para ser eliminado."
-
-#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
-msgstr "Retirar ${entity}.."
-
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
-msgstr "Prospectivo"
-
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
-msgstr "Administrado por"
-#: ipalib/plugins/internal.py:351
-msgid "Member"
-msgstr "Miembro"
-
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
-msgstr "Miembro indirecto"
-
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
-msgstr "Miembro de"
-
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
-msgstr "Miembro indirecto de"
-
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
-msgstr "Configuración"
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr "¿Está seguro que desea eliminar las entradas seleccionadas?"
-#: ipalib/plugins/internal.py:358
-msgid "Search"
-msgstr "Búsqueda"
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
-#: ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:492
msgid "Quick Links"
msgstr "Enlaces rápidos"
-#: ipalib/plugins/internal.py:363
+#: ipalib/plugins/internal.py:493
msgid "Select All"
-msgstr "Seleccionar todo"
+msgstr " Seleccionar todo"
-#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
-msgstr "Anular selección"
-
-#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
-msgstr "¿Está seguro que desea eliminar las entradas seleccionadas?"
-
-#: ipalib/plugins/internal.py:366
+#: ipalib/plugins/internal.py:494
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
-msgstr ""
-"La solicitud devolvió más resultados que el límite de tamaño "
-"configurado. Mostrando los primeros resultados ${counter}."
-
-#: ipalib/plugins/internal.py:370
-msgid "General"
-msgstr "General"
-
-#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
-msgstr "Configuración de identidad"
-
-#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
-msgstr "Configuraciones de ${entity} ${primary_key}"
+msgstr "La solicitud devolvió más resultados que el límite de tamaño configurado. Mostrando los primeros resultados ${counter}."
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
-msgstr "Volver al comienzo"
-
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
-msgstr "Política"
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr "Anular selección"
-#: ipalib/plugins/internal.py:378
+#: ipalib/plugins/internal.py:498
msgid "Audit"
msgstr "Auditoría"
-#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
-msgstr "Servidor IPA"
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr "Montaje automático"
-#: ipalib/plugins/internal.py:380
-msgid "Sudo"
-msgstr "Sudo"
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
-#: ipalib/plugins/internal.py:381
+#: ipalib/plugins/internal.py:501
msgid "Host Based Access Control"
msgstr "Control de Acceso basado en Host"
-#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
-msgstr "Control de acceso basado en rol"
-
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
-msgstr "Montaje automático"
-
-#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
-msgstr "Añadir ${other_entity} a ${entity} ${primary_key}"
-
-#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
-msgstr "${other_entity} inscrita en ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr "Servidor IPA"
-#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
-msgstr "${entity} ${primary_key} está incrita en la siguiente ${other_entity}"
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr "Política"
-#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
-msgstr "Retirar ${other_entity} de ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr "Control de acceso basado en rol"
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
-msgstr "El texto no coincide con el patrón de campo"
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr "Sudo"
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:508
+msgid "True"
msgstr ""
-"Su tiquetes de Kerberos ya no es válido. Por favor, ejecute kinit y, a "
-"continuación haga clic en 'Reintentar'. Si es la primera vez que ejecuta "
-"la IPA de interfaz de usuario Web "
-"<ahref='/ipa/config/unauthorized.html'>siga estas instrucciones</a> para "
-"configurar su navegador."
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
-msgstr "Dictado de los mensajes regionales"
-
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:510
+msgid "Next"
msgstr ""
-"\n"
-"Complemento de segundo plano de kerberos\n"
-"\n"
-"Envuele el kerberos de python y los vínculos de python-krbV\n"
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:511
+msgid "Page"
msgstr ""
-"\n"
-" Complemento de segundo plano de Kerberos.\n"
-"\n"
-" Abarca los vínculos de `krbV` (y, eventualmente, ajustará el vínculo de `kerberos`). Es importante destacar que este complemento tiene valores de\n"
-" codificación y decodificación de Unicode correctos\n"
-" de valores de salida y entrada de los enlaces."
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
msgstr ""
-"\n"
-" Vuelva a colocar la ``krbV.CCache`` para la cache de credenciales predeterminada.\n"
-" "
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:513
+msgid "undo"
msgstr ""
-"\n"
-" Vuelva a colocar el ``krb5.Principal``para la cache de credenciales predeterminada."
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
msgstr ""
-"\n"
-" Vuelva a colocar el ``krbV.CCache`` para la credencial de ccache``ccname``.\n"
-" "
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
-msgstr ""
-"\n"
-" Vuelva a colocar el ``krb5.Principal`` para la \n"
-"\n"
-" credencial de ccache ``ccname``.\n"
-" "
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr "El texto no coincide con el patrón de campo"
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
msgstr ""
-"\n"
-" Vuelva a colocar el nombre de archivo por defecto ccache. \n"
-"\n"
-" Esto devolverá algo así como '/tmp/krb5cc_500'. \n"
-"\n"
-" No puede devolver algo significativo si se utiliza en el servidor \n"
-" cuando se procesa una solicitud."
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
msgstr ""
-"\n"
-" Vuelva a colocar el nombre principal en la cache de credenciales predeterminada. \n"
-"\n"
-" Devolverá algo así como 'admin@EXAMPLE.COM'. Si no existe cache\n"
-" de credenciales para el usuario que llama, devuelve None.\n"
-"\n"
-" No puede devolver algo significativo si se utiliza en el servidor\n"
-" cuando se procesa una solicitud.\n"
-" "
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
msgstr ""
-"\n"
-" Devuelva el ámbito de la cache de credenciales predeterminada. \n"
-"\n"
-" Devolverá algo así como 'EXAMPLE.COM'. Si no existe cache de\n"
-" credenciales para el usuario que llama, devuelve None.\n"
-"\n"
-" No puede volver nada significativo si se utiliza \n"
-" en el servidor cuando se procesa una solicitud.\n"
-" "
-#: ipalib/plugins/kerberos.py:103
-msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
msgstr ""
-"\n"
-" Volver al principal del archivo de cache en ``ccname ``.\n"
-"\n"
-" Devolverá algo así como 'admin@EXAMPLE.COM'."
-#: ipalib/plugins/kerberos.py:111
-msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
-msgstr ""
-"\n"
-" Devolver el reino a partir del archivo de cache en ``ccname``. \n"
-"\n"
-" Devolverá algo así como 'EXAMPLE.COM.\n"
-" "
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr "Dictado de los mensajes regionales"
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -5655,73 +5226,49 @@ msgid ""
"\n"
" Modify per-user policy for user 'admin':\n"
" ipa krbtpolicy-mod admin --maxlife=3600\n"
-msgstr ""
+msgstr "\nFunciones \n\nUn rol se utiliza para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción \nde nivel superior tales como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n\nLos privilegios son asignados a roles.\n\nLos usuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n\nLos Roles no pueden contener otros roles.\n\nEJEMPLOS:\n\nAñadir un nuevo rol: \n ipa role-add --desc=\"Junior-level admin\" junioradmin\n ipa role-add-privilege --privileges=change_password junioradmin\n ipa role-add-privilege=add_user_to_default_group\njunioradmin\n\nAgregar un grupo de usuarios a este rol:\n ipa group-add --desc=\"User admins\" useradmins \n ipa role-add-member --groups=useradmins junioradmin \n\nMostrar información sobre el rol:\n ipa role-show junioradmin\n\nEl resultado de esto es que cualquier usuario en el grupo 'useradmins' puede agregar usuarios, restablecer contraseñas o añadir un usuario al grupo de usuarios predeterminado de la IPA.\n"
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-"\n"
-" Objeto de política de vale de kerberos"
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
-msgstr "Política de tiquete de Kerberos"
+msgstr " Política de tiquete de Kerberos"
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr "Nombre de usuario"
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr "Administra política de ticket para un usuario específico"
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr "Vida máxima"
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr "Duración máxima del ticket (en segundos)"
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr "Renovación máxima"
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr "Duración máxima renovable (en segundos)"
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
-"\n"
-" Modificar la política de vale de Kerberos."
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-"\n"
-" Mostrar el vale actual de política de Kerberos "
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-"\n"
-" Restablecer la directiva de vale de Kerberos a los valores predeterminados."
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -5762,221 +5309,227 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
-msgstr ""
-"El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo"
-" manualmente."
+msgstr "El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo manualmente."
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
+msgstr "Falló al intenatar agregar al usuario al grupo predeterminado. Utilice 'ipa group-add-member' para agregarlo manualmente. "
+
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
msgstr ""
-"Falló al intenatar agregar al usuario al grupo predeterminado. Utilice 'ipa "
-"group-add-member' para agregarlo manualmente. "
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-"\n"
-" Convertir los nombres de usuario en los atributos de miembros para trabajar en IPA."
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
-msgstr "URI LDAP no válida."
+msgstr " URI LDAP no válida."
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-"\n"
-" Migración de usuarios y grupos de DS para la IPA."
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr "LDAP URI del servidor DS desde donde realizar la migración"
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr "asociar contraseña"
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr "Asociar DN"
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr "Contenedor de usuario"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr "RDN de contenedor para los usuarios en DS"
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr "Contenedor de grupoi"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr "RDN del contenedor para grups en DS"
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr "Clase de objeto de usuario"
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
-msgstr ""
-"Lista separada por comas de clases de objetos utilizados para buscar las "
-"entradas de usuario en DS"
+msgstr "Lista separada por comas de clases de objetos utilizados para buscar las entradas de usuario en DS"
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr "Clase de objeto de grupo"
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr "Lista separada por comas de clases de objetos utilizados para la búsqueda de entradas de grupo en DS"
+
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
msgstr ""
-"Lista separada por comas de clases de objetos utilizados para la búsqueda "
-"de entradas de grupo en DS"
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr "Esquema LDAP"
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
+msgstr "El esquema utilizado en el servidor LDAP. Los valores admitidos son RFC2307 y RFC2307bis. El valor predeterminado es RFC2307bis"
+
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
msgstr ""
-"El esquema utilizado en el servidor LDAP. Los valores admitidos son RFC2307 "
-"y RFC2307bis. El valor predeterminado es RFC2307bis"
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
-msgstr ""
-"Modo de funcionamiento continuo. Se reportan errores, pero el proceso "
-"continúa"
+msgstr "Modo de funcionamiento continuo. Se reportan errores, pero el proceso continúa"
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr "Lista de objetos migrados; clasificados por tipo."
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo."
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr "\"False\", si el modo de migración fue inhabilitado."
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr "lista de %s separada por comas a ser excluida de la migración"
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
"migration process might be incomplete\n"
-msgstr ""
-"los resultados de la búsqueda de los objetos que se van a migrar se han "
-"truncado por el servidor; el proceso de migración puede estar incompleto\n"
+msgstr "los resultados de la búsqueda de los objetos que se van a migrar se han truncado por el servidor; el proceso de migración puede estar incompleto\n"
-#: ipalib/plugins/migration.py:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
-msgstr ""
-"El modo de migración se encuentra inhabilitado. Utilice 'ipa config-mod' "
-"para habilitarlo."
+msgstr "El modo de migración se encuentra inhabilitado. Utilice 'ipa config-mod' para habilitarlo."
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
"with clear text passwords. All migrated users need to\n"
"login at https://your.domain/ipa/migration/ before they\n"
"can use their Kerberos accounts."
-msgstr ""
-"Las contraseñas han sido migradas en formato pre-hashed.\n"
-"IPA es incapaz de generar claves de Kerberos a menos que le sean\n"
-"provistas contraseñas de texto claras. Todos los usuarios migrados\n"
-"necesitan registrarse en https://your.domain/ipa/migration/ antes de\n"
-"poder utilizar sus respectivas cuentas Kerberos."
+msgstr "Las contraseñas han sido migradas en formato pre-hashed.\nIPA es incapaz de generar claves de Kerberos a menos que le sean\nprovistas contraseñas de texto claras. Todos los usuarios migrados\nnecesitan registrarse en https://your.domain/ipa/migration/ antes de\npoder utilizar sus respectivas cuentas Kerberos."
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-"\n"
-" Llamar a get_options de baseclass y añadir opciones de \"exclude\"\n"
-" para cada tipo de objeto que se está migrando."
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-"\n"
-" Convertir todos los valores de opciones \"exclude\" a minúsculas. \n"
-" Además, la lista de parámetros vacía se convierte en None, pero al complemento de migración no le \n"
-" gusta - convertir de nuevo a listas vacías."
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-"\n"
-" Migrar objetos de DS para LDAP."
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr "No se encuentra contenedor para %(container)s "
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
-msgstr ""
-"\n"
-"Misc plug-ins\n"
+msgstr "\nMisc plug-ins\n"
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
-msgstr "Mostrar variables del entorno"
+msgid "Show environment variables."
+msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d variables"
#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
msgid ""
"retrieve and print all attributes from the server. Affects command output."
-msgstr ""
+msgstr " Determinar si la ACI es un autoservicio de ACI y hacer una excepción si\n no lo es.\n Devolver el resultado si se trata de un autoservicio de ACI."
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
@@ -5987,10 +5540,11 @@ msgid "Number of variables returned (<= total)"
msgstr "Cantidad de variables devueltas (<= total)"
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
-msgstr "Mostrar todos los complementos cargados"
+msgid "Show all loaded plugins."
+msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d complemento cargado"
@@ -6000,7 +5554,7 @@ msgstr[1] "%(count)d complementos cargados"
msgid "Number of plugins loaded"
msgstr "Cantidad de complementos cargados"
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -6024,142 +5578,106 @@ msgid ""
"\n"
" Delete a netgroup:\n"
" ipa netgroup-del admins\n"
-msgstr ""
-"\n"
-"Grupos de Red\n"
-"Un grupo de red es un grupo usado para comprobación de permisos. Puede contener valores tanto del usuario como del host.\n"
-"EJEMPLOS:\n"
-"\n"
-" Añadir un nuevo grupo de red:\n"
-" ipa netgroup-add --desc=\"NFS admins\" admins\n"
-"\n"
-" Añadir miembros al grupo de red:\n"
-" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
-"\n"
-" Eliminar miembro del grupo de red:\n"
-" ipa netgroup-remove-member --users=tuser2 admins\n"
-"\n"
-" Mostrar información sobre el grupo de red:\n"
-" ipa netgroup-show admins\n"
-"\n"
-" Borrar un grupo de red:\n"
-" ipa netgroup-del admins\n"
+msgstr "\nGrupos de Red\nUn grupo de red es un grupo usado para comprobación de permisos. Puede contener valores tanto del usuario como del host.\nEJEMPLOS:\n\n Añadir un nuevo grupo de red:\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Añadir miembros al grupo de red:\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Eliminar miembro del grupo de red:\n ipa netgroup-remove-member --users=tuser2 admins\n\n Mostrar información sobre el grupo de red:\n ipa netgroup-show admins\n\n Borrar un grupo de red:\n ipa netgroup-del admins\n"
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr "Miembro del equipo anfitrión"
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-"\n"
-" objeto netgroup."
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr "Grupos de red"
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr "Nombre de grupo de red"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr "Descripción del grupo de red"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr "Nombre del dominio NIS"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr "ID unico de IPA"
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-"\n"
-" Añadir un nuevo grupo de red."
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr "\"%(value)s\"netgroup añadido"
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-"\n"
-" Eliminar un netgroup"
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr "%(value)s\" de netgroup eliminados"
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-"\n"
-" Modificar un grupo de red."
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr "netgroup modificado \"%(value)s\""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-"\n"
-" Buscar un netgroup."
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] "%(count)d autoservicio coincidente"
msgstr[1] "%(count)d autoservicios coincidentes"
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-"\n"
-" Mostrar información sobre un grupo de red."
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-"\n"
-" Agregar miembros a un grupo de red."
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-"\n"
-" Eliminar miembros de un grupo de red."
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -6178,61 +5696,18 @@ msgid ""
"\n"
" To change another user's password:\n"
" ipa passwd tuser1\n"
-msgstr ""
-"\n"
-"Establecer contraseña de un usuario\n"
-"\n"
-"Si alguien que no sea un usuario cambia la contraseña del usuario (por ejemplo, Servicio de Ayuda la restablece), entonces la contraseña tendrá que ser cambiada la primera vez que se utiliza. Esto es para que el usuario final sea el único que conoce la contraseña.\n"
-"La directiva de contraseñas IPA controla la frecuencia de cambio de una contraseña, los requisitos de fortaleza y longitud del historial de contraseñas.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-"Para restablecer su contraseña:\n"
-" ipa passwd\n"
-"\n"
-" Para cambiar la contraseña de otro usuario:\n"
-" ipa passwd tuser1\n"
+msgstr "\nEstablecer contraseña de un usuario\n\nSi alguien que no sea un usuario cambia la contraseña del usuario (por ejemplo, Servicio de Ayuda la restablece), entonces la contraseña tendrá que ser cambiada la primera vez que se utiliza. Esto es para que el usuario final sea el único que conoce la contraseña.\nLa directiva de contraseñas IPA controla la frecuencia de cambio de una contraseña, los requisitos de fortaleza y longitud del historial de contraseñas. EJEMPLOS:\nPara restablecer su contraseña:\n ipa passwd tuser1\n\n Para cambiar la contraseña de otro usuario:\n ipa passwd tuser1\n"
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
+#: ipalib/plugins/passwd.py:64
+msgid "Set a user's password."
msgstr ""
-"\n"
-" Establecer una contraseña de usuario"
-#: ipalib/plugins/passwd.py:64
+#: ipalib/plugins/passwd.py:88
+#, python-format
msgid "Changed password for \"%(value)s\""
msgstr "Cambio de contraseña para \"%(value)s\""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
-msgstr ""
-"\n"
-" Ejecutar la operación de passwd. \n"
-"\n"
-" El DN no debe ser pasado como un argumento de palabra clave, ya que es construido\n"
-" por este método.\n"
-"\n"
-" Devuelve la entrada\n"
-"\n"
-" :param principal: El nombre del registro o principal del usuario\n"
-" :param password: La nueva contraseña\n"
-" "
-
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -6286,208 +5761,103 @@ msgid ""
"\n"
" Add a permission that grants the ability to manage group membership:\n"
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
-msgstr ""
-"\n"
-"Permisos\n"
-"\n"
-"Un permiso permite delegación de grano fino de derechos. Un permiso es una regla de control de acceso 389-ds o de instrucción (ACI).\n"
-"\n"
-"Un permiso otorga el derecho de realizar tareas tales como añadir un usuario, modificar un grupo, etc.\n"
-"Un permiso no puede contener otros permisos.\n"
-"Un permiso otorga acceso de lectura, escritura, agregar o borrar.\n"
-"Un privilegio combina permisos similares (por ejemplo, todos los permisos \n"
-" necesarios para agregar un usuario).\n"
-"Un rol otorga un set de privilegios para usuarios, grupos, hosts o hostgroups.\n"
-"Un permiso está compuesto de varias partes:\n"
-"\n"
-"1. El nombre del permiso.\n"
-"2. El destino del permiso.\n"
-"3. Los derechos otorgados por permiso.\n"
-"\n"
-"Los derechos definen las operaciones permitidas y pueden ser una o más de las siguientes.\n"
-"\n"
-"1. write - escribir uno o más atributos\n"
-"2. read - leer uno o más atributos\n"
-"3. add - agregar una nueva entrada al árbol\n"
-"4. delete - borrar una entrada existente\n"
-"5. all- todos los permisos son otorgados\n"
-"\n"
-"El permiso de lectura se otorga a la mayoría de los atributos y entradas. Los permisos son independientes, por lo tanto, poder agregar un usuario no significa que el usuario sea editable.\n"
-"Hay un número de destinos permitidos:\n"
-"1. type: un tipo de objeto (usuario, grupo, etc).\n"
-"2. memberof: un miembro de grupo o hostgroup\n"
-"3. filter: un filtro de LDAP \n"
-"4. subtree: un filtro LDAP que especifica parte del LDAP DIT. Es un\n"
-" super-set del \"type\" target.\n"
-"5. targetgroup: otorga acceso para modificar un grupo específico (tal como otorgar\n"
-" los derechos para administrar la membresía de grupo)\n"
-"EJEMPLOS:\n"
-"Añadir un permiso que otogue la creación de usuarios:\n"
-"\n"
-" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
-"Añadir un permiso que otorgue la capacidad de administrar una membresía de grupo:\n"
-"\n"
-" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group \n"
-"Members\"\n"
+msgstr "\nPermisos\n\nUn permiso permite delegación de grano fino de derechos. Un permiso es una regla de control de acceso 389-ds o de instrucción (ACI).\n\nUn permiso otorga el derecho de realizar tareas tales como añadir un usuario, modificar un grupo, etc.\nUn permiso no puede contener otros permisos.\nUn permiso otorga acceso de lectura, escritura, agregar o borrar.\nUn privilegio combina permisos similares (por ejemplo, todos los permisos \n necesarios para agregar un usuario).\nUn rol otorga un set de privilegios para usuarios, grupos, hosts o hostgroups.\nUn permiso está compuesto de varias partes:\n\n1. El nombre del permiso.\n2. El destino del permiso.\n3. Los derechos otorgados por permiso.\n\nLos derechos definen las operaciones permitidas y pueden ser una o más de las siguientes.\n\n1. write - escribir uno o más atributos\n2. read - leer uno o más atributos\n3. add - agregar una nueva entrada al árbol\n4. delete - borrar una entrada existente\n5. all- todos los permisos son otorgados\n\nEl permiso de lectura se otorga a la mayoría de los atributos y entradas. Los permisos son independientes, por lo tanto, poder agregar un usuario no significa que el usuario sea editable.\nHay un número de destinos permitidos:\n1. type: un tipo de objeto (usuario, grupo, etc).\n2. memberof: un miembro de grupo o hostgroup\n3. filter: un filtro de LDAP \n4. subtree: un filtro LDAP que especifica parte del LDAP DIT. Es un\n super-set del \"type\" target.\n5. targetgroup: otorga acceso para modificar un grupo específico (tal como otorgar\n los derechos para administrar la membresía de grupo)\nEJEMPLOS:\nAñadir un permiso que otogue la creación de usuarios:\n\n ipa permission-add --type=user --permissions=add \"Add Users\"\nAñadir un permiso que otorgue la capacidad de administrar una membresía de grupo:\n\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group \nMembers\"\n"
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr "Tipo de permiso"
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-"\n"
-" Objeto de permiso"
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr "Nombre de permiso"
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
-msgstr ""
-"Lista de permisos que otorgan (leer, escribir, añadir, borrar, todos)"
+msgstr "Lista de permisos que otorgan (leer, escribir, añadir, borrar, todos)"
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
-msgstr ""
-"Tipo de objeto del IPA (usuario, host, hostgroup, servicio, netgroup, dns)"
+msgstr "Tipo de objeto del IPA (usuario, host, hostgroup, servicio, netgroup, dns)"
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr "Miembro del grupo"
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr "Objetivo para los miembros de un grupo"
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr "Subárbol para aplicar permisos"
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr "Grupo de usuario para aplicar permisos"
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-"\n"
-" Añadir un nuevo permiso"
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr "Permiso agregado \"%(value)s\""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-"\n"
-" Borrar un permiso"
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr "Permiso borrado \"%(value)s\""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-"\n"
-" Modificar un permiso"
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr "Modificado el permiso \"%(value)s\""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-"\n"
-" Búsqueda de permisos"
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] "%(count)d permiso coincidente"
msgstr[1] " %(count)d permisos coincidentes"
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
-msgstr ""
-"\n"
-" Mostrar información sobre un permiso"
-
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-"\n"
-" Añadir miembros a un permiso"
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-"\n"
-" Remover miembros de un permiso"
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
-msgstr ""
-"\n"
-"Contacte con ping al servidor remoto de la IPA\n"
+msgstr "\n\\n\n Contacte con ping al servidor remoto de la API\n"
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-"\n"
-" Contacte con ping a un servidor remoto\n"
-" "
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-"\n"
-" Una posible mejora sería la de tener un argumento y hacerle eco, \n"
-"\n"
-" aunque un valor fijo funciona por ahora.\n"
-" "
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -6507,57 +5877,21 @@ msgid ""
"For more information on anonymous pkinit see:\n"
"\n"
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-msgstr ""
-"\n"
-"Opciones de kerberos pkinit\n"
-"Activan o desactivan pkinit anónimo mediante el principal\n"
-"WELLKNOWN/ANONYMOUS@REALM. El servidor debe haber sido instalado con soporte pkinit.\n"
-"EJEMPLOS:\n"
-"Activar pkinit anónimo\n"
-" ipa pkinit-anonymous enable\n"
-"Desactivar pkinit anónimo:\n"
-" ipa pkinit-anonymous disable\n"
-"Para obtener mayor información sobre pkinit anónimo, por favor consulte: \n"
-"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-"\n"
+msgstr "\nOpciones de kerberos pkinit\nActivan o desactivan pkinit anónimo mediante el principal\nWELLKNOWN/ANONYMOUS@REALM. El servidor debe haber sido instalado con soporte pkinit.\nEJEMPLOS:\nActivar pkinit anónimo\n ipa pkinit-anonymous enable\nDesactivar pkinit anónimo:\n ipa pkinit-anonymous disable\nPara obtener mayor información sobre pkinit anónimo, por favor consulte: \nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n\n"
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
-"\n"
-" Por ahora solo comprobar que está correctamente codificado en base 64."
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
-msgstr "PKINIT"
-
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-"\n"
-" Establecer los atributos individuales de algunos \n"
-" valores de un certificado. \n"
-" entry_attrs es un dict de una entrada no \n"
-" retorna nada"
+msgstr " Los certificados de entrada deben estar codificados en DER. \n Tenga en cuenta que no puede ser un normalizador en la Param, ya que solamente las variables de \n Unicode se normalizan.\n "
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-"\n"
-" Determinar si el archivo tiene permisos de \n"
-" escritura. Si el archivo no existe, abra el archivo \n"
-" para probar capacidad de escritura."
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -6578,155 +5912,95 @@ msgid ""
"A privilege may not contain other privileges.\n"
"\n"
"See role and permission for additional information.\n"
+msgstr "\nPrivilegios\nUn privilegio combina permisos dentro de una tarea lógica. Un permiso proporciona\nlos derechos para realizar una tarea específica.\nPor ejemplo, añadir un usuario requiere los siguientes permisos:\nCrear una nueva entradasd de usuario\nRestablecer una contraseña de usuario\nAñadir el nuevo usuario al grupo de usuario predeterminado de IPA\nCombinar estos tres niveles inferiores dentro de una tarea de nivel superior en forma de un privilegio \ndenominado \"Add User\" facilita el manejo de roles.\n\nUn privilegio no puede contener otros privilegios.\n\nVer el rol y el permiso para información adicional. \n\n \n\n\n"
+
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
msgstr ""
-"\n"
-"Privilegios\n"
-"Un privilegio combina permisos dentro de una tarea lógica. Un permiso proporciona\n"
-"los derechos para realizar una tarea específica.\n"
-"Por ejemplo, añadir un usuario requiere los siguientes permisos:\n"
-"* Crear una nueva entradasd de usuario\n"
-"* Restablecer una contraseña de usuario\n"
-"* Añadir el nuevo usuario al grupo de usuario predeterminado de IPA\n"
-"\n"
-"Combinar estos tres niveles inferiores dentro de una tarea de nivel superior en forma de un privilegio \n"
-"denominado \"Add User\" facilita el manejo de roles.\n"
-"\n"
-"Un privilegio no puede contener otros privilegios.\n"
-"\n"
-"Ver el rol y el permiso para información adicional. \n"
-"\n"
-" \n"
-"\n"
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
-"\n"
-" Comprobar si el certificado se escribe en un archivo y hacerlo."
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
+msgstr " Objeto de servicio."
+
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
-msgstr ""
+msgstr " Añadir un nuevo servicio de la nueva IPA."
#: ipalib/plugins/privilege.py:77
msgid "Privilege description"
-msgstr ""
+msgstr " \n Eliminar un servicio de la IPA."
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-"\n"
-" Modificar un servicio de la IPA."
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr "Privilegio añadido \"%(value)s\""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-"\n"
-" Mostrar información sobre un servicio de la IPA."
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr "Privilegio eliminado \"%(value)s \""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-"\n"
-" Retirar hosts que pueden administrar este servicio."
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr "Privilegio modificado \"%(value)s \""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-"\n"
-" Servicio inhabilitado"
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] "%(count)d privilegio coincidente"
msgstr[1] "%(count)d privilegios coincidentes"
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Objeto de comando sudo"
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-"\n"
-" Comandos de sudo"
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-"\n"
-" Eliminar miembros de un privilegio"
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-"\n"
-" Añadir permisos a un privilegio."
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr "Número de permisos añadidos"
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-"\n"
-" Remover permisos de un privilegio"
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr "Número de permisos eliminados"
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -6769,217 +6043,146 @@ msgid ""
"\n"
" Modify a group password policy:\n"
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
-msgstr ""
-"\n"
-"Política de contraseñas\n"
-"\n"
-"Una contraseña establece límites en contraseñas de IPA, incluyendo máxima y mínima duración, el número de contraseñas a guardar en historial, el número de clases de caracteresrequeridos (para contraseñas ás fuertes)\n"
-"y el mínimo de longitud de una contraseña.\n"
-"\n"
-"Por defecto es una única política global para todos los usuarios. También puede crear una política de contraseña para aplicar a un grupo. Cada usuario está sujeto solamente a una política de contraseña, ya sea de grupo o global. Una política de grupo es autónoma; no es uper-set de la política global mas los parámetros personalizados.\n"
-"Cada política de contraseña requiere una configuración única . Si un usuario está en varios grupos que tienen políticas de contraseñas, esta prioridad determina qué política de contraseña aplica. Un valor inferior indica una política de prioridad superior.\n"
-"\n"
-"Las políticas de contraseña de grupo se eliminan automáticamente cuando se eliminan los grupos a los cuales están asociados.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Modificar la política global:\n"
-" ipa pwpolicy-mod --minlength=10\n"
-"\n"
-" Agregar una política de contraseña de nuevo grupo:\n"
-" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n"
-"\n"
-" Mostrar una política de contraseña global:\n"
-" ipa pwpolicy-show\n"
-"\n"
-" Mostrar una política de contraseña de grupo:\n"
-" ipa pwpolicy-show localadmins\n"
-"\n"
-" Mostrar la política que sería aplicada al usuario dado:\n"
-" ipa pwpolicy-show --user=tuser1\n"
-"\n"
-" Modificar una polítca de contraseña de grupo:\n"
-" ipa pwpolicy-mod --minclasses=2 localadmins\n"
-
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
-msgstr ""
-"\n"
-" Clase de servicio objeto que se utiliza para vincular las políticas con los grupos"
+msgstr "\nPolítica de contraseñas\n\nUna contraseña establece límites en contraseñas de IPA, incluyendo máxima y mínima duración, el número de contraseñas a guardar en historial, el número de clases de caracteresrequeridos (para contraseñas ás fuertes)\ny el mínimo de longitud de una contraseña.\n\nPor defecto es una única política global para todos los usuarios. También puede crear una política de contraseña para aplicar a un grupo. Cada usuario está sujeto solamente a una política de contraseña, ya sea de grupo o global. Una política de grupo es autónoma; no es uper-set de la política global mas los parámetros personalizados.\nCada política de contraseña requiere una configuración única . Si un usuario está en varios grupos que tienen políticas de contraseñas, esta prioridad determina qué política de contraseña aplica. Un valor inferior indica una política de prioridad superior.\n\nLas políticas de contraseña de grupo se eliminan automáticamente cuando se eliminan los grupos a los cuales están asociados.\n\nEJEMPLOS:\n\n Modificar la política global:\n ipa pwpolicy-mod --minlength=10\n\n Agregar una política de contraseña de nuevo grupo:\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Mostrar una política de contraseña global:\n ipa pwpolicy-show\n\n Mostrar una política de contraseña de grupo:\n ipa pwpolicy-show localadmins\n\n Mostrar la política que sería aplicada al usuario dado:\n ipa pwpolicy-show --user=tuser1\n\n Modificar una polítca de contraseña de grupo:\n ipa pwpolicy-mod --minclasses=2 localadmins\n"
-#: ipalib/plugins/pwpolicy.py:87
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+msgstr "la prioridad debe ser un valor único (%(prio)d que ya esté siendo utilizado por %(gname)s)"
+
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-"la prioridad debe ser un valor único (%(prio)d que ya esté siendo utilizado "
-"por %(gname)s)"
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-"\n"
-" Objeto de directiva de contraseña"
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr "Número máximo de fallas"
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr "Fallos consecutivos antes del bloqueo"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr "Falló reajuste de intervalo"
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
-msgstr ""
-"Período tras el cual se restablecerá (segundos) el conteo de errores"
+msgstr "Período tras el cual se restablecerá (segundos) el conteo de errores"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr "Duración de bloqueo"
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr "Período durante el cual se fuerza el bloqueo (segundos)"
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr "Grupo"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr "Administra la política de contraseña de un grupo específico"
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr "Vida máxima (días)"
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr "Vida máxima de la contraseña (días)"
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr "Vida mínima (horas)"
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr "Vida mínima de la contraseña (en horas)"
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr "Tamaño del historial"
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr "Tamaño del historial de la contraseña"
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr "Clases de caracteres"
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr "Cantidad mínima de clases de caracteres"
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr "Longitud mínima"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr "Longitud mínima de la contraseña"
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr "Prioridad"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
-msgstr ""
-"Prioridad de la política (a mayor número corresponde una política menor)"
+msgstr "Prioridad de la política (a mayor número corresponde una política menor)"
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-"\n"
-" Asegúrese de que la duración máxima sea mayor que la mínima. \n"
-" Si no hay duración mínimo establecida, entonces no devolverá un error."
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr "La duración máxima de la contraseña debe ser mayor que la mínima."
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
-"\n"
-" Agregar una directiva de contraseña de grupo."
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-"\n"
-" Eliminar una directiva de contraseñas de grupo."
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-"\n"
-" Modificar una directiva de contraseñas de grupo."
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "la prioridad no puede ser definida en una plítica global"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
msgstr ""
-"\n"
-" Mostrar información sobre la directiva de contraseñas."
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr "Usuario"
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr "Ofrece la política efectiva para un determinado usuario"
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-"\n"
-" Buscar políticas de contraseña de grupo."
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -7014,55 +6217,21 @@ msgid ""
"\n"
" The result of this is that any users in the group 'useradmins' can\n"
" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr "\nRoles\n\nUn rol sirve para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción de nivel superior tal como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n\nLos privilegios son asignados a los roles.\n\nUsuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n\nLos roles no pueden contener otros roles. \n\nEJEMPLOS: \n\nAñadir un nuevo rol: \n ipa role-add --desc=\"Junior-level dmin\"junioradmin \nAñadir algunos privilegios a este rol:\n ipa role-add-privilege --privileges=addusers junioradmin\n ipa role-add-privilege \n --privileges=change_password junioradmin\n ipa role-add-privilege--\n privileges=add_user_to_default_group juioradmin\n\nAñadir un grupo de usuarios a este rol:\n ipa group-add --desc=\"User admins\" \n useradmins⎠\n ipa role-add-member --groups=useradmins \n junioradmin\n\nMostrar información sobre el rol\n ipa role-show junioradmin\n\nEl resultado es que cualquier usuario en el grupo 'useradmins' puede añadir usuarios, establecer contraseñas y agregar un usuario al grupo de usuario de IPA predeterminado.\n\n"
+
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-"\n"
-"Roles\n"
-"\n"
-"Un rol sirve para la delegación de grano fino. Un permiso otorga la capacidad de realizar tareas de bajo nivel (añadir un usuario, modificar un grupo, etc.) Un privilegio combina uno o más permisos en una abstracción de nivel superior tal como useradmin. Un useradmin sería capaz de añadir, eliminar y modificar usuarios. \n"
-"\n"
-"Los privilegios son asignados a los roles.\n"
-"\n"
-"Usuarios, grupos, hosts y hostgroups pueden ser miembros de un Rol. \n"
-"\n"
-"Los roles no pueden contener otros roles. \n"
-"\n"
-"EJEMPLOS: \n"
-"\n"
-"Añadir un nuevo rol: \n"
-" ipa role-add --desc=\"Junior-level dmin\"junioradmin \n"
-"Añadir algunos privilegios a este rol:\n"
-" ipa role-add-privilege --privileges=addusers junioradmin\n"
-" ipa role-add-privilege \n"
-" --privileges=change_password junioradmin\n"
-" ipa role-add-privilege--\n"
-" privileges=add_user_to_default_group juioradmin\n"
-"\n"
-"Añadir un grupo de usuarios a este rol:\n"
-" ipa group-add --desc=\"User admins\" \n"
-" useradmins⎠\n"
-" ipa role-add-member --groups=useradmins \n"
-" junioradmin\n"
-"\n"
-"Mostrar información sobre el rol\n"
-" ipa role-show junioradmin\n"
-"\n"
-"El resultado es que cualquier usuario en el grupo 'useradmins' puede añadir usuarios, establecer contraseñas y agregar un usuario al grupo de usuario de IPA predeterminado.\n"
-"\n"
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:67
+msgid "roles"
msgstr ""
-"\n"
-" Objeto de rol."
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr "Rol"
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr "Nombre de rol"
@@ -7071,113 +6240,72 @@ msgid "A description of this role-group"
msgstr "Una descripción de este grupo de roles"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-"\n"
-" Añadir un nuevo rol."
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr "Rol agregado \"%(value)s\""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-"\n"
-" Eliminar un rol."
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr "Rol eliminado \"%(value)s\""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-"\n"
-" Modificar un rol."
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr "Rol modificado \"%(value)s\""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-"\n"
-" Búsqueda de papeles."
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] "%(count)d rol coincidente"
msgstr[1] "%(count)d roles coincidentes"
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-"\n"
-" Mostrar información sobre un rol."
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-"\n"
-" Añadir miembros a un rol."
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-"\n"
-" Eliminar miembros de un rol."
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-"\n"
-" Añadir privilegios a una función."
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr "Número de privilegios agregados"
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-"\n"
-" Quitar privilegios de una función."
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr "Número de privilegios eliminados"
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -7203,130 +6331,76 @@ msgid ""
"\n"
" Delete a rule:\n"
" ipa selfservice-del \"Users manage their own address\"\n"
-msgstr ""
-"\n"
-"Permisos de autoservicio\n"
-"\n"
-"Un permiso permite la delegación de grano fino de permisos. \n"
-"\n"
-"Las reglas o instrucciones (ACI), conceden el permiso para realizar tareas, tales como, agregar un usuario, modificar un grupo, etc. \n"
-"Un permiso de autoservicio define lo que un objeto puede cambiar en su propia entrada. \n"
-"\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-"Agregar una regla de auto-servicio para permitir a los usuarios administrar su dirección: \n"
-" ipa selfservice-add --permissions=write \n"
-"--attrs=street,postalCode,l,c,st \"Users manage their own address\n"
-"\n"
-"Al administrar la lista de atributos necesita incluir todos los atributos de la lista, incluyendo los ya existentes. Añadir telephoneNumber a la lista:\n"
-"\"Users manage their own address\"\n"
-"Mostrar una regla actualizada:\n"
-" ipa selfservice-show \"Users manage their own address\"\n"
-"\n"
-"Borrar una regla:\n"
-" ipa selfservice-del \"Users manage their own address\" \n"
+msgstr "\nPermisos de autoservicio\n\nUn permiso permite la delegación de grano fino de permisos. \n\nLas reglas o instrucciones (ACI), conceden el permiso para realizar tareas, tales como, agregar un usuario, modificar un grupo, etc. \nUn permiso de autoservicio define lo que un objeto puede cambiar en su propia entrada. \n\n\nEJEMPLOS:\n\nAgregar una regla de auto-servicio para permitir a los usuarios administrar su dirección: \n ipa selfservice-add --permissions=write \n--attrs=street,postalCode,l,c,st \"Users manage their own address\n\nAl administrar la lista de atributos necesita incluir todos los atributos de la lista, incluyendo los ya existentes. Añadir telephoneNumber a la lista:\n\"Users manage their own address\"\nMostrar una regla actualizada:\n ipa selfservice-show \"Users manage their own address\"\n\nBorrar una regla:\n ipa selfservice-del \"Users manage their own address\" \n"
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-"\n"
-" Determinar si la ACI es un autoservicio de ACI hacer una excepción si\n"
-" no lo es.\n"
-" Devolver el resultado si se trata de un autoservicio \n"
-" de ACI."
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr "No se encontró permiso de autoservicio ' %(permission)s' "
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
-"\n"
-" Objeto de Autoservicio."
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr "Permisos de autoservicio"
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
msgid "Self-service name"
msgstr "Auto-servicio de nombres"
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
msgstr ""
-"\n"
-" Añadir un nuevo permiso de autoservicio"
-#: ipalib/plugins/selfservice.py:118
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr "Añadido autoservicio \"%(value)s\""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
-"\n"
-" Eliminar un nuevo permiso de autoservicio"
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr "autoservicio eliminados \"%(value)s\""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-"\n"
-" Modificar un permiso de autoservicio"
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr "Autoservicio modificado \"%(value)s\""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-"\n"
-" Buscar permiso de autoservicio"
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] "%(count)d autoservicio coincidente"
msgstr[1] "%(count)d autoservicios coincidentes"
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-"\n"
-" Mostrar información sobre un permiso de autoservicio."
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -7377,190 +6451,84 @@ msgid ""
" Generate and retrieve a keytab for an IPA service:\n"
" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n"
"\n"
-msgstr ""
-"\n"
-"Servicios\n"
-"\n"
-"Un servicio IPA es un servicio que se ejecuta en un host. El servicio de registro IPA puede almacenar un principal de Kerberos, un certificado SSL, o ambos.\n"
-"\n"
-"Un servicio IPA puede ser adminstrado directamente desde una máquina, siempre y cuando las máquinas tengarn el permiso correcto. \n"
-"\n"
-"Esto es cierto incluso para máquinas diferentes con la que se asocia el servicio. Por ejemplo,\n"
-"solicitando un certificado SSL mediante las credenciales del principal de servicio de host necesita autenticarse con kinit como el host:\n"
-"# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
-"\n"
-"Añadir un servicio de IPA le permite al servicio solicitar un certificado o tabla de claves SSL, pero se realiza como un paso separado: no se produce como resultado de adicionar el servicio.\n"
-"\n"
-"Solamente el aspecto público de un certificado se almacena en un registro de servicio; la clave privada no se almacena.\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-"Añadir un nuevo servicio IPA:\n"
-" ipa service-add HTTP/web.example.com\n"
-"\n"
-"Permitir a un host administrar un certificado de servicio IPA:\n"
-" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
-" ipa role-add-member --hosts=web.example.com certadmin\n"
-"\n"
-"Borrar un servicio IPA:\n"
-" ipa service-del HTTP/web.example.com\n"
-"\n"
-"Buscar todos los servicios IPA asociados con el host:\n"
-" ipa service-find web.example.com\n"
-"\n"
-"Encontrar todos los servicio HTTP:\n"
-" ipa service-find HTTP\n"
-"\n"
-" Disable the service Kerberos key and SSL certificate:\n"
-" ipa service-disable HTTP/web.example.com\n"
-"\n"
-"Solicitar un certificado para un servicio IPA:\n"
-" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
-"\n"
-" Generar y recuperar una tabla de claves para un servicio IPA:\n"
-" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n"
-"\n"
+msgstr "\nServicios\n\nUn servicio IPA es un servicio que se ejecuta en un host. El servicio de registro IPA puede almacenar un principal de Kerberos, un certificado SSL, o ambos.\n\nUn servicio IPA puede ser adminstrado directamente desde una máquina, siempre y cuando las máquinas tengarn el permiso correcto. \n\nEsto es cierto incluso para máquinas diferentes con la que se asocia el servicio. Por ejemplo,\nsolicitando un certificado SSL mediante las credenciales del principal de servicio de host necesita autenticarse con kinit como el host:\n# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nAñadir un servicio de IPA le permite al servicio solicitar un certificado o tabla de claves SSL, pero se realiza como un paso separado: no se produce como resultado de adicionar el servicio.\n\nSolamente el aspecto público de un certificado se almacena en un registro de servicio; la clave privada no se almacena.\n\nEJEMPLOS:\n\nAñadir un nuevo servicio IPA:\n ipa service-add HTTP/web.example.com\n\nPermitir a un host administrar un certificado de servicio IPA:\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n ipa role-add-member --hosts=web.example.com certadmin\n\nBorrar un servicio IPA:\n ipa service-del HTTP/web.example.com\n\nBuscar todos los servicios IPA asociados con el host:\n ipa service-find web.example.com\n\nEncontrar todos los servicio HTTP:\n ipa service-find HTTP\n\n Disable the service Kerberos key and SSL certificate:\n ipa service-disable HTTP/web.example.com\n\nSolicitar un certificado para un servicio IPA:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Generar y recuperar una tabla de claves para un servicio IPA:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n"
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
-msgstr ""
-"\n"
-" Por ahora solo comprobar si está correctamente \n"
-" codificado en base 64."
-
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-"\n"
-" Establecer los atributos individuales de algunos \n"
-" valores de un certificado. \n"
-" entry_attrs es un dict de una entrada no retorna\n"
-" nada"
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-"\n"
-" Objeto de servicio."
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
-msgstr "Servicio principal"
+msgstr " Búsqueda de servicios IPA"
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-"\n"
-" Añadir un servicio de la nueva IPA."
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr "Ha sido agregado el servicio \"%(value)s\""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS"
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-"\n"
-" Eliminar un servicio de la IPA."
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr "Ha sido eliminado el servicio \"%(value)s\""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
-"\n"
-" Modificar un servicio de la IPA."
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr "Ha sido modificado el servicio \"%(value)s\""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
-"\n"
-" Buscar servicios de la IPA."
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d servicio coincidente"
msgstr[1] "%(count)d servicios coincidentes\t\t\t"
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-"\n"
-" Mostrar información sobre un servicio de la IPA."
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-"\n"
-" Añadir hosts que puedan administrar este servicio."
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-"\n"
-" Retirar los hosts que puedan administrar este\n"
-" servicio."
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-"\n"
-" Desactivar el certificado SSL y Kerberos clave de un \n"
-" servicio."
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr "Servicio inhabilitado \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -7575,253 +6543,180 @@ msgid ""
" Remove a command\n"
" ipa sudocmd-del /usr/bin/less\n"
"\n"
+msgstr "\nComandos de Sudo\n\nComandos usados como partes integrantes de sudo\n\nEJEMPLOS:\n\n Crear un comando nuevo\n ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n\n Eliminar un comando\n ipa sudocmd-del /usr/bin/less\n\n"
+
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
msgstr ""
-"\n"
-"Comandos de Sudo\n"
-"\n"
-"Comandos usados como partes integrantes de sudo\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Crear un comando nuevo\n"
-" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
-"\n"
-" Eliminar un comando\n"
-" ipa sudocmd-del /usr/bin/less\n"
-"\n"
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-"\n"
-" Objeto de comandos sudo."
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr "Comandos de sudo"
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr "Comando sudo "
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr "Una descripción de este comando "
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
-"\n"
-" Crear nuevo comando sudo."
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
-msgstr "\"%(value)s\" de comando sudo agregado "
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
+msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-"\n"
-" Eliminar comando sudo."
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
-msgstr "\"%(value)s\" de comando sudo suprimido"
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-"\n"
-" Modificar comando."
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
-msgstr "\" %(value)s \" de comando sudo modificado "
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-"\n"
-" Buscar comandos."
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
-msgstr[0] "%(count)d de comando sudo coincidente"
-msgstr[1] "%(count)d de comando sudo coincidentes"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
+msgstr[0] ""
+msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-"\n"
-" Mostrar comando sudo."
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-"\n"
-"Grupos de comandos sudo\n"
-"\n"
-"Administrar grupos de comandos sudo. \n"
-"\n"
-"EJEMPLOS: \n"
-"\n"
-"Agregar un nuevo grupo comando sudo: \n"
-" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
-"\n"
-"Eliminar un grupo comando sudo:\n"
-" ipa sudocmdgroup-del admincmds\n"
-" \n"
-"Administrar membresía de grupo de sudo, comandos: \n"
-" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
-"\n"
-"Administrar membresía de grupo de sudo,comandos: \n"
-" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
-"\n"
-"Mostrar un grupo de comando de sudo:\n"
-" ipa group-show localadmins\n"
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
msgstr ""
-"\n"
-" Objeto de grupo sudo"
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr "Grupo de comando sudo"
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
-"\n"
-" Crear nuevo grupo de comando sudo"
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
-msgstr "\"%(value)s\" de comando sudo agregado"
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
+msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-"\n"
-" Borrar grupo de comando sudo."
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
-msgstr "\"%(value)s\" de comando sudo suprimido"
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-"\n"
-" Modificar grupo."
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
-msgstr "\"%(value)s\" de grupo de comando sudo modificado"
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-"\n"
-" Buscar grupos de comando sudo."
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
-msgstr[0] "%(count)d grupo comando sudo coincidente"
-msgstr[1] "%(count)d grupos de comando sudo coincidentes"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
+msgstr[0] ""
+msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-"\n"
-" Mostrar grupo de comandos de sudo."
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-"\n"
-" Añadir miembros a grupo de comandos de sudo."
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-"\n"
-" Eliminar miembros de grupo comandos de sudo."
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -7830,278 +6725,243 @@ msgid ""
"\n"
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-"\n"
-"Sudo (su \"do\") permite al administrador del sistema delegar autoridad a\n"
-"algunos usuarios (o grupos de usuarios) para que ejecuten algunos (o todos)\n"
-"los comandos como root u otro usuario mientras proporcionan una auditoría de los\n"
-"comandos y sus argumentos.\n"
-"\n"
-"FreeIPA proporciona una binddn designada para usar con Sudo localizado en:\n"
-"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
-"\n"
-"Para permitir ejecutar binddn se debe ejecutar el siguiente comando para establecer la contraseña:\n"
-"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
-"\n"
-"Para obterner mayor información, consulte la documentación FreeIPA para Sudo.\n"
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
msgstr ""
-"\n"
-" Gestión de Reglas de Sudo"
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr "Regla Sudo"
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr "Categoría de comandos"
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr "Categoría de comandos la regla se aplica a"
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
-msgstr "Ejecutar como categoría de usuarios"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
+msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
-msgstr "Ejecutar como categoría de usuario se aplica la regla a"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
+msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
-msgstr "Ejecutar como Categoría de grupo"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
+msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
-msgstr "Ejecutar como categoría de Grupo de la regla se aplica a"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
+msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr "Comandos Allow de sudo"
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr "Comandos Deny de sudo"
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
-msgstr "Ejecutar como usuario"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
+msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
-msgstr "Ejecutar como Grupo"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
+msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr "De usuarios externos"
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
-msgstr "De usuarios externos se aplica la regla a"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
+msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr "RunAs de usuarios externos"
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
-msgstr "Usuario externo los comandos se pueden ejecutar como"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
+msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr "Grupo externo RunAs"
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
-msgstr "Grupo externo los comandos se pueden ejecutar como"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
+msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
+msgstr "Opción de sudo"
+
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-"\n"
-" Crear nueva regla de Sudo."
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
-msgstr "\"%(value)s\" de regla de sudo agregado"
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
+msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-"\n"
-" Eliminar regla de Sudo."
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-"\n"
-" Modificar regla de Sudo."
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-"\n"
-" Buscar regla de Sudo."
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-"\n"
-" Mostrar Regla Sudo.\n"
-" "
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-"\n"
-" Habilitar una regla de Sudo."
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-"\n"
-" Desactivar una regla Sudo."
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-"\n"
-" Añadir comandos y grupos de comandos de sudo afectados por sudo."
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-"\n"
-" Eliminar comandos y grupos de comando sudo afectados por sudo."
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-"\n"
-" Añadir usuarios y grupos afectados por sudo."
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-"\n"
-" Eliminar usuarios y grupos afectados por sudo."
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-"\n"
-" Añadir anfitriones y grupos de host afectados por sudo."
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-"\n"
-" Eliminar hosts y grupos de hosts afectador por regla de sudo."
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-"\n"
-" Añadir usuario para que se ejecute como sudo"
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-"\n"
-" Eliminar usuario para que se ejecute como sudo."
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-"\n"
-" Añadir grupo para que se ejecute como sudo."
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-"\n"
-" Eliminar grupo para que se ejecute como sudo."
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-"\n"
-" Añadir opción a la regla de sudo."
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
-msgstr "Opción de sudo"
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
msgstr ""
-"\n"
-" Eliminar una opción de la regla de sudo."
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -8140,297 +7000,215 @@ msgid ""
"\n"
" Delete a user:\n"
" ipa user-del tuser1\n"
+msgstr "\n\\n\nUsuarios\\n\n\\n\nAdministrar entradas de usuarios. Todos los usuarios son usuarios de POSIX.\\n\n\\n\nIPA soporta un amplio rango de formatos de nombre de usuario, pero usted necesita estar pendiente de las\\n\nrestricciones que se aplican a su entorno. Por ejemplo,\\n\nlos nombres de usuario que comienzan por un dígito o nombres de usuarios que exceden en longitud\\n\npueden ocasionar problemas a algunos sistemas UNIX.\\n\nUse 'ipa config-mod' para cambiar el formato de nombre de usuario permitido por herramientas de IPA.\\n\n\\n\nAl inhabilitar una cuenta de usuario evita que el usuario obtenga nuevas credenciales de Kerberos.\\n\nNo invalida ninguna credencial que ya haya sido\\n\nexpedida.\\n\n\\n\nEl manejo de contraseña no es una parte de este módulo. Para obtener mayor información sobre este tópico\\n\npor favor, consulte: ipa help passwd\\n\n\\n\nEJEMPLOS:\\n\n\\n\n Añada un nuevo usuario:\\n\n ipa user-add --first=Tim --last=User --password tuser1\\n\n\\n\n Busque todos los usuarios cuyas entradas incluyan la cadena \\\"Tim\\\":\\n\n ipa user-find Tim\\n\n\\n\n Busque todos los usuarios con \\\"Tim\\\" como nombre:\\n\n ipa user-find --first=Tim\\n\n\\n\n Inhabilite una cuenta de usuario:\\n\n ipa user-disable tuser1\\n\n\\n\n Habilite una cuenta de usuario:\\n\n ipa user-enable tuser1\\n\n\\n\n Borre un usuario:\\n\n ipa user-del tuser1\\n\n"
+
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
msgstr ""
-"\n"
-"Usuarios\n"
-"\n"
-"Administrar entradas de usuarios. Todos los usuarios son usuarios de POSIX.\n"
-"\n"
-"IPA soporta un amplio rango de formatos de nombre de usuario, pero usted necesita estar pendiente de las\n"
-"restricciones que se aplican a su entorno. Por ejemplo,\n"
-"los nombres de usuario que comienzan por un dígito o nombres de usuarios que exceden en longitud\n"
-"pueden ocasionar problemas a algunos sistemas UNIX.\n"
-"Use 'ipa config-mod' para cambiar el formato de nombre de usuario permitido por herramientas de IPA.\n"
-"\n"
-"Al inhabilitar una cuenta de usuario evita que el usuario obtenga nuevas credenciales de Kerberos.\n"
-"No invalida ninguna credencial que ya haya sido\n"
-"expedida.\n"
-"\n"
-"El manejo de contraseña no es una parte de este módulo. Para obtener mayor información sobre este tópico\n"
-"por favor, consulte: ipa help passwd\n"
-"\n"
-"EJEMPLOS:\n"
-"\n"
-" Añada un nuevo usuario:\n"
-" ipa user-add --first=Tim --last=User --password tuser1\n"
-"\n"
-" Busque todos los usuarios cuyas entradas incluyan la cadena \"Tim\":\n"
-" ipa user-find Tim\n"
-"\n"
-" Busque todos los usuarios con \"Tim\" como nombre:\n"
-" ipa user-find --first=Tim\n"
-"\n"
-" Inhabilite una cuenta de usuario:\n"
-" ipa user-disable tuser1\n"
-"\n"
-" Habilite una cuenta de usuario:\n"
-" ipa user-enable tuser1\n"
-"\n"
-" Borre un usuario:\n"
-" ipa user-del tuser1\n"
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:140
+msgid "user"
msgstr ""
-"\n"
-" Objeto de usuario."
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:141
+msgid "users"
+msgstr ""
+
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr "Ingreso de usuario"
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr "Nombre"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr "Apellido"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr "Nombre y apellidos"
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr "Mostrar nombre"
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr "Iniciales"
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr "Directorio principal"
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr "Campo GECOS"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr "Shell de ingreso"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr "Principal kerberos"
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr "Dirección de correo electrónico"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr "Solicita establecer la contraseña de usuario"
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
-msgstr ""
-"Número de ID de usuario (el sistema le asignará uno si no se indica ninguno)"
+msgstr "Número de ID de usuario (el sistema le asignará uno si no se indica ninguno)"
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr "Número de Identificación de Grupo"
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr "Dirección postal"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr "Ciudad"
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr "Estado / Provincia"
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr "Zona "
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr "Número de teléfono"
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr "Número de teléfono celular"
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr "Número de página"
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr "Número de fx"
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr "Unidad. org"
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr "Cargo"
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr "Manager"
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr "Licencia de conducción"
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr "Cuenta inhabilitada "
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-"\n"
-" Dado un id de usuario verifica la existencia de dicho usuario y devuelve el dn.\n"
-" "
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr "Administrador %(manager)s no encontrado"
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-"\n"
-" Convertir un dn de administrador en userid \n"
-" "
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-"\n"
-" Añadir un nuevo usuario"
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "Ha sido agregado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr "No crear grupo privado de usuario"
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr "puede ser a lo sumo%(len)d caracteres"
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-"\n"
-" Eliminar usuario."
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "Ha sido eliminado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-"\n"
-" Modificar un usuario."
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "Ha sido modificado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-"\n"
-" Buscar usuarios."
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr "Self"
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr "Muestra el registro del usuario para el principal de Kerberos actual"
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "%(count)d usuario coincidente"
msgstr[1] "%(count)d usuarios coincidentes"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-"\n"
-" Mostrar información sobre un usuario."
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-"\n"
-" Inhabilitar una cuenta de usuario."
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
-msgstr "\"%(value)s\" de cuenta de usuario desactivada"
+msgstr " \"%(value)s\" de cuenta de usuario desactivada"
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-"\n"
-" Habilitar una cuenta de usuario."
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
-msgstr "\"%(value)s\" de cuenta de usuario activada"
+msgstr " \"%(value)s\" de cuenta de usuario activada"
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -8438,550 +7216,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
+" an administrator."
msgstr ""
-"\n"
-" Desbloquear una cuenta de usuario\n"
-"\n"
-" Una cuenta puede ser bloqueada si se ingresa la contraseña incorrecta demasiadas\n"
-" veces en un período de tiempo específico según lo controlado por la directiva de contraseñas.\n"
-" Una cuenta bloqueada es una condición temporal y puede ser desbloqueada\n"
-" por un administrador.\n"
-" "
-#: ipalib/plugins/user.py:538
+#: ipalib/plugins/user.py:611
+#, python-format
msgid "Unlocked account \"%(value)s\""
msgstr "Cuenta desbloqueada \" %(value)s \""
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-"\n"
-"Base de clases para los complementos backend no LDAP.\n"
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-"\n"
-" Un comando que no utiliza el backend LDAP, pero que quiere utilizar el sistema de control de acceso \n"
-" LDAP para tomar decisiones de autorización. \n"
-" La operación variable de clase es el atributo commonName de \n"
-"la\n"
-" entrada con la que se prueba.\n"
-" De antemano, es necesario crear una entrada de la forma: \n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"Ejemplo.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" \n"
-" "
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-"\n"
-" Realizar una consulta LDAP para determinar la autorización. \n"
-" Esto debe ser ejecutado antes de que el trabajo real se realice."
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-"\n"
-"Complemento de cliente XML-RPC.\n"
-
-#: ipalib/cli.py:581
+#: ipalib/util.py:192
#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Ingrese %(label)s nuevamente para verificar: "
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "¡Las contraseñas no coinciden!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "Cancelado."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr "Nombre del comando"
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr "No existe el fichero para leer"
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-"el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "error %(code)d desconocido de %(server)s: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "ha ocurrido un error interno"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "ha ocurrido un error interno en el servidor en %(server)r"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "comando desconocido %(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "error en el servidor %(server)r: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "no es posible conectar con %(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Petición JSON-RPC no válida: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-"error de clasificación para el transporte de datos XML-RPC: %(error)s "
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Error de kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr "no se ha recibido ninguna credencial de Kerberos"
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-"El servicio %(service)r no se ha encontrado en la base de datos Kerberos"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "No se han encontrado credenciales de cache"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "El ticket ha expirado"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr "Los permisos de credenciales de caché son incorrectos"
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr "Las credenciales de caché están mal formadas"
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr "No es posible resolver KDC para el reinado solicitado"
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Acceso insuficiente: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "el comando %(name)r no tiene argumentos"
-
-#: ipalib/errors.py:661
-#, 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] "el comando %(name)r lleva al menos %(count)d argumento"
-msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos"
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "superponiendo argumentos y opciones: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r es necesario"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r inválido: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api no posee tal nombre de espacio: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "Las contraseñas no coinciden"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "El comando no se ha implementado"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-"El cliente no está configurado. Ejecutar ipa-client-install."
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "Esta entrada ya existe"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
-msgstr "Debe registrar el equipo para poder generar un servicio de host"
+msgid "Permission denied: %(file)s"
+msgstr "Permiso denegado:%(file)s "
-#: ipalib/errors.py:858
-#, python-format
+#: ipalib/util.py:220
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-"El servicio principal no tiene la forma de servicio/nombre de equipo "
-"totalmente calificado: %(reason)s"
-#: ipalib/errors.py:874
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-"El reinado para el principal no coincide con el reinado para este servidor "
-"IPA"
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "Este comando necesita acceso de usuario root"
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "Este ya es un grupo posix"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r"
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr "Esta entrada ya está habilitada"
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr "Esta entrada ya está desactivada"
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr "Esta entrada no puede ser activada o desactivada"
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr "Esta entrada no es miembro"
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "Un grupo no puede ser miembro de sí mismo"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr "Esta entrada ya es un miembro"
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Falló la decodificación base64: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "Un grupo no puede ser agregado como miembro de sí mismo"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "El grupo de usuarios predeterminado no puede ser eliminado"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr "El equipo no posee un registro DNS A con el que se corresponda "
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-"No se permite eliminar un grupo administrado. Primero debe ser desasociado. "
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
-msgstr "Un grupo administrado no puede tener una política de contraseñas."
-
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
-msgstr "'%(entry)s' no tiene certificado"
-
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-"No se puede crear un grupo privado. Un grupo de '%(group)s' ya existe."
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-"Se encontró un problema al verificar si todos los miembros eran %(verb)s: "
-"%(exc)s"
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "no existe un comando para el tópico de ayuda %(topic)r"
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "la modificación choca con otra modificación diferente"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "no existen modificaciones a ser realizadas"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr "%(desc)s: %(info)s"
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "han sido excedidos los límites para esta consulta"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr "modificar la clave principal no está permitido"
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr "%(attr)s : Solamente un valor permitido."
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr "%(attr)s: sintaxis inválida."
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr "%(info)s de filtro de búsqueda errado"
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "La operación certificada no puede ser completada: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Error de certificado de formato: %(error)s "
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr "Ya está registrado"
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr "Aún no está registrado"
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-"Los resultados se encuentran truncados, intente realizar una búsqueda más "
-"específica"
-#: ipalib/frontend.py:850
-msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-"Recuperar e imprimir todos los atributos del servidor. Afecta a la salida "
-"del comando."
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
+#: ipalib/util.py:273
+msgid ""
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-"Imprimir entradas como almacenadas en el servidor. Solamente afecta formato "
-"de salida."
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr "Reenvía al servidor en lugar de ejecutarse localmente"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "Un diccionario representando una entrada LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "Una lista de entradas LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Todos los comandos deberían por lo menos tener un resultado"
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "tipo incorrecto"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "Sólo se permite un valor"
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "debe ser True o False"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "debe ser un entero"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "debe ser como mínimo %(minvalue)d"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "puede ser como máximo %(maxvalue)d"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "debe ser un número decimal"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "debe ser como mínimo %(minvalue)f"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "puede ser como máximo %(maxvalue)f"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "debe coincidir con el modelo \"%(pattern)s"
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "debe ser un dato binario"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "debe ser como mínimo de %(minlength)d bytes"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "puede ser a lo sumo de %(maxlength)d bytes"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "debe ser exactamente de %(length)d bytes"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "debe ser texto Unicode"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "debe tener como mínimo %(minlength)d caracteres"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "puede tener a lo sumo %(maxlength)d caracteres"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "debe tener exactamente %(length)d caracteres"
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr "El carácter '%(char)r' no está permitido."
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "debe ser uno de %(values)r"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr "Permiso denegado: %(file)s "
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr "Emisor \"%(issuer)s\" no coincide con el emisor esperado "
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "No es posible comunicarse con CMS (%s)"
@@ -9002,14 +7291,17 @@ msgstr "Plataforma de hardware del equipo (p. ej. Lenovo T61)"
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. Fedora 9)"
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
-"El asunto solicitado \"%(request_subject)s\" no coincide con la forma "
-"\"%(subject_base)s\""
+msgstr "El asunto solicitado \"%(request_subject)s\" no coincide con la forma \"%(subject_base)s\""
#: ipaserver/plugins/selfsign.py:104
#, python-format
@@ -9028,558 +7320,546 @@ msgstr "no es posible obtener el próximo número de serie"
msgid "certutil failure"
msgstr "falla de Certutil"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
-msgstr "no se puede abrir archivo de configuración %s\n"
+msgstr "no se puede abrir archivo de configuración %s\\n\n"
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
-msgstr "no puede stat() del archivo de configuración %s\n"
+msgstr "no puede stat () del archivo de configuración%s\n"
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr "sin Memoria\n"
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr "Error de lectura\n"
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr "Inicio de contexto de kerberos falló\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr "¿Ningún sistema enctypes preferido?\n"
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
-msgstr ""
-"¡Memoria insuficiente!\n"
-"\n"
+msgstr "¡Memoria insuficiente!\n\n"
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr "¡Memoria insuficiente!\n"
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
-msgstr "Advertencia no se reconoce el tipo de cifrado: [%s]\n"
+msgstr "Advertencia no se reconoce el tipo de cifrado: [%s\n"
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr "Advertencia no se reconoce el tipo salt: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr "¡Falló comparación de Enctype!\n"
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr "Falló la creación de clave aleatoria\n"
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr "¡Falló la creación de clave!\n"
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr "¡Memoria insuficiente!\n"
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
-msgstr "¡Tipo (%d) salt no compatible o dañado!\n"
+msgstr "¡Tipo (%d)salt no compatible o dañado!\n"
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr "No hay claves aceptadas por KDC\n"
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr "¡Memoria insuficiente!\n"
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr "¡Memoria insuficiente!\n"
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr "¡Falló crear control!\n"
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
-msgstr "¡No puede iniciar biblioteca LDAP!\n"
+msgstr "¡No puede iniciar biblioteca IDAP!\n"
+
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
-msgstr "¡No puede establecer opciones LDAP!\n"
+msgstr "¡No puede establecer opciones IDAP!\n"
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr "¡Falló vinculación sencilla!\n"
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr "¡Falló vinculación SASL!\n"
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr "¡Falló operación! %s\n"
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr "¡Falta control de respuesta!\n"
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr "Falló ber_init(), ¿control inválido?\n"
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr "ber_scanf () falló, ¿control no válido?\n"
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr "Nueva contraseña principal"
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr "Verificar contraseña principal"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr "Imprimir lo mínimo posible"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr "Solamente salida sobre errores"
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr "Contactar este servidor KDC específico"
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr "Nombre de servidor"
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
-msgstr ""
-"La principal para obtener una tabla de claves para (ex: "
-"ftp/ftp.example.com@EXAMPLE.COM)"
+msgstr "La principal para obtener una tabla de claves para (ex: ftp/ftp.example.com@EXAMPLE.COM)"
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr "Nombre principal del servicio de kerberos"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr "Archivo para almacenar la información de tabla de claves"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr "Nombre de archivo de tabla de claves"
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr "Solicitud de tipos de cifrado"
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr "Lista de tipos de cifrado separados por coma"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr "Mostrar la lista de los tipos cifrados permitidos y salir"
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr "Tipos de cifrado permitidos"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr "Pregunta por una contraseña no aleatoria para la principal"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr "LDAP DN"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr "DN a vincular como si no usara kerberos"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr "Contraseña LDAP"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr "Contraseña a usar si no usa kerberos"
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Inicio de contexto de kerberos falló\n"
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr "Tipos de cifrado suportado\n"
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
-msgstr "Advertencia: Tipo para convertir falló (#%d)\n"
+msgstr "Advertencia: Tipo para convertir falló (#%d)âŽ\n"
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr "Vincular contraseña requerida mediante un enlace DN.\n"
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
-msgstr ""
-"Advertencia: tipos salt no se aceptan con contraseñas aleatorias (ver opt. "
-"-P)\n"
+msgstr "Advertencia: tipos salt no se aceptan con contraseñas aleatorias (ver opt.\n"
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Nombre de servicio principal inválido\n"
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
-msgstr ""
-"No se encontró la cache de credencial kerberos. ¿Tiene un tiquete de "
-"kerberos?\n"
+msgstr "No se encontró la cache de credencial kerberos. ¿Tiene un tiquete de kerberos?\n"
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
-msgstr ""
-"No se encontró usuario principal de kerberos. ¿Tiene una cache de "
-"credencial válida?\n"
+msgstr "No se encontró usuario principal de kerberos. ¿Tiene una cache de credencial válida?\n"
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr "Fallo abrir clave de tablas.\n"
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr "Error al crear el material de clave\n"
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr "No se pudo agregar clave de la tabla de claves\n"
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr "No se pudo cerrar la tabla de claves\n"
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
-msgstr "Tabla de claves recuperada y almacenada correctamente en: %s\n"
+msgstr "Tabla de claves recuperada y almacenada correctamente en:%s\n"
#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
-msgstr "No tiene permiso para vincular este equipo al dominio de la IPA.\n"
+msgstr "No tiene permiso para vincular este equipo al dominio de la API.\n"
#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
-msgstr "No escribir permisos en archivo de tabla de claves '%s'\n"
+msgstr "No escribir permisos en archivo de tabla de claves'%s\n"
#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
-msgstr "access() en %s ha fallado: errno = %d\n"
+msgstr "acceso () en %s ha fallado: errno =%d\n"
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr "¡Memoria insuficiente!"
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
-msgstr "No se puede iniciar con servidor LDAP: %s"
+msgstr "No se puede iniciar con servidor IDAP:%s"
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr "No se puede habilitar SSL en LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr "No se puede establecer la versión de LDAP\n"
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
-msgstr "Falló enlace: %s\n"
+msgstr "Falló enlace:%s\n"
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr "Búsqueda %s en rootdse con error %d"
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr "No hay valores para %s"
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr "Búsqueda de ipaCertificateSubjectBase falló con error %d"
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
-msgstr "No se puede determinar DN de root de %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
+msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
-msgstr "No se puede determinar asunto del certificado de %s\n"
+msgid "IPA namingContext not found\n"
+msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
-msgstr "No se puede establecer una conexión LDAP para %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgstr "Búsqueda de ipaCertificateSubjectBase falló con error %d"
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
-msgstr "Búsqueda con %s en %s\n"
+msgid "Unable to determine root DN of %s\n"
+msgstr "No se puede determinar DN de root de%s\n"
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
-msgstr "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
+msgstr "Contraseña incorrecta.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
-msgstr "No se puede encontrar '%s' de host\n"
+msgid "Unable to determine certificate subject of %s\n"
+msgstr "No se puede determinar asunto del certificado de%s\n"
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
-msgstr "No se puede obtener binddn para '%s' de host\n"
+msgid "Enrollment failed. %s\n"
+msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
-msgstr "Host ya tiene principal, tratando de vincular de todas maneras\n"
+msgid "principal not found in XML-RPC response\n"
+msgstr "principales no se encuentran en respuesta XML-RPC\n"
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr "Host ya está vinculado\n"
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr "Contraseña incorrecta.\n"
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr "principales no se encuentran en la entrada de host\n"
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr "principales no se encuentran en respuesta XML-RPC\n"
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
-msgstr "No se puede determinar servidor de la IPA de %s\n"
+msgstr "No se puede determinar servidor de la IPA de%s\n"
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
-msgstr "El nombre de host debe ser totalmente calificado: %s\n"
+msgstr "El nombre de host debe ser totalmente calificado:%s\n"
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
-msgstr ""
-"No se puede unir host: la inicialización de contexto de Kerberos falló\n"
+msgstr "No se puede unir host: la inicialización de contexto de Kerberos falló\n"
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
-msgstr "Error al resolver tabla de claves: %s.\n"
+msgstr "Error al resolver tabla de claves:%s.\n"
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
-msgstr "Error al obtener el dominio predeterminado Kerberos: %s.\n"
+msgstr "Error al obtener el dominio predeterminado Kerberos:%s.\n"
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
-msgstr "Error al analizar \"%s\": %s.\n"
+msgstr "Error al analizar \"%s\":%s.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
-msgstr "Error al obtener credenciales de iniciales: %s.\n"
+msgstr "Error al obtener credenciales de iniciales:%s.\n"
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "No se puede generar la cache de credenciales de Kerberos\n"
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
-msgstr "Error de almacenamiento de credenciales en cache de credenciales: %s.\n"
+msgstr "Error de almacenamiento de credenciales en cache de credenciales:%s.\n"
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr "Cancelación de registro exitoso.\n"
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr "Cancelación falló.\n"
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr "resultado no se encuentra en respuesta XML-RPC\n"
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
-msgstr ""
-"No se puede unir host: cache de credenciales de Kerberos no se encuentra\n"
+msgstr "No se puede unir host: cache de credenciales de Kerberos no se encuentra\n"
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
-msgstr ""
-"No se puede unir host: principal de usuario no se encuentra y contraseña "
-"de host no se proporciona.\n"
+msgstr "No se puede unir host: principal de usuario no se encuentra y contraseña de host no se proporciona.\n"
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
-msgstr "fork() falló\n"
+msgstr "bifurcación () falló\n"
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr "ipa-getkeytab no se encuentra\n"
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr "¿Tiene ipa-getkeytab permisos errados?\n"
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr "la ejecución de ipa-getkeytab falló, errno %d\n"
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr "hijo terminó con %d\n"
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
-msgstr "Asunto de certificado es: %s\n"
+msgstr "Asunto de certificado es:%s\n"
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr "Imprimir la salida cruda de XML-RPC en modo de GSSAPI"
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr "Modo silencioso. Sólo se muestran los errores."
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr "Cancelar registro de host de servidor IPA"
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr "Nombre de host de este servidor"
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr "nombre de host"
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr "Servidor de IPA a utilizar"
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr "Especifica dónde almacenar la información de tabla de claves."
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr "nombre de archivo"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr "contraseña de LDAP (si no usa Kerberos)"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr "contraseña"
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -9659,7 +7939,7 @@ msgstr "Nombre de reino "
#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
msgid "Failed to open keytab '%s': %s\n"
-msgstr "Falló al abrir de tabla de claves '%s': %s'\n"
+msgstr "Falló al abrir de tabla de claves '%s':%s'\n"
#: ipa-client/ipa-rmkeytab.c:253
#, c-format
diff --git a/install/po/fa.po b/install/po/fa.po
index ae6d6795f..bc5642b47 100644
--- a/install/po/fa.po
+++ b/install/po/fa.po
@@ -2,160 +2,510 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
-"Language-Team: Persian (http://www.transifex.net/projects/p/fedora/team/fa/)\n"
+"Language-Team: Persian (http://www.transifex.net/projects/p/fedora/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +535,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +544,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +563,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,221 +571,437 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -537,673 +1089,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1265,155 +1724,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1426,189 +1836,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1616,40 +2008,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1663,129 +2067,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1798,6 +2179,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1807,11 +2196,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1837,7 +2229,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1866,357 +2258,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2253,183 +2852,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2472,145 +3016,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2632,7 +3153,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2640,7 +3161,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2649,7 +3170,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2660,262 +3181,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2940,82 +3409,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3042,92 +3505,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3183,217 +3797,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3425,1016 +4023,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4474,63 +5210,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4571,130 +5291,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4703,46 +5488,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4760,10 +5522,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4772,7 +5535,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4798,104 +5561,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4916,33 +5678,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -4998,135 +5743,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5148,32 +5858,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5196,18 +5893,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5216,94 +5918,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5348,164 +6023,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5542,18 +6197,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5562,94 +6218,71 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5677,88 +6310,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5811,117 +6429,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5938,187 +6520,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6128,223 +6699,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6385,234 +6974,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6620,504 +7187,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
-msgstr ""
-
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
-msgstr ""
-
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7138,6 +7262,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7162,283 +7291,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7458,248 +7601,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7790,5 +7921,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/fr.po b/install/po/fr.po
index 37eeb0776..a76a1b5cf 100644
--- a/install/po/fr.po
+++ b/install/po/fr.po
@@ -2,14 +2,17 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Automatically generated, 2010.
+# Jérôme Fenal <jfenal@gmail.com>, 2011, 2012.
+# <jfenal@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
-"Last-Translator: jdennis <jdennis@redhat.com>\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-20 13:00+0000\n"
+"Last-Translator: Jérôme Fenal <jfenal@gmail.com>\n"
"Language-Team: French <trans-fr@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,441 +20,994 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Entrer à nouveau %(label)s pour validation : "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Les mots de passe ne correspondent pas !"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Annulé."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr "Objectif : %s"
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr "Utilisation : ipa [options-globales] COMMAND ..."
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr "Commandes intégrées :"
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr "Sous-thèmes de l'aide :"
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr "Thèmes de l'aide :"
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr "Utiliser `ipa --help` pour obtenir la liste des options globales."
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr "Commandes du thème :"
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr "Nom de commande"
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr "Pas de fichier à lire"
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "Version de client %(cver)s incompatible avec la version %(sver)s du serveur %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "Code erreur inconnu %(code)d renvoyé par %(server)s: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "une erreur interne est survenue"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "une erreur interne est survenue sur le serveur %(server)r"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "commande inconnue %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "erreur sur le serveur %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "impossible de se connecter à %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Requête JSON-RPC invalide : %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr "erreur au triage des données du transport XML-RPC : %(error)s"
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Erreur Kerberos : %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "n'ai pas reçu les crédits Kerberos"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Service %(service)r introuvable dans la base Kerberos"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "Cache de crédits introuvable"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Ticket expiré"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "Permissions du cache de crédit incorrectes"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "Mauvais format de cache de crédit"
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Impossible de trouver le KDC pour le domaine demandé"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Accès insuffisant : %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "la commande %(name)r ne prend aucun argument"
+
+#: ipalib/errors.py:664
+#, 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] "la commande %(name)r prend au plus %(count)d argument"
+msgstr[1] "la commande %(name)r prend au plus %(count)d arguments"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "arguments et options se chevauchant : %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r est requis"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r invalide : %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "l'API n'a pas d'espace de nom : %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Les mots de passe ne correspondent pas"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Commande non développée"
+
+#: ipalib/errors.py:785
+msgid "Client is not configured. Run ipa-client-install."
+msgstr "Le client n'est pas configuré. Lancer la commande ipa-client-install."
+
+#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147
+#: ipalib/errors.py:1462 ipalib/errors.py:1479
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Cette entrée existe déjà"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Vous devez enregistrer un système afin de créer un service"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
-msgstr ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "Le principal de service n'est pas de la forme : service/fully-qualified host name: %(reason)s"
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
-msgstr ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "Le domaine du principal ne correspond pas au domaine de ce serveur IPA"
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
-msgstr ""
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Cette commande requiert des droits root"
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
-msgstr ""
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "Ce groupe est déjà de type POSIX"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Le principal n'est pas de la forme user@REALM: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr "Cette entrée est déjà activée"
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr "Cette entrée est déjà désactivée"
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr "Cette entrée ne peut être activée ou désactivée"
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr "Cette entrée n'est pas un membre"
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Un groupe ne peut être membre de lui-même"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr "Cette entrée est déjà membre"
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Échec de décodage base64 : %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "Un groupe ne peut être ajouté comme membre de lui-même"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "Le groupe par défaut ne peut être supprimé"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr "Un système doit avoir un enregistrement DNS A correspondant"
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "La suppression d'un groupe géré est interdite. Il doit d'abord être détaché."
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr "Un groupe géré ne peut avoir de politique de mot de passe."
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr "'%(entry)s' ne possède pas de certificat."
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr "Impossible de créer un groupe privé. Un groupe '%(group)s' existe déjà."
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
-msgstr ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr "Un problème est survenu lors de la vérification que tous les membres étaient des %(verb)s: %(exc)s"
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr "%(attr)s ne contient pas '%(value)s'"
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
-msgstr ""
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr "Le critère de recherche n'est pas suffisamment spécifique. Une valeur attendue, mais %(found)d trouvées."
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "pas de commande ou de sujet d'aide pour %(topic)r"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "la modification a subit un collision avec une autre"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "pas de modification à effectuer"
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s : %(info)s"
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "limites dépassées pour cette requête"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr "la modification de clé primaire n'est pas autorisée"
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "%(attr)s : une seule valeur autorisée."
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr "%(attr)s : syntaxe invalide."
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr "Filtre de recherche invalide %(info)s"
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "L'opération sur le certification ne peut être effectuée : %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Erreur de format de certificate : %(error)s"
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr "Déjà enregistré"
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr "Pas encore enregistré"
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "Résultats tronqués, essayer un recherche plus spécifique"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
-msgstr ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr "Récupérer et imprimer tous les attributs du serveur. Affecte la sortie standard de la commande."
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "Imprimer les entrées telles que stockées sur le serveur. Affecte uniquement le format de sortie."
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr "Version du client. Utilisée pour déterminer si le serveur acceptera la requête."
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr "Transférer au serveur au lieu d'exécuter localement"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Un dictionnaire représente une entrée LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Une liste d'entrées LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Toutes les commandes doivent avoir au moins un résultat"
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "type incorrect"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "Une seule valeur est autorisée"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "doit être True ou False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "doit être un nombre entier"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "doit être supérieur ou égal à %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "doit être inférieur ou égal à %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "doit être un nombre décimal"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "doit être supérieur ou égal à %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "doit être inférieur ou égal à %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "doit correspondre au motif \"%(pattern)s\""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "doit être des données binaires"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "doit être d'au moins %(minlength)d octets"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "peut être d'au plus %(maxlength)d octets"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "doit être d'exactement %(length)d octets"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "doit être du texte Unicode"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr "Les espaces de début et de fin ne sont pas autorisés"
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "doit être d'au moins %(minlength)d caractères"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "peut être d'au plus %(maxlength)d caractères"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "doit être d'exactement %(length)d caractères"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr "Le caractère '%(char)r' n'est pas autorisé."
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "doit être l'un parmi %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Une liste de valeurs d'ACI"
#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
-msgstr ""
+msgstr "type, filter, subtree et targetgroup sont mutuellement exclusifs"
#: ipalib/plugins/aci.py:218
msgid "ACI prefix is required"
-msgstr ""
+msgstr "Un préfixe ACI est requis"
#: ipalib/plugins/aci.py:221
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
+msgstr "au moins un parmi type, filter, subtree, targetgroup, attrs ou memberof est requis"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
-msgstr ""
+msgstr "filter et memberof sont mutuellement exclusifs"
#: ipalib/plugins/aci.py:230
msgid "group, permission and self are mutually exclusive"
-msgstr ""
+msgstr "group, permission et self sont mutuellement exclusifs"
#: ipalib/plugins/aci.py:232
msgid "One of group, permission or self is required"
-msgstr ""
+msgstr "Un parmi group, permission ou self est requis"
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
-msgstr ""
+msgstr "Le groupe '%s' n'existe pas"
#: ipalib/plugins/aci.py:273
msgid "empty filter"
-msgstr ""
+msgstr "filtre vide"
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
-msgstr ""
-
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
+msgstr "Erreur de syntaxe : %(error)s"
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
-msgstr ""
+msgstr "ACI nommée \"%s\" introuvable"
#: ipalib/plugins/aci.py:400
msgid "ACI prefix"
-msgstr ""
+msgstr "Préfixe ACI"
#: ipalib/plugins/aci.py:401
msgid ""
"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
"none)"
-msgstr ""
-
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
+msgstr "Préfixe utilisé pour distinguer les types d'ACI (permission, delegation, selfservice, none)"
#: ipalib/plugins/aci.py:412
msgid "ACIs"
-msgstr ""
+msgstr "ACI"
#: ipalib/plugins/aci.py:417
msgid "ACI name"
-msgstr ""
+msgstr "Nom d'ACI"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
-msgstr ""
+msgstr "Permission"
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
-msgstr ""
+msgstr "L'ACI Permission donne accès à"
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
-msgstr ""
+msgstr "Groupe d'utilisateurs"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
-msgstr ""
+msgstr "L'ACI groupe utilisateur donne accès à"
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
-msgstr ""
+msgstr "Permissions"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
-msgstr ""
+msgstr "Liste séparée par des virgules de permissions à accorder (read, write, add, delete, all)"
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
-msgstr ""
+msgstr "Attributs"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
-msgstr ""
+msgstr "Liste séparée par des virgules d'attributs"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
-msgstr ""
+msgstr "Type"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
-msgstr ""
+msgstr "type d'objet IPA (user, group, host, hostgroup, service, netgroup)"
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
-msgstr ""
+msgstr "Membre de"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
-msgstr ""
+msgstr "Membre d'un groupe"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
-msgstr ""
+msgstr "Filtre"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
-msgstr ""
+msgstr "Filtre LDAP valide (i.e. ou=Engineering)"
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
-msgstr ""
+msgstr "Sous-arbre"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
-msgstr ""
+msgstr "Sous-arbre sur lequel appliquer l'ACI"
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
-msgstr ""
+msgstr "Groupe cible"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
-msgstr ""
+msgstr "Groupe sur lequel appliquer l'ACI"
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
-msgstr ""
+msgstr "Cibler votre propre entrée (self)"
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
-msgstr ""
+msgstr "Appliquer l'ACI à votre propre entrée (self)"
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
-msgstr ""
+msgstr "ACI créée \"%(value)s\""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
-msgstr ""
+msgstr "Tester la syntaxe de l'ACI, sans rien écrire"
+
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Deleted ACI \"%(value)s\""
+
+#: 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
+msgid "ACI"
+msgstr "ACI"
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "ACI modifiée \"%(value)s\""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "%(count)d ACI correspondantes"
+msgstr[1] "%(count)d ACI correspondantes"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr "Nouveau nom de l'ACI"
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "ACI renommée en \"%(value)s\""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
-msgstr ""
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr "\nRègle d'auto adhésion.\n\nIl est possible d'apporter de la clarté dans l'adhésion de systèmes ou\nd'utilisateurs en configurant des motifs d'expressions rationnelles inclusives\nou exclusives, ce qui permet d'assigner de nouvelles entrées dans un groupe\nd'utilisateurs ou de systèmes sur la base d'informations dans les attributs.\n\nUne règle est directement associée avec un groupe par son nom, il est donc\nimpossible de créer une règle sans le nom du groupe auquel elle est associée.\n\nUne condition est une expression rationnelle utilisée par 389-ds pour\nidentifier les nouvelles entrées à utiliser dans la règle d'auto-adhésion.\nS'il y a correspondance avec une règle d'auto-adhésion, alors l'entrée\nest automatiquement ajoutée au groupe d'utilisateurs ou de systèmes.\n\nEXEMPLES :\n\n Ajouter le groupe d'utilisateurs ou de systèmes initial :\n ipa hostgroup-add --desc=\"Web Servers\" webservers\n ipa group-add --desc=\"Developers\" devel\n\n Créer la règle initiale :\n ipa automember-add --type=hostgroup webservers\n ipa automember-add --type=group devel\n\n Ajouter une condition à la règle :\n ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n\n Ajouter une condition exclusive à la règle empêchant l'auto-adhésion :\n ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n\n Ajouter un système :\n ipa host-add web1.example.com\n\n Ajouter un utilisateur :\n ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n\n Vérifier l'auto-adhésion :\n ipa hostgroup-show webservers\n Host-group: webservers\n Description: Web Servers\n Member hosts: web1.example.com\n\n ipa group-show devel\n Group name: devel\n Description: Developers\n GID: 1004200000\n Member users: tuser\n\n Supprimer une conditition de la règle :\n ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n\n Modifier la règle d'auto-adhésion:\n ipa automember-mod\n\n Définir le groupe cible par défaut :\n ipa automember-default-group-set --default-group=webservers --type=hostgroup\n ipa automember-default-group-set --default-group=ipausers --type=group\n\n Supprimer le groupe cible par défaut :\n ipa automember-default-group-remove --type=hostgroup\n ipa automember-default-group-remove --type=group\n\n Afficher le groupe cible par défaut :\n ipa automember-default-group-show --type=hostgroup\n ipa automember-default-group-show --type=group\n\n Recherche toutes les règles d'auto-adhésion :\n ipa automember-find\n\n Afficher une règle d'auto-adhésion :\n ipa automember-show --type=hostgroup webservers\n ipa automember-show --type=group devel\n\n Supprimer une règle d'auto-adhésion :\n ipa automember-del --type=hostgroup webservers\n ipa automember-del --type=group devel\n"
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr "Regex inclusive"
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr "Regex exclusive"
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr "Clé d'attribut"
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr "Attribut à filtrer via l'expression rationnelle. Par exemple fqdn pour un système, ou manager pour un utilisateur"
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr "Type de groupe"
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr "Type de groupe auquel la règle s'applique"
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr "Règle d'auto-adhésion"
+
+#: ipalib/plugins/automember.py:166
+msgid "Auto Membership Rule"
+msgstr "Règle d'auto-adhésion"
+
+#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526
+#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181
+#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "Description"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr "Une description de cette règle d'auto-adhésion"
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr "Groupe par défaut"
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr "Groupe par défaut assigné aux nouvelles entrées"
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr "Groupe : %s introuvable !"
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr "%s n'est pas un attribut valide."
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Ajouter une règle d'auto-adhésion.\n "
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr ""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr "Règle d'auto-adhésion \"%(value)s\" ajoutée"
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr "L'auto-adhésion n'est pas configurée"
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr "\n Ajouter des conditions à une règle d'auto-adhésion.\n "
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr "Échec lors de l'ajout"
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr "Condition(s) ajoutées à \"%(value)s\""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr "Conditions n'ayant pu être ajoutées"
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr "Nombre de conditions ajoutées"
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr "Règle d'auto-adhésion : %s introuvable !"
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
-msgstr ""
+msgstr "\n Outrepasser ceci afin de pouvoir préciser les ajouts et échecs aux résultats renvoyé.\n "
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Supprimer les conditions d'une règle d'auto-adhésion.\n "
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
-msgstr ""
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
+msgstr "Condition(s) supprimée(s) de \"%(value)s\""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr ""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr "Conditions n'ayant pu être supprimées"
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr "Nombre de conditions supprimées"
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr "\n Outrepasser ceci afin de pouvoir préciser les ajouts et échecs.\n "
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Modify an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Modifier une règle d'auto-adhésion.\n "
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr "Règle d'auto-adhésion \"%(value)s\" modifiée"
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:450
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Delete an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Supprimer une règle d'auto-adhésion.\n "
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr "Règle d'auto-adhésion \"%(value)s\" supprimée"
+
+#: ipalib/plugins/automember.py:466
msgid ""
"\n"
-" Execute the aci-show operation.\n"
+" Search for automember rules.\n"
+" "
+msgstr "\n Rechercher des règles d'auto-adhésion.\n "
+
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] "%(count)d règle correspondante"
+msgstr[1] "%(count)d règles correspondantes"
+
+#: ipalib/plugins/automember.py:486
+msgid ""
"\n"
-" Returns the entry\n"
+" Display information about an automember rule.\n"
+" "
+msgstr "\n Afficher les informations sur une règle d'auto-adhésion.\n "
+
+#: ipalib/plugins/automember.py:502
+msgid ""
"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
-msgstr ""
+" Set default group for all unmatched entries.\n"
+" "
+msgstr "\n Définir le groupe par défaut pour les entrées ne correspondant à aucune règle.\n "
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr "Groupe d'auto-adhésion par défaut défini à \"%(value)s\""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
-msgstr ""
+msgstr "\n Supprimer le groupe par défaut pour les entrées ne correspondant à aucune règle.\n "
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
-msgstr ""
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
+msgstr "Groupe d'auto-adhésion par défaut \"%(value)s\" supprimé"
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
-msgstr ""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr "Aucun groupe d'auto-adhésion défini"
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr "\n Afficher les informations sur le groupe d'auto-adhésion par défaut.\n "
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -537,675 +1093,585 @@ msgid ""
"\n"
" Remove the man key from the auto.share map:\n"
" ipa automountkey-del baltimore auto.share --key=man\n"
-msgstr ""
+msgstr "\nAutomount\n\nStocke la configuration automount(8) pour autofs(8) dans IPA.\n\nLa base d'une configuration automount est le fichier de configuration auto.master.\nC'est aussi le lieu de base dans IPA. Plusieurs configurations auto.master\npeuvent être stockées dans plusieurs lieux différents. Un lieu est spécifique\nà chaque mise en œuvre, le lieu par défaut étant 'default'. Par exemple, vous\npouvez avoir un lieu par région géographique, par étage, par type, etc.\n\nAutomount a trois types d'objets : les lieux, les cartes et les clés.\n\nUn lieu définit un jeu de cartes ancrées dans auto.master. Cela permet\nde stocker de multiples configurations automount. Un lieu en soi n'est pas\ntrès intéressant, mais est le point de départ d'une nouvelle carte automount.\n\nUne carte est en gros équivalente à un fichier individuel automount et fournit\nle stockage pour les clés.\n\nUne clé est un point de montage associé à une carte.\nA key is a mount point associated with a map.\n\nQuand un nouveau lieu est créé, deux cartes sont automatiquement\ncréées pour lui: auto.master et auto.direct. auto.master est la carte racine\npour toutes les cartes automount pour le lieu en question. auto.direct est\nla carte par défaut pour les montages directs et est monté sur /-.\n\nEXEMPLES:\n\nLieux:\n\n Créer un nouveau lieu nommé \"Baltimore\" :\n ipa automountlocation-add baltimore\n\n Afficher le nouveau lieu :\n ipa automountlocation-show baltimore\n\n Trouver les lieux disponibles :\n ipa automountlocation-find\n\n Supprimer un lieu automount nommé :\n ipa automountlocation-del baltimore\n\n Afficher à quoi ressembleraient les cartes automount si elles étaient dans le système de fichiers :\n ipa automountlocation-tofiles baltimore\n\n Importer une configuration existante dans un lieu:\n ipa automountlocation-import baltimore /etc/auto.master\n\n L'import échoera si une entrée dupliquée est trouvée. Pour une\n utilisation continue où les erreurs sont ignorées, utiliser l'option\n --continue.\nCartes :\n\n Créer une nouvelle carte, \"auto.share\" :\n ipa automountmap-add baltimore auto.share\n\n Afficher la nouvelle carte :\n ipa automountmap-show baltimore auto.share\n\n Trouver les cartes du lieu baltimore :\n ipa automountmap-find baltimore\n\n Supprimer la carte auto.share :\n ipa automountmap-del baltimore auto.share\n\nClés :\n\n Créer une nouvelle clé pour la carte auto.share du lieu baltimore. Cela associe\n la carte précédemment créée à auto.master auto.master:\n ipa automountkey-add baltimore auto.master --key=/share --info=auto.share\n\n Créer une nouvelle clé dans notre carte auto.share, un montage NFS pour les pages de manuel :\n ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n\n Trouver toutes les clés de la carte auto.share :\n ipa automountkey-find baltimore auto.share\n\n Trouver toutes les clés automount directes :\n ipa automountkey-find baltimore --key=/-\n\n Supprimer la clé man de la carte auto.share :\n ipa automountkey-del baltimore auto.share --key=man\n"
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr "lieu d'automontage"
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr "lieux d'automontage"
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
-msgstr ""
+msgstr "Lieux d'automontage"
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr "Lieu d'automontage"
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
-msgstr ""
+msgstr "Lieu"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
-msgstr ""
+msgstr "Nom de lieu automount."
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
+msgstr "Créer un nouveau lieu d'automontage"
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
+msgstr "Lieu d'automontage \"%(value)s\" ajouté"
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
+msgstr "Supprimer un lieu d'automontage."
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
+msgstr "Lieu d'automontage \"%(value)s\" supprimé"
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
+msgstr "Afficher un lieu d'automontage."
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr "Rechercher un lieu d'automontage."
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] "%(count)d lieu d'automontage correspondants"
+msgstr[1] "%(count)d lieux d'automontage correspondant"
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr "Créer les fichiers d'automontage pour un lieu spécifique."
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr "Importer les fichiers d'automontage pour un lieu spécifique."
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
-msgstr ""
+msgstr "Fichier maître"
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
-msgstr ""
+msgstr "Fichier maître automount"
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
-msgstr ""
+msgstr "Mode opération continue. Les erreurs seront rapportées mais le processus continuera."
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
-msgstr ""
+msgstr "Fichiers %(file)s introuvable"
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
+msgstr "carte d'automontage"
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
+msgstr "cartes d'automontage"
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
-msgstr ""
+msgstr "Carte"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
-msgstr ""
+msgstr "Nom de carte d'automontage."
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr ""
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
-msgstr ""
+msgstr "Cartes d'automontage"
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
+msgstr "Carte d'automontage"
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
+msgstr "Créer une nouvelle carte d'automontage."
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
+msgstr "Carte d'automontage \"%(value)s\" ajoutée"
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
+msgstr "Supprimer une carte d'automontage."
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
+msgstr "Carte d'automontage \"%(value)s\" supprimée"
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr "Modifier une carte d'automontage."
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr "Carte d'automontage \"%(value)s\" modifiée"
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr "Rechercher des cartes d'automontage."
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] "%(count)d carte d'automontage correspondante"
+msgstr[1] "%(count)d cartes d'automontage correspondantes"
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr "Afficher une carte d'automontage."
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr "Objet clé d'automontage."
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr "clé d'automontage"
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr "clés d'automontage"
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
-msgstr ""
+msgstr "Clé"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
-msgstr ""
+msgstr "Nom de clé d'automontage."
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
-msgstr ""
+msgstr "Information du montage"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
-msgstr ""
+msgstr "description"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
-msgstr ""
+msgstr "Clés d'automontage"
+
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr "Clé d'automontage"
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:626
+#, python-format
msgid ""
"The key,info pair must be unique. A key named %(key)s with info %(info)s "
"already exists"
-msgstr ""
+msgstr "La paire key,info doit être unique. Une clé nommée %(key)s avec l'information %(info)s existe déjà."
-#: ipalib/plugins/automount.py:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
-msgstr ""
+msgstr "la clé nommée %(key)s existe déjà"
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
-msgstr ""
+msgstr "La clé automount %(key)s avec l'information %(info)s n'existe pas"
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
-msgstr ""
+msgstr "Plus d'une entrée avec la clé %(key)s trouvée, utilisez --info pour sélectionner l'entrée spécifique."
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
+msgstr "Créer une nouvelle clé d'automontage."
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr "Clé d'automontage \"%(value)s\" créée"
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr "Créer un nouveau point de montage indirect."
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr "Carte d'automontage indirect \"%(value)s\" créée"
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
-msgstr ""
+msgstr "Point de montage"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
-msgstr ""
+msgstr "Carte parente"
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
-msgstr ""
+msgstr "Nom de la carte parente (par défaut : auto.master)."
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
+msgstr "Supprimer une clé d'automontage."
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
+msgstr "Clé d'automontage \"%(value)s\" supprimée"
+
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr "Modifier une clé d'automontage."
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr "Clé d'automontage \"%(value)s\" modifiée"
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
-msgstr ""
+msgstr "Nouvelle information de montage"
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
+msgstr "Rechercher une clé d'automontage."
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
-msgstr ""
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] "%(count)d clé d'automontage correspondante"
+msgstr[1] "%(count)d clés d'automontage correspondantes"
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
-msgstr ""
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
+msgstr "Afficher une clé d'automontage."
+
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
+msgstr "Mot de passe"
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
-msgstr ""
+msgstr "Membres en échec"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
-msgstr ""
+msgstr "Utilisateurs membres"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
-msgstr ""
+msgstr "Groupes membres"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
-msgstr ""
+msgstr "Membre des groupes"
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
-msgstr ""
+msgstr "Systèmes membres"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
-msgstr ""
+msgstr "Groupes de systèmes membres"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
-msgstr ""
+msgstr "Membre du groupe de systèmes"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
-msgstr ""
+msgstr "Rôles"
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
-msgstr ""
+msgstr "Groupes de commandes sudo"
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
-msgstr ""
+msgstr "Accord en cours des privilègues aux rôles"
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
-msgstr ""
+msgstr "Netgroups membres"
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
-msgstr ""
+msgstr "Membre des netgroups"
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
-msgstr ""
+msgstr "Services membres"
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
-msgstr ""
+msgstr "Groupes de services membres"
+
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr "Services HBAC membres"
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
-msgstr ""
+msgstr "Groupes de services HBAC membres"
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
-msgstr ""
+msgstr "Utilisateurs membres indirects"
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
-msgstr ""
+msgstr "Groupes membres indirects"
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
-msgstr ""
+msgstr "Systèmes membres indirects"
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
-msgstr ""
+msgstr "Groupes de systèmes membres indirect"
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
-msgstr ""
+msgstr "Membres indirect des rôles"
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
-msgstr ""
+msgstr "Permission membre indirect"
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
-msgstr ""
+msgstr "Service HBAC membre indirect"
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
-msgstr ""
+msgstr "Groupe de services membre indirect"
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
-msgstr ""
+msgstr "Netgroups membres indirects"
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
-msgstr ""
+msgstr "Système externe"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr "Systèmes/groupes de systèmes sources en échec"
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
-msgstr ""
+msgstr "Systèmes et groupes de système en échec"
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
-msgstr ""
+msgstr "Utilisateurs et groupes en échec"
+
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr "Services et groupes de service en échec"
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
-msgstr ""
+msgstr "managedby en échec"
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
-msgstr ""
+msgstr "Échec à la suppression"
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
+msgstr "entrée"
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
+msgstr "entrées"
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
-msgstr ""
+msgstr "Entrée"
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
-msgstr ""
+msgstr "entrée conteneur (%(container)s) introuvable"
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
-msgstr ""
+msgstr "%(parent)s: %(oname)s introuvable"
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
-msgstr ""
+msgstr "%(pkey)s: %(oname)s introuvable"
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
+msgstr "%(oname)s avec le nom \"%(pkey)s\" existe déjà"
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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 ""
+msgstr "Modifie un attribut avec une paire nom/valeur. Le format est attr=valeur.\nPour les attributs multi-valués, la commande remplace toutes les valeurs déjà présentes."
-#: ipalib/plugins/baseldap.py:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
+msgstr "Ajouter une paire attribut/valeur. Format : attr=valeur. Les\nattributs doivent faire partie du schéma."
-#: ipalib/plugins/baseldap.py:474
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
+msgstr "Supprimer une paire attribut/valeur. L'option sera évaluée\nen dernier, après les modifications et ajouts."
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
+msgstr "Mode continu : pas d'arrêt sur erreurs."
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
-msgstr ""
+msgstr "Droits"
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
+msgstr "Affiche les droits d'accès sur cette entrée (requiert --all). Cf. la page de manuel de ipa pour plus d'informations."
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
-msgstr ""
+msgstr "Renommer"
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
-msgstr ""
+msgstr "Renomme l'objet %(ldap_obj_name)s"
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
-msgstr ""
+msgstr "cette entrée a été supprimée pendant sa modification"
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
+msgstr "liste séparée par des virgules de %s"
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
+msgstr "%s membre"
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
+msgstr "liste séparée par des virgules de %s à ajouter"
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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 ""
+msgstr "Membres n'ayant pu être ajoutés"
-#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
-msgstr ""
+msgstr "Nombre de membres ajoutés"
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
+msgstr "liste séparée par des virgules de %s à supprimer"
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
-msgstr ""
+msgstr "Membres n'ayant pu être supprimé"
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
-msgstr ""
+msgstr "Nombre de membres supprimés"
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr "Rechercher des %s avec ces %s %s."
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr "Rechercher des %s sans ces %s %s."
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
-msgstr ""
+msgstr "Limite de durée"
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
-msgstr ""
+msgstr "Limite de durée de la recherche en secondes"
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
-msgstr ""
+msgstr "Limite de taille"
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
-msgstr ""
+msgstr "Nombre maximal d'entrées renvoyées"
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
+msgstr "Clé primaire uniquement"
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
-msgstr ""
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
+msgstr "Les résultats devraient contenir uniquement des attributs clé primaire uniquement (\"%s\")"
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
-msgstr ""
+msgstr "ajouté"
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
-msgstr ""
-
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
+msgstr "retiré"
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
-msgstr ""
+msgstr "Commandes imbriquées à exécuter"
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1265,393 +1731,338 @@ msgid ""
"\n"
"http://www.ietf.org/rfc/rfc5280.txt\n"
"\n"
-msgstr ""
-
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
+msgstr "\nOpération sur les certificats IPA\n\nMet en œuvre un jeu de commandes permettant l'administration\ndes certificats SSL de serveurs.\n\nLes requêtes de certificats existent sous la forme d'un Certificate Signing Request (CSR)\nau format PEM.\n\nEn cas d'utilisation du module d'auto-signature, alors le sujet du CSR devra\nêtre identique au sujet configuré dans le serveur. L'autorité de certification\ndogtag utilise uniquement la valeur du CN du CSR, et remplace le reste du sujet.\n\nUn certificat est stocké avec un principal de service, qui requiert\nlui un système.\nAfin de demander un certificat  :\n\n* Le système doit exister\n* Le service doit exister (ou utiliser l'option --add pour l'ajouter automatiquement)\n\nEXEMPLES:\n\n Demander un nouveau certificat et l'ajouter au principal :\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n\n Récupérer un certificat existant :\n ipa cert-show 1032\n\n Révoquer un certificat (cf. RFC 5280 pour les détails sur les raisons) :\n ipa cert-revoke --revocation-reason=6 1032\n\n Supprimer l'état en maintien de révocation d'un certificat :\n ipa cert-remove-hold 1032\n\n Vérifier l'état d'une demande de signature :\n ipa cert-status 10\n\nIPA émet actuellement (ou refuse d'émettre) toutes les demandes de\ncertificats, rendant inutile l'état de la requête. Cette commande sera utile\ndans une version future, dans le cas où l'AC n'émet pas immédiatement\nle certificat.\n\nLes raisons suivantes de révocation sont supportées :\n\n * 0 - unspecified\n * 1 - keyCompromise\n * 2 - cACompromise\n * 3 - affiliationChanged\n * 4 - superseded\n * 5 - cessationOfOperation\n * 6 - certificateHold\n * 8 - removeFromCRL\n * 9 - privilegeWithdrawn\n * 10 - aACompromise\n\nN.B.: le code 7 n'est pas utilisé. Cf. RFC 5280 pour les détails :\n\nhttp://www.ietf.org/rfc/rfc5280.txt\n\n"
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
-msgstr ""
+msgstr "Échec dans le décodage du Certificate Signing Request :"
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
-msgstr ""
+msgstr "Échec dans le décodage du Certificate Signing Request"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
-msgstr ""
-
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
+msgstr "Échec dans le décodage du Certificate Signing Request : %s"
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
+msgstr "Soumettre une demande de signature de certificat."
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
+msgstr "CSR"
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
-msgstr ""
+msgstr "Principal"
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
-msgstr ""
+msgstr "Principal de service pour ce certificat (par ex.: HTTP/test.example.com)"
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
-msgstr ""
+msgstr "ajoute automatiquement le principal s'il n'existe pas"
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
-msgstr ""
+msgstr "Certificat"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
-msgstr ""
+msgstr "Subjet"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
-msgstr ""
+msgstr "Émetteur"
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
-msgstr ""
+msgstr "Pas Avant"
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
-msgstr ""
+msgstr "Pas Après"
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
-msgstr ""
+msgstr "Empreinte (MD5)"
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
-msgstr ""
+msgstr "Empreinte (SHA1)"
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
-msgstr ""
+msgstr "Numéro de série"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
-msgstr ""
+msgstr "Nom de variable de correspondance de la valeur"
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
-msgstr ""
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
+msgstr "Vérifier l'état d'une demande de signature de certificat."
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
-msgstr ""
+msgstr "Identifiant de la demande"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
-msgstr ""
+msgstr "État de la demande"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
-msgstr ""
+msgstr "Numéro de série en décimal (ou en hexadécimal avec le préfixe 0x)"
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
-msgstr ""
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
+msgstr "Récupérer un certificat existant."
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
-msgstr ""
+msgstr "Raison de la révocation"
#: ipalib/plugins/cert.py:466
msgid "Output filename"
-msgstr ""
+msgstr "Nom de fichier de sortie"
#: ipalib/plugins/cert.py:467
msgid "File to store the certificate in."
-msgstr ""
+msgstr "Fichier dans lequel stocker le certificat."
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
-msgstr ""
+msgid "Revoke a certificate."
+msgstr "Révoquer un certificat."
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
-msgstr ""
+msgstr "Révoqué"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
-msgstr ""
+msgstr "Raison"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
-msgstr ""
+msgstr "Raison de révocation du certificat (0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
-msgstr ""
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr "7 n'est pas une raison de révocation valide"
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr "Prendre un certificat révoqué en attente."
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
-msgstr ""
+msgstr "Réintégré"
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
-msgstr ""
+msgstr "Erreur"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
-msgstr ""
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
+msgstr "\nConfiguration serveur\n\nAdministrer les valeurs de configuration par défaut qu'utilise IPA ainsi\nque certains paramètres.\n\nNOTES :\n\nLa valeur pour le préavis d'expiration des mots de passe (--pwdexpnotify)\nest stockée ici afin de pouvoir être répliquée. Elle n'est pas encore\nutilisée pour la notification des utilisateurs avant l'expiration de leur\nmot de passe.\n\nCertains attributs sont en lecture seule, fournis à titre d'information,\nincluant :\n\nBase de sujet de certificat : la base configurée pour les sujets de\n certificat, par exemple O=EXAMPLE.COM, configurable uniquement lors\n de l'installation.\nFonctionnalités du greffon de gestion des mots de passe : défini\n actuellement les types de condensés additionnels qu'un mot de\n passe va générer (d'autres conditions peuvent s'appliquer).\n\nEXEMPLES :\n\n Afficher la configuration de base du serveur :\n ipa config-show\n\n Afficher toutes les options de configuration :\n ipa config-show --all\n\n Modifier la longueur maximale d'un nom d'utilisateur\n à 99 caractères :\n ipa config-mod --maxusername=99\n\n Augmenter les limites de temps et de taille pour les recherches\n sur le serveur IPA :\n ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n\n Définir le domaine par défaut pour les adresses courriel des utilisateurs :\n ipa config-mod --emaildomain=example.com\n\n Activer le mode migration pour rendre la commande \"ipa migrate-ds\" opérationelle :\n ipa config-mod --enable-migration=TRUE\n"
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
-msgstr ""
+msgstr "searchtimelimit doit être égal à -1 ou > 1."
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
-msgstr ""
+msgid "configuration options"
+msgstr "options de configuration"
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
-msgstr ""
+msgstr "Configuration"
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
-msgstr ""
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
+msgstr "Longueur maximale de nom d'utilisateur"
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
-msgstr ""
+msgstr "Base de répertoire utilisateur"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
-msgstr ""
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
+msgstr "Emplacement par défaut des répertoires utilisateur"
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
-msgstr ""
+msgstr "Shell par défaut"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
-msgstr ""
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
+msgstr "Interpréteur de commande par défaut pour les nouveaux utilisateurs"
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
-msgstr ""
+msgstr "Groupe utilisateur par défaut"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
+msgstr "Groupe utilisateur par défaut pour les nouveaux utilisateurs"
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
-msgstr ""
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
+msgstr "Domaine par défaut pour les adresses courriel"
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
-msgstr ""
+msgstr "Durée de recherche limite"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
-msgstr ""
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
+msgstr "Durée maximale (secondes) pour une recherche (> 0, -1 pour illimité)"
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
-msgstr ""
+msgstr "Taille limite de recherche"
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
-msgstr ""
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
+msgstr "Nombre maximal d'entrées à rechercher (-1 pour illimité)"
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
-msgstr ""
+msgstr "Champs de recherche utilisateur"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
+msgstr "Une liste séparée par des virgules des champs à fouiller lors d'une recherche d'utilisateurs"
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
-msgstr ""
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
+msgstr "Une liste séparée par des virgules des champs à fouiller lors d'une recherche de groupes"
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr ""
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
+msgstr "Activer le mode migration"
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
-msgstr ""
-
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
-msgstr ""
+msgstr "Base du sujet de certificat"
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
-msgstr ""
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
+msgstr "Base pour les sujets de certificat (OU=Test,O=Example)"
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
-msgstr ""
+msgstr "Classes d'objets par défaut pour les groupes"
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
-msgstr ""
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
+msgstr "Classes d'objets par défaut pour les groupes (liste séparée par des virgules)"
#: ipalib/plugins/config.py:159
msgid "Default user objectclasses"
-msgstr ""
+msgstr "Classes d'objets par défaut pour les utilisateurs"
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
-msgstr ""
-
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
-msgstr ""
+msgid "Default user objectclasses (comma-separated list)"
+msgstr "Classes d'objets par défaut pour les utilisateurs (liste séparée par des virgules)"
#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
-msgstr ""
+msgid "Password Expiration Notification (days)"
+msgstr "Notification avant expiration de mot de passe (jours)"
-#: ipalib/plugins/config.py:170
-msgid "Password plugin features"
-msgstr ""
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
+msgstr "Nombre de jours de préavis d'expiration de mot de passe"
#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
-msgstr ""
+msgid "Password plugin features"
+msgstr "Fonctionnalités du greffon de gestion des mots de passe"
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
-msgstr ""
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
+msgstr "Hachages supplémentaires à générer dans le greffon de gestion des mots de passe"
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
+msgstr "Modifier les options de configuration."
+
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr "Le groupe n'existe pas"
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr "attribut \"%s\" interdit"
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr "Ne peut être vide"
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr "Afficher la configuration actuelle."
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1665,130 +2076,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
+" ipa delegation-del \"managers edit employees' street\"\n"
+msgstr "\nDélégation de groupe à groupe\n\nUne permission permet une délégation fine des autorisations. Les règles de\ncontrôle d'accès, ou les instructions (ACI), accordent la possibilité aux\npermissions de réaliser certaines tâches comme l'ajout d'utilisateur, la\nmodification d'un groupe, etc.\n\nLa délégation de groupe à groupe permet aux membres d'un groupe de modifier\nun jeu d'attributs de membres d'un autre groupe.\n\nEXEMPLES:\n\n Ajouter une règle de délégation permettant aux directeurs de modifier\n les adresses des administrateurs :\n ipa delegation-add --attrs=street --membergroup=admins --group=editors 'les directeurs modifient les adresses des administrateurs'\n\n Lors de la gestion d'une liste d'attributs, vous devez toujours spécifier\n la liste complète des attributs, y compris les attributs existants. Ajouter \n postalCode à la liste :\n ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'les directeurs modifient les adresses des administrateurs'\n\n Afficher la règle modifiée :\n ipa delegation-show 'les directeurs modifient les adresses des administrateurs'\n\n Supprimer une règle :\n ipa delegation-del 'les directeurs modifient les adresses des administrateurs'\n"
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
-msgstr ""
+msgstr "Délégation '%(permission)s' introuvable"
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
-msgstr ""
+msgstr "Erreur à la récupération du groupe membre %(group)s: %(error)s"
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
+msgstr "délégation"
#: ipalib/plugins/delegation.py:102
+msgid "delegations"
+msgstr "délégations"
+
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr "Délégations"
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
-msgstr ""
+msgstr "Délégation"
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
-msgstr ""
+msgstr "Nom de la délégation"
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
-msgstr ""
+msgstr "Liste séparée par des virgules des permissions à accorder (read, write). La valeur par défaut est write."
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
-msgstr ""
+msgstr "Membre du groupe d'utilisateurs"
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
-msgstr ""
+msgstr "Groupe d'utilisateur auquel appliquer la délégation"
#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
+msgstr "Ajouter une nouvelle délégation."
+
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
-msgstr ""
+msgstr "Délégation \"%(value)s\" ajoutée"
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
-msgstr ""
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
+msgstr "Supprimer une délégation."
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
-msgstr ""
+msgstr "Délégation \"%(value)s\" supprimée"
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
-msgstr ""
+msgid "Modify a delegation."
+msgstr "Modifier une délégation."
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
-msgstr ""
+msgstr "Délégation \"%(value)s\" modifiée"
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
-msgstr ""
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
+msgstr "Rechercher des délégations."
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d délégation correspondante"
+msgstr[1] "%(count)d délégations correspondantes"
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
-msgstr ""
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
+msgstr "Afficher les informations sur une délégation."
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1801,6 +2189,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1810,11 +2206,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1840,7 +2239,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1867,359 +2266,566 @@ msgid ""
" if one is not included):\n"
" ipa dns-resolve www.example.com\n"
" ipa dns-resolve www\n"
-msgstr ""
+msgstr "\nDomain Name System (DNS)\n\nGestion des zones DNS et des enregistrements de ressource.\n\nEXEMPLES :\n\n Ajouter une nouvelle zone :\n ipa dnszone-add example.com --name-server nameserver.example.com\n --admin-email admin@example.com\n\n Modifier la zone pour permettre les mises à jour dynamiques des\n enregistrements des systèmes du domaine EXAMPLE.COM :\n ipa dnszone-mod example.com --dynamic-update=TRUE \\\n --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n\n Ajouter une nouvelle zone inverse spécifiée par son adresse de réseau :\n ipa dnszone-add --name-from-ip 80.142.15.0/24\n --name-server nameserver.example.com\n\n Ajouter un second serveur de nom pour example.com:\n ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n\n Ajouter un serveur de messagerie pour example.com:\n ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n\n Supprimer un serveur de messagerie précédemment défini pour example.com:\n ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n\n Ajouter un nouvel enregistrement A pour www.example.com: (IP aléatoire)\n ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n\n Ajouter un nouvel enregistrement PTR pour www.example.com\n ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n\n Ajouter de nouveaux enregistrement SRV pour les serveurs LDAP. Les trois quarts\n des requêtes doivent aller sur fast.example.com, un quart sur slow.example.com.\n Si aucune n'est disponible, commuter sur backup.example.com.\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n\n Quand la commande dnsrecord-add ext exécutée sans option pour ajouter un enregsitrement,\n le mode interactif est activé. Le mode interactif a pour invites les types les plus\n courants d'enregistrement pour la zone :\n ipa dnsrecord-add example.com www\n [A record]: 1.2.3.4,11.22.33.44 (2 adresses IP aléeatoires saisies)\n [AAAA record]: (pas d'adresse AAAA saisie)\n Record name: www\n A record: 1.2.3.4, 11.22.33.44\n\n Le mode interactif peut aussi être utilisé pour supprimer des enregistrements DNS :\n ipa dnsrecord-del example.com www\n Pas d'option fournie pour supprimer un enregistrement spécifique.\n Tout supprimer ? Oui/Non (Défault: Non): (ne pas détruire tous les enregistrements)\n Contenu actuel de l'enregistrement DNS :\n\n Enregistrement A : 1.2.3.4, 11.22.33.44\n\n Supprimer l'enregistrement A '1.2.3.4'? Oui/Non (défaut: Non): \n Supprimer l'enregistrement A '11.22.33.44'? Oui/Non (défaut: Non): y\n Nom de l'enregistrement : www\n Enregistrement A : 1.2.3.4 (Enregistrement A 11.22.33.44 a été supprimé)\n\n Afficher la zone example.com :\n ipa dnszone-show example.com\n\n Chercher les zones contenant \"example\" dans le nom de domaine :\n ipa dnszone-find example\n\n Chercher les enregistrements pour les ressources dont le nom contient \"www\" dans la zone example.com:\n ipa dnsrecord-find example.com www\n\n Chercher les enregistrements A de valeur 10.10.0.1 dans la zone example.com\n ipa dnsrecord-find example.com --a-rec 10.10.0.1\n\n Afficher les enregistrements pour la ressource www dans la zone example.com\n ipa dnsrecord-show example.com www\n\n Supprimer la zone example.com avec toutes ses ressources :\n ipa dnszone-del example.com\n\n Résoudre un nom de système afin de vérifier son existence (ajout automatique du nom de domaine IPA\n si non spécifié):\n ipa dns-resolve www.example.com\n ipa dns-resolve www\n"
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
-msgstr ""
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr "format d'adresse IP invalide"
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
-msgstr ""
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr "format de réseau IP invalide"
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr "le format doit être spécifié comme \"priorité poids port cible\""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr "le format doit être spécifié comme \"priorité poids port cible\" (cf. RFC 2782 pour les détails)"
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr "le format doit être spécifié comme \"priorité serveur_de_messagerie\" (cf. RFC 1035 pour les détails)"
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr "la valeur de la priorité doit être un entier"
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr "la valeur de la priorité doit être comprise entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr "le format doit être spécifié comme \"ordre préférence drapeaux service regexpremplacement\" (cf. RFC 2915 pour les détails)"
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr "ordre et préférences doivent être des entiers"
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr "la valeur de l'ordre et de la préférence doivent être compris entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr "le drapeau doit être un caractère unique (avec éventuellement des guillemets)"
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
+msgstr "le drapeau doit être une lettre parmi \"S\", \"A\", \"U\", or \"P\""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
-msgstr ""
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr "le format doit être spécifié ainsi : \"sous_type nom_de_système\" (cf. RFC 1183 pour les détails)"
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr "la valeur du sous-type doit être un entier"
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr "la valeur du sous-type doit être comprise entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
-msgstr ""
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
+msgstr "le format doit être spécifié comme \"type key_tag algorithme certificat_ou_crl\" (cf. RFC 4398 pour les détails)"
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr ""
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr "key_tag, algorithme and type doivent être des entiers"
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr "les valeurs de type et key_tag doit être comprises entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+msgstr "la valeur de algorithme doit être comprise entre 0 et 255"
+
+#: 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"
+msgstr "le format doit être spécifié comme \"nom_de_domaine\" (cf. RFC 1035 pour les détails) : %s"
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr "le format doit être spécifié comme \"cible\" (cf. RFC 2672 pour les détails) : %s"
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr "le format doit être spécifié comme \"key_tag algorithme digest_type digest\" (cf. RFC 4034 pour les détails)"
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr "la valeur de drapeaux doit être comprise entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr "les valeurs de algorithme et digest_type doivent être comprises entre 0 et 255"
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr "le format doit être spécifié comme \"drapeaux protocole algorithme clé_publique\" (cf. RFC 2535 pour les détails)"
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr "drapeaux, protocole et algorithme doivent être des entiers"
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr "la valeur de protocole doit être comprise entre 0 et 255"
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr "le format doit être spécifié comme \n \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n where:\n d1: [0 .. 90] (degrés latitude)\n d2: [0 .. 180] (degrés longitude)\n m1, m2: [0 .. 59] (minutes latitude/longitude)\n s1, s2: [0 .. 59.999] (secondes latitude/longitude)\n alt: [-100000.00 .. 42849672.95] par .01 (altitude en mètres)\n siz, hp, vp: [0 .. 90000000.00] (taille/précision en mètres)\n Cf. RFC 1876 plus les détails"
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr "%s doit être un entier"
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr "%s doit être un nombre à virgule flottante"
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr "d1 et d2 doivent être compris entre 0 et 90"
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr "m1, m2, s1 and s2 doivent être compris entre 0 et 59.999"
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr "alt doit être compris entre -100000.00 et 42849672.95"
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr "siz, hp and vp doivent être compris entre 0 and 90000000.00"
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr "le format doit être spécifié comme \"nom_domaine\" (cf. RFC 1035 pour les détails)"
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr "le format doit être spécifié comme \"nom_domaine_suivant type1 [type2 [type3 [...]]]\" (cf. RFC 4034 pour les détails)"
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr "le type doit être une valeur parmi "
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr "le format doit être spécifié comme \"préférence \" (cf. RFC 2230 pour les détails)"
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr "la valeur de la préférence doit être un entier"
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr "la valeur de la préférence doit être comprise entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr "le format doit être spécifié comme \"type_covered algorithm labels original_ttl signature_expiration signature_inception key_tag signers_name signature\" (cf. RFC 2535, 4034 pour les détails)"
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr "type_covered doit être une valeur parmi "
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr "algorithm, labels, original_ttl et key_tag doivent être des entiers"
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr "signature_expiration and signature_inception doit avoir le format temporel \"YYYYMMDDHHMMSS\""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr "les valeurs de algorithm et labels doivent être comprises entre 0 and 255"
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr "la valeur de original_ttl doit être comprise entre 0 et 4294967295"
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr "la valeur de tag doit être comprise entre 0 et 65535"
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr "le format doit être spécifié comme \"algorithm fp_type fingerprint\" (cf. RFC 4255 pour les détails)"
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr "algorithm et fp_type doivent être des entiers"
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr "les valeurs de algorithm et fp_type doivent être compris entre 0 et 255"
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr "Ce type DNS RR n'est pas pris en charge par le greffon bind-dyndb-ldap"
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr "Le serveur de noms '%(host)s' n'a pas d'enregistrement A/AAAA correspondant"
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr "Zone DNS"
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr "Zones DNS"
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr "Zones DNS"
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr "Zone DNS"
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
-msgstr ""
+msgstr "Nom de zone"
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
-msgstr ""
+msgstr "Nom de zone (FQDN)"
+
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr "Zone inverse de réseau IP"
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr "Réseau IP à partir duquel créer une zone inverse"
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
-msgstr ""
+msgstr "Serveur de nom faisant autorité"
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
-msgstr ""
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
+msgstr "Nom de domaine du serveur de nom faisant autorité"
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
-msgstr ""
+msgstr "Adresse courriel de l'administrateur"
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
-msgstr ""
+msgstr "Numéro de série SOA"
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
-msgstr ""
+msgstr "Numéro de série de l'enregistrement SOA"
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
-msgstr ""
+msgstr "Actualisation SOA"
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
-msgstr ""
+msgstr "Durée d'actualisation de l'enregistrement SOA"
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
-msgstr ""
+msgstr "ré-essai SOA"
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
-msgstr ""
+msgstr "Durée avant nouvelle tentative de l'enregistrement SOA"
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
-msgstr ""
+msgstr "Expiration SOA"
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
-msgstr ""
+msgstr "Durée d'expiration de l'enregistrement SOA"
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
-msgstr ""
+msgstr "Minimum SOA"
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
-msgstr ""
+msgstr "Durée de maintien en cache des réponses négatives"
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
-msgstr ""
+msgstr "Durée de vie SOA"
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
-msgstr ""
+msgstr "Durée de vie de l'enregistrement SOA"
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
-msgstr ""
+msgstr "Classe SOA"
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
-msgstr ""
+msgstr "Classe de l'enregistrement SOA "
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
-msgstr ""
+msgstr "Politique de mise à jour BIND"
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
-msgstr ""
+msgstr "Zone active"
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
-msgstr ""
+msgstr "La zone est-elle active ?"
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
-msgstr ""
+msgstr "Mise à jour dynamique"
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
-msgstr ""
+msgstr "Autorise les mises à jour dynamiques."
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
+msgstr "Créer une nouvelle zone DNS (enregistrement SOA)."
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
-msgstr ""
+msgstr "Forcer"
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
-msgstr ""
+msgstr "Forcer la création de la zone DNS zone même si le serveur de nom n'est pas dans le DNS."
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
-msgstr ""
+msgstr "Ajouter le serveur de nom avec cette adresse IP"
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
-msgstr ""
+msgstr "Le DNS n'est pas configuré"
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
+msgstr "L'adresse du serveur de nom n'est pas un nom de domaine pleinement qualifié"
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
+msgstr "Supprimer la zone DNS (enregistrement SOA)."
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
+msgstr "Modifier la zone DNS (enregistrement SOA)."
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
+msgstr "Rechercher des zones DNS (enregistrements SOA)."
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
+msgstr "Zones forward uniquement"
-#: ipalib/plugins/dns.py:472
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
+msgstr "Rechercher des zones forward uniquement"
+
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
+msgstr "Afficher les informations au sujet d'une zone DNS (enregistrement SOA)."
+
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
+msgstr "Désactiver la zone DNS."
+
+#: ipalib/plugins/dns.py:878
+#, python-format
msgid "Disabled DNS zone \"%(value)s\""
-msgstr ""
+msgstr "Zone DNS \"%(value)s\" désactivée"
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
+msgstr "Activer la zone DNS."
-#: ipalib/plugins/dns.py:494
+#: ipalib/plugins/dns.py:899
+#, python-format
msgid "Enabled DNS zone \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
-msgstr ""
+msgstr "Zone DNS \"%(value)s\" activée"
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:922
msgid "DNS resource record"
-msgstr ""
+msgstr "Enregistrement de ressource DNS"
+
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
+msgstr "Enregistrements de ressources DNS"
+
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
+msgstr "Enregistrements de ressources DNS"
+
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
+msgstr "Enregistrement de ressources DNS"
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
msgid "Record name"
-msgstr ""
+msgstr "Nom d'enregistrement"
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
msgid "Time to live"
-msgstr ""
+msgstr "Durée de vie"
-#: ipalib/plugins/dns.py:538
+#: ipalib/plugins/dns.py:944
msgid "Class"
-msgstr ""
+msgstr "Classe"
-#: ipalib/plugins/dns.py:539
+#: ipalib/plugins/dns.py:945
msgid "DNS class"
-msgstr ""
-
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
-msgstr ""
+msgstr "Classe DNS"
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, python-format
msgid ""
"Reverse zone for PTR record should be a sub-zone of one the following fully "
"qualified domains: %s"
-msgstr ""
+msgstr "La zone inverse pour l'enregistrement PTR doit être une sous-zone de l'un des domaines suivants pleinement qualifiés : %s"
-#: ipalib/plugins/dns.py:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
-msgstr ""
+msgstr "La zone inverse %s requiert exactement %d composantes adresses IP, %d spécifiées"
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
-msgstr ""
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
+msgstr "Ajouter un nouvel enregistrement de ressources DNS."
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "forcer la création d'un enregistrement NS même si le nom du système n'est pas dans le DNS"
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
+msgstr "Modifier un enregistrement de ressources DNS."
+
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
-msgstr ""
+msgstr "Enregistrement \"%(value)s\" supprimé"
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
+msgstr "Supprimer un enregistrement de ressources DNS."
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
msgid ""
"Neither --del-all nor options to delete a specific record provided.\n"
"Command help may be consulted for all supported record types."
-msgstr ""
+msgstr "Aucune option de suppression d'un enregistrement spécifique ni --del-all n'ont été indiqués.\nMerci de consulter l'aide pour connaître tous les types d'enregistrements supportés."
-#: ipalib/plugins/dns.py:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
-msgstr ""
+msgstr "Supprimer les enregistrements associés"
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
-msgstr ""
+msgstr "Pas d'option fournie pour supprimer un enregistrement spécifique."
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
-msgstr ""
+msgstr "Tout supprimer ?"
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
-msgstr ""
+msgstr "Contenu actuel de l'enregistrement DNS :\n"
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr "Supprimer %s '%s' ?"
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
-msgstr ""
+msgstr "enregistrement %s de valeur %s introuvable"
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
+msgstr "Afficher un enregistrement de ressources DNS."
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
+msgstr "Rechercher des enregistrements de ressources DNS."
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
-msgstr ""
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
+msgstr "Résoudre un nom de système DNS."
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
-msgstr ""
+msgstr "'%(value)s' trouvé."
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
-msgstr ""
+msgstr "Nom de système"
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
-msgstr ""
-
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
+msgstr "Système '%(host)s' introuvable"
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2256,183 +2862,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:189
+#: ipalib/plugins/entitle.py:190
msgid "Entitlements"
+msgstr "Droits d'utilisation"
+
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
-msgstr ""
+msgstr "UUID"
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
-msgstr ""
+msgstr "Produit"
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
-msgstr ""
+msgstr "Quantité"
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
-msgstr ""
+msgstr "Utilisé"
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
-msgstr ""
+msgstr "Début"
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
-msgstr ""
+msgstr "Fin"
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
-msgstr ""
+msgstr "Numéro de série"
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2473,148 +3024,125 @@ msgid ""
"\n"
" Display information about a named group.\n"
" ipa group-show localadmins\n"
-msgstr ""
+msgstr "\nGroupes d'utilisateurs\n\nGestion des groupes d'utilisateur. Par défaut, les nouveaux groupes sont\ndes groupes POSIX. Vous pouvez utiliser l'option --nonposix de la commande\ngroup-add pour le marquer comme non-POSIX. Vous pouvez utiliser l'option\n--posix de la commande group-mod pour convertir un groupe non-POSIX en groupe\nPOSIX. Les groupes POSIX ne peuvent être convertis en groupes non-POSIX.\n\nChaque groupe doit avoir une description.\n\nLes groupes POSIX doivent avoir un numéro d'identifiant de groupe (GID).\nLa modification d'un GID est supportée, mais peut avoir un impact sur les\npermissions de vos fichiers. Il n'est pas nécessaire de fournir un GID à\nla création d'un groupe. IPA en créera un automatiquement s'il n'est pas\nspécifié.\n\nEXEMPLES:\n\n Ajouter un nouveau groupe :\n ipa group-add --desc='administrateurs locaux' localadmins\n\n Ajouter un nouveau groupe non-POSIX :\n ipa group-add --nonposix --desc='administrateurs distants' remoteadmins\n\n Convertir un groupe non-POSIX en POSIX :\n ipa group-mod --posix remoteadmins\n\n Ajouter un nouveau groupe POSIX avec un numéro d'identifiant\n de groupe spécifique :\n ipa group-add --gid=500 --desc='Administrateurs Unix' unixadmins\n\n Ajouter un nouveau groupe POSIX en laissant IPA choisir le numéro\n d'identifiant de groupe :\n ipa group-add --desc='printer admins' printeradmins\n\n Supprimer un groupe :\n ipa group-del unixadmins\n\n Pour ajouter le groupe \"remoteadmins\" au groupe \"localadmins\" :\n ipa group-add-member --groups=remoteadmins localadmins\n\n Ajouter une liste d'utilisateurs au groupe \"localadmins\" :\n ipa group-add-member --users=test1,test2 localadmins\n\n Supprimer un utilisateur du groupe \"localadmins\" :\n ipa group-remove-member --users=test2 localadmins\n\n Afficher l'information sur un groupe nommé.\n ipa group-show localadmins\n"
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr "groupe"
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr "groupes"
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
-msgstr ""
+msgstr "Groupes d'utilisateurs"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr "Groupe de l'utilisateur"
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
-msgstr ""
+msgstr "Nom du groupe"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
-msgstr ""
+msgstr "Description du groupe"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
-msgstr ""
+msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
-msgstr ""
+msgstr "GID (utiliser cette option pour le positionner manuellement)"
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
+msgstr "Créer un nouveau groupe."
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
-msgstr ""
+msgstr "Groupe \"%(value)s\" créé"
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
-msgstr ""
+msgstr "Créer en tant que groupe non-POSIX"
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
+msgstr "Supprimer un groupe."
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
-msgstr ""
+msgstr "Groupe \"%(value)s\" supprimé"
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
+msgstr "Modifier un groupe."
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
-msgstr ""
+msgstr "Groupe \"%(value)s\" modifié"
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
-msgstr ""
+msgstr "Transformer en groupe POSIX"
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
+msgstr "Rechercher des groupes."
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d groupe correspondant"
+msgstr[1] "%(count)d groupes correspondants"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
-msgstr ""
+msgstr "rechercher des groupes privés"
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
+msgstr "Afficher les informations d'un groupe nommé."
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
+msgstr "Ajouter des membres à un groupe."
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
+msgstr "Supprimer des membres d'un groupe."
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
-msgstr ""
+msgid "Detach a managed group from a user."
+msgstr "Détacher un groupe administré d'un utilisateur."
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
-msgstr ""
+msgstr "Groupe \"%(value)s\" détaché de l'utilisateur \"%(value)s\""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
-msgstr ""
+msgstr "interdit de modifier les entrées d'utilisateurs"
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
-msgstr ""
+msgstr "interdit de modifier les entrées de groupe"
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
-msgstr ""
+msgstr "Pas un groupe administré"
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2636,7 +3164,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2644,7 +3172,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2653,7 +3181,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2662,265 +3190,213 @@ msgid ""
"\n"
" Remove a named HBAC rule:\n"
" ipa hbacrule-del allow_server\n"
-msgstr ""
+msgstr "\nContrôle d'accès des systèmes (HBAC)\n\nHBAC (Host-based acces control) permet de contrôler qui peut accéder\nà quels services sur quels systèmes, et d'où. Il est possible\nd'utiliser le système HBAC afin de contrôler quels utilisateurs ou\ngroupes d'un système source peuvent accéder quels services, ou groupes\nde services, sur un système cible.\n\nVous pouvez aussi spécifier une catégorie d'utilisateur, de systèmes\ncibles et de systèmes sources. La seule catégorie existante pour le\nmoment est \"all\", mais pourra être étendu dans le futur.\n\nLes systèmes sources et cibles des règles HBAC doivent être des systèmes\nadministrés par IPA.\n\nLes services et groupes de services disponibles sont gérés respectivement\npar les greffons hbacsvc and hbacsvcgroup.\n\nEXEMPLES:\n\n Créer une règle \"test1\" autorisant tous les utilisateurs à accéder\n le serveur \"server\" depuis n'importe où :\n ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n ipa hbacrule-add-host --hosts=server.example.com test1\n\n Afficher les propriétés d'une règle nommée HBAC :\n ipa hbacrule-show test1\n\n Créer une règle pour un service spécifique, permettant à\n l'utilisateur john d'accéder au service sshd sur toute machine depuis\n n'importe quelle machine :\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n ipa hbacrule-add-user --users=john john_sshd\n ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n\n Créer une règle pour un nouveau groupe de services, permettant à\n l'utilisateur john d'accéder au service FTP de toute machine depuis\n n'importe quelle machine.\n ipa hbacsvcgroup-add ftpers\n ipa hbacsvc-add sftp\n ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n ipa hbacrule-add-user --users=john john_ftp\n ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n\n Désactiver une règle HBAC nommée :\n ipa hbacrule-disable test1\n\n Supprimer une règle HBAC nommée :\n ipa hbacrule-del allow_server\n"
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
+msgstr "Commandes de contrôle d'accès des systèmes"
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr "Le type deny est obsolète."
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr "Règle HBAC"
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr "Règles HBAC"
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr "Règles HBAC"
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
-msgstr ""
+msgstr "Règle HBAC"
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
-msgstr ""
+msgstr "Nom de règle"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr ""
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr "Type de règle (allow)"
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
-msgstr ""
+msgstr "Type de règle"
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
-msgstr ""
+msgstr "Catégorie d'utilisateur"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
-msgstr ""
+msgstr "Catégorie d'utilisateur sur laquelle la règle s'applique"
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
-msgstr ""
+msgstr "Catégorie de système"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
-msgstr ""
+msgstr "Catégorie de système sur laquelle la règle s'applique"
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
-msgstr ""
+msgstr "Catégorie de système source"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
-msgstr ""
+msgstr "Catégorie de système sources sur laquelle la règle s'applique"
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
-msgstr ""
+msgstr "Catégorie de service"
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
-msgstr ""
+msgstr "Catégorie de service sur laquelle la règle s'applique"
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
-msgstr ""
+msgstr "Activée"
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
+msgstr "Utilisateurs"
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
-msgstr ""
+msgstr "Systèmes"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
-msgstr ""
+msgstr "Groupes de systèmes"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
-msgstr ""
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
+msgstr "Systèmes sources"
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
-msgstr ""
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
+msgstr "Groupes de systèmes source"
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
-msgstr ""
+msgstr "Services"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
-msgstr ""
+msgstr "Groupes de services"
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
+msgstr "Créer une nouvelle règle HBAC."
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
-msgstr ""
+msgstr "Règle HBAC \"%(value)s\" ajoutée"
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
+msgstr "Supprimer une règle HBAC."
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
-msgstr ""
+msgstr "Règle HBAC \"%(value)s\" supprimée"
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
+msgstr "Modifier une règle HBAC."
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
-msgstr ""
+msgstr "Règle HBAC \"%(value)s\" modifiée"
#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
+msgstr "Rechercher des règles HBAC."
+
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d règle HBAC correspondante"
+msgstr[1] "%(count)d règles HBAC correspondantes"
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
+msgstr "Afficher les propriétés d'une règle HBAC."
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
-msgstr ""
+msgid "Enable an HBAC rule."
+msgstr "Activer une règle HBAC."
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
-msgstr ""
+msgstr "Règle HBAC \"%(value)s\" activée"
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
+msgstr "Désactiver une règle HBAC."
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
-msgstr ""
+msgstr "Règle HBAC \"%(value)s\" désactivée"
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
-msgstr ""
+msgstr "Horaire d'accès"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
+msgstr "Ajouter des utilisateurs et groupes à une règle HBAC."
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
+msgstr "Retirer des utilisateurs et groupes d'une règle HBAC."
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
+msgstr "Ajouter des systèmes et groupes de systèmes cibles à une règle HBAC."
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
+msgstr "Retirer des systèmes et groupes de systèmes cibles d'une règle HBAC."
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
+msgstr "Ajouter des systèmes et groupes de systèmes sources à une règle HBAC."
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
+msgstr "Retirer des systèmes et groupes de systèmes sources d'une règle HBAC."
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
+msgstr "Ajouter des services à une règle HBAC."
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
+msgstr "Ajouter des services et groupes de services d'une règle HBAC."
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2943,85 +3419,79 @@ msgid ""
" Delete an HBAC service:\n"
" ipa hbacsvc-del tftp\n"
"\n"
-msgstr ""
+msgstr "\nServices HBAC\n\nLes services PAM dont le système HBAC peut contrôler l'accès. Le nom\nutilisé ici doit correspondre au nom de service utilisé par PAM.\nEXEMPLES:\n\n Ajouter un nouveau service HBAC :\n ipa hbacsvc-add tftp\n\n Modifier un service HBAC existant :\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Chercher des services HBAC. Cet exemple renverra deux résultats,\n le service FTP et le service tftp nouvellement ajouté :\n ipa hbacsvc-find ftp\n\n Supprimer un service HBAC :\n ipa hbacsvc-del tftp\n\n"
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
+msgstr "Commandes HBAC."
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
-msgstr ""
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr "Service HBAC"
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
+msgstr "Services HBAC"
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr ""
+msgid "HBAC Services"
+msgstr "Services HBAC"
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
-msgstr ""
+msgid "HBAC Service"
+msgstr "Service HBAC"
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "Nom de service"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
-msgstr ""
+msgstr "Description de service HBAC"
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
+msgstr "Ajouter un nouveau service HBAC."
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
-msgstr ""
+msgstr "Service HBAC \"%(value)s\" ajouté"
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
+msgstr "Supprimer un service HBAC existant."
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
-msgstr ""
+msgstr "Service HBAC \"%(value)s\" supprimé"
#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
+msgstr "Modifier un service HBAC."
+
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
-msgstr ""
+msgstr "Service HBAC \"%(value)s\" modifié"
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
+msgstr "Rechercher des services HBAC."
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d service HBAC correspondant"
+msgstr[1] "%(count)d services HBAC correspondants"
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
-msgstr ""
+msgid "Display information about an HBAC service."
+msgstr "Afficher les informations sur un service HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3046,95 +3516,246 @@ msgid ""
"\n"
" Delete an HBAC service group:\n"
" ipa hbacsvcgroup-del login\n"
-msgstr ""
+msgstr "\nGroupes de services HBAC\n\nLes groupes de services HBAC peuvent contenir n'importe quel nombre de\nservices individuels, dit « membres ». Chaque groupe doit avoir une\ndescription.\n\nEXEMPLES:\n\n Ajouter un nouveau groupe de services HBAC :\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Ajouter des membres à un groupe de services HBAC :\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Afficher les informations d'un groupe nommé :\n ipa hbacsvcgroup-show login\n\n Ajouter un nouveau groupe au groupe \"login\" :\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Supprimer un groupe de services HBAC :\n ipa hbacsvcgroup-del login\n"
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr "Groupe de services HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr "Groupes de services HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr "Groupes de services HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr "Groupe de services HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
-msgstr ""
+msgstr "Nom de groupe de services HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
-msgstr ""
+msgstr "Description de groupe de services HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
+msgstr "Ajouter un nouveau groupe de services HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
-msgstr ""
+msgstr "Groupe de services HBAC \"%(value)s\" ajouté"
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
+msgstr "Supprimer un groupe de services HBAC."
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
-msgstr ""
+msgstr "Groupe de services HBAC \"%(value)s\" supprimé"
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
-msgstr ""
+msgid "Modify an HBAC service group."
+msgstr "Supprimer un groupe de services HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
-msgstr ""
+msgstr "Groupe de services HBAC \"%(value)s\" modifié"
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
+msgstr "Rechercher des groupes de services HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d groupe de services HBAC correspondant"
+msgstr[1] "%(count)d groupes de services HBAC correspondants"
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
+msgstr "Afficher les informations sur un groupe de services HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
-msgstr ""
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr "Ajouter des membres à un groupe de services HBAC."
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr "Supprimer des membres d'un groupe de services HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
-msgstr ""
+"Simulate use of Host-based access controls\n"
+"\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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr "Simulation de règles de contrôle d'accès basé sur les systèmes"
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr "Règles correspondantes"
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr "Règles non-correspondantes"
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr "Règles inexistantes ou invalides"
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr "Résultat de la simulation"
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "Nom d'utilisateur"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr "Système source"
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr "Système cible"
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr "Service"
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr "Règles à tester. Si non-spécifié, --enabled est implicite"
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr "Masquer les détails des règles correspondantes ou non, ou invalides"
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr "Inclure toutes les règles IPA actives dans le test [par défaut]"
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr "Inclure toutes les règles IPA inactives dans le test"
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr "Règles non résolues dans --rules"
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr "Accès autorisé : %s"
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3188,220 +3809,204 @@ msgid ""
"\n"
" Add a host that can manage this host's keytab and certificate:\n"
" ipa host-add-managedby --hosts=test2 test\n"
-msgstr ""
-
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
+msgstr "\nSystèmes/Machines\n\nUn système représente une machine, et peut être utilisé dans plusieurs\ncontextes :\n- entrées de services associés à un système\n- un système stocke les entrées des principaux de services host/\n- un système peut être utilisé dans les règles de contrôles d'accès HBAC\n- chaque client inscrit crée une entrée système\n\nINBSCRIPTION :\n\nTrois scenarii d'inscriptions d'un nouveau client sont possibles :\n\n1. La machine est enregistrée par un administrateur de plein droit.\n L'entrée système peut pré-exister ou non. Un administrateur de\n plein droit est membre du rôle hostadmin ou du groupe admins\n2. L'inscription est faite par un administrateur limité. Le système\n doit avoir été préalablement créé. Un administrateur limité\n possède le privilège Host Enrollment.\n3. Le système a été créé avec un mot de passe à usage unique.\n\nUn système peut être inscrit une seule fois. Si un client est déjà\ninscrit et nécessite d'être ré-inscrit, il faut d'abord le supprimer\npuis re-créé. La re-création du système provoquera la perte de tous\nles services du système à supprimer, ainsi que la révocation de tous\nles certificats SSL associés aux services supprimés.\n\nUn système peut de façon optionnelle stocker des informations\ncomplémentaires comme sa localisation, son système d'exploitation, etc.\n\nEXEMPLES :\n\n Ajouter un nouveau système :\n ipa host-add --location=\"labo 3e étage\" --locality=Dallas test.example.com\n\n Supprimer un système :\n ipa host-del test.example.com\n\n Ajouter un système avec un mot de passe à usage unique :\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Ajouter un nouveau système avec un mot de passe à usage unique aléatoire :\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Modifier les informations d'un système :\n ipa host-mod --os='Fedora 12' test.example.com\n\n Désactiver la clé Kerberos du système, ses certificats SSL et tous\n ses services :\n ipa host-disable test.example.com\n\n Ajouter un système pouvant administrer le keytab et les certificats\n du système sur lequel la commande est lancée :\n ipa host-add-managedby --hosts=test2 test\n"
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
-msgstr ""
+msgstr "Nom pleinement qualitfié requis"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
-msgstr ""
+msgstr "Zone DNS inverse introuvable pour l'adresse IP %(addr)s"
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
-msgstr ""
-
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
-msgstr ""
+msgstr "Keytab"
-#: ipalib/plugins/host.py:189
+#: ipalib/plugins/host.py:207
msgid "invalid IP address"
-msgstr ""
+msgstr "adresse IP invalide"
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/host.py:216
+msgid "host"
+msgstr "système"
+
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr "systèmes"
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr "Système"
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
-msgstr ""
+msgstr "Nom de système"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
-msgstr ""
+msgstr "Description de ce système"
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
-msgstr ""
+msgstr "Ville"
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
-msgstr ""
+msgstr "Ville du système (par ex. \"Paris, IDF\")"
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
-msgstr ""
+msgstr "Localisation du système (par ex. \"Lab 2\")"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
-msgstr ""
+msgstr "Plate-forme"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
-msgstr ""
+msgstr "Plate-forme matérielle du système (par ex. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
-msgstr ""
+msgstr "Système d'exploitation"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
-msgstr ""
+msgstr "Système d'exploitation et version (par ex. \"Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
-msgstr ""
+msgstr "Mot de passe utilisateur"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
-msgstr ""
+msgstr "Mot de passe utilisé pour les inscriptions en masse"
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
-msgstr ""
+msgstr "Crée un mot de passe aléatoire utilisé pour l'inscription en masse"
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
-msgstr ""
+msgstr "Mot de passe aléatoire"
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
-msgstr ""
+msgstr "Certificat du serveur encodé en Base-64"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
-msgstr ""
+msgstr "Nom du principal"
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
-msgstr ""
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
+msgstr "Ajouter un nouveau système."
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
-msgstr ""
+msgstr "Système \"%(value)s\" ajouté"
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
-msgstr ""
+msgstr "forcer le nom même si absent des DNS"
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
-msgstr ""
+msgstr "passer outre la détection de DNS inverse"
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
-msgstr ""
+msgstr "Ajouter le système aux DNS avec cette adresse IP"
+
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr "Adresse IP"
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
-msgstr ""
+msgstr "Zone DNS %(zone)s introuvable"
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
-msgstr ""
+msgstr "Le système a été ajouté mais la mise à jour DNS a échoué : %(exc)s"
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
-msgstr ""
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
+msgstr "Supprimer un système."
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
-msgstr ""
+msgstr "Système \"%(value)s\" supprimé"
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
-msgstr ""
+msgstr "Supprimer les entrées DNS"
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
-msgstr ""
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
+msgstr "Modifier les informations d'un système."
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
-msgstr ""
+msgstr "Système \"%(value)s\" modifié"
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
-msgstr ""
+msgstr "Nom de principal Kerberos pour ce système"
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
-msgstr ""
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr "Le mot de passe ne peut être défini pour le système enregistré."
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr "Rechercher des systèmes."
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d système correspondant"
+msgstr[1] "%(count)d systèmes correspondants"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
-msgstr ""
+msgstr "fichier où stocker le certificat"
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
-msgstr ""
+msgstr "Certificat enregistré dans le fichier '%(file)s'"
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
-msgstr ""
+msgstr "Système \"%(value)s\" désactivé"
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3431,1019 +4036,1157 @@ msgid ""
"\n"
" Delete a hostgroup:\n"
" ipa hostgroup-del baltimore\n"
+msgstr "\nGroupes de systèmes.\n\nGestion des groupes de systèmes. Permet d'appliquer des contrôles d'accès\nà plusieurs systèmes en utilisant les contrôles HBAC.\n\nEXEMPLES :\n\n Ajouter un nouveau groupe de systèmes :\n ipa hostgroup-add --desc=\"Systèmes de Baltimore\" baltimore\n\n Ajouter un nouveau groupe de systèmes :\n ipa hostgroup-add --desc=\"Systèmes du Maryland\" maryland\n\n Ajouter des membres à un groupe de systèmes :\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Ajouter un groupe de systèmes en tant que membre d'un autre :\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Supprimer un système d'un groupe :\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Afficher un groupe de systèmes :\n ipa hostgroup-show baltimore\n\n Supprimer un groupe de systèmes :\n ipa hostgroup-del baltimore\n"
+
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
-msgid "Host-group"
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:80
+msgid "Host-group"
+msgstr "Groupe de systèmes"
+
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
-msgstr ""
+msgstr "Nom du groupe de systèmes"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
-msgstr ""
+msgstr "Description de ce groupe de systèmes"
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
-msgstr ""
+msgstr "Groupe de systèmes \"%(value)s\" ajouté"
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
-msgid "Deleted hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
+msgid "Deleted hostgroup \"%(value)s\""
+msgstr "Groupe de systèmes \"%(value)s\" supprimé"
+
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
-msgstr ""
+msgstr "Groupe de systèmes \"%(value)s\" modifié"
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d groupe de systèmes correspondant"
+msgstr[1] "%(count)d groupes de systèmes correspondants"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
-msgstr ""
+msgstr "Nom de l'objet à exporter"
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
+msgstr "Nom de la méthode à exporter"
+
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
+#: ipalib/plugins/internal.py:64
msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
+msgstr "Dictionnaire d'objets IPA encodés JSON"
-#: ipalib/plugins/internal.py:53
+#: ipalib/plugins/internal.py:65
msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
-msgstr ""
-
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
-msgstr ""
-
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
-msgstr ""
-
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
-msgstr ""
-
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
-msgstr ""
-
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
-msgstr ""
-
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
-msgstr ""
-
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
-msgstr ""
-
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
-msgstr ""
-
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
-msgstr ""
-
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
-msgstr ""
+msgstr "Dictionnaire de méthode IPA encodées JSON"
-#: ipalib/plugins/internal.py:122
-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:124
-msgid "Note"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
-msgstr ""
-
-#: ipalib/plugins/internal.py:126
+#: ipalib/plugins/internal.py:147
msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
-msgstr ""
-
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
-msgstr ""
-
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
-msgstr ""
-
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
-msgstr ""
-
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
-msgstr ""
-
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
-msgstr ""
-
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
-msgstr ""
-
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
-msgstr ""
-
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
-msgstr ""
-
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
-msgstr ""
-
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
-msgstr ""
-
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
-msgstr ""
-
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
-msgstr ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
+msgstr "Votre ticket Kerberos n'est plus valide. Merci de lancer kinit puis de cliquer sur \"Réessayer\". Si cela est votre première utilisation de l'interface Web de IPA, merci de <a href='/ipa/config/unauthorized.html'>suivre les directices suivantes</a> pour configurer votre navigateur."
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
-msgstr ""
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr "Ajouter un objet ${other_entity} à l'objet ${entity} ${primary_key}"
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
-msgstr ""
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr "Supprimer l'objet ${other_entity} de l'objet ${entity} ${primary_key}"
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
-msgstr ""
+#: ipalib/plugins/internal.py:179
+msgid "Add"
+msgstr "Ajouter"
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
-msgstr ""
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
+msgstr "Ajouter, puis ajouter un nouveau"
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
-msgstr ""
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
+msgstr "Ajouter et fermer"
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
-msgstr ""
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
+msgstr "Ajouter et modifier"
#: ipalib/plugins/internal.py:183
-msgid "Accessing"
-msgstr ""
+msgid "Add Many"
+msgstr "Ajouter plusieurs"
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
-msgstr ""
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
+msgstr "Annuler"
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
-msgstr ""
+#: ipalib/plugins/internal.py:185
+msgid "Close"
+msgstr "Fermer"
#: ipalib/plugins/internal.py:186
-msgid "Via Service"
-msgstr ""
+msgid "Find"
+msgstr "Rechercher"
#: ipalib/plugins/internal.py:187
-msgid "Any Service"
-msgstr ""
+msgid "Get"
+msgstr "Obtenir"
#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
-msgstr ""
+msgid "Issue"
+msgstr "Émettre"
#: ipalib/plugins/internal.py:189
-msgid "From"
-msgstr ""
+msgid "OK"
+msgstr "OK"
+
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
+msgstr "Réinitialiser"
#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
-msgstr ""
+msgid "Restore"
+msgstr "Restaurer"
+
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
+msgstr "Réessayer"
+
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
+msgstr "Révoquer"
#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
-msgstr ""
+msgid "Update"
+msgstr "Modifier"
+
+#: ipalib/plugins/internal.py:196
+msgid "View"
+msgstr "Voir"
#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+msgid "Collapse All"
msgstr ""
#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
-msgstr ""
+#: ipalib/plugins/internal.py:201
+msgid "General"
+msgstr "Général"
#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
-msgstr ""
+msgid "Identity Settings"
+msgstr "Paramètres d'identité"
#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
-msgstr ""
+msgid "${entity} ${primary_key} Settings"
+msgstr "Paramètres de l'objet ${entity} ${primary_key}"
#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
-msgstr ""
-
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
-msgstr ""
+msgid "Back to Top"
+msgstr "Haut de page"
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
-msgstr ""
+#: ipalib/plugins/internal.py:209
+msgid "Available"
+msgstr "Disponible"
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+msgid "Operations Error"
msgstr ""
#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+msgid "Confirmation"
msgstr ""
#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
-msgstr ""
+msgid "This page has unsaved changes. Please save or revert."
+msgstr "Cette page comporte des modifications non-sauvegardées. Merci de sauvegarder ou de réinitialiser."
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
+msgstr "Potentiel"
+
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
+msgstr ""
+
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+msgid "Remove ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
-msgstr ""
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
+msgstr "Paramètres"
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
-msgstr ""
+#: ipalib/plugins/internal.py:240
+msgid "Search"
+msgstr "Rechercher"
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
-msgstr ""
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
+msgstr "Connecté en tant que"
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
-msgstr ""
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
+msgstr "Attribut"
#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
-msgstr ""
+msgid "Automount Location Settings"
+msgstr "Détail d'un lieu d'automontage"
#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+msgid "Map Type"
msgstr ""
#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+msgid "Direct"
msgstr ""
#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+msgid "Indirect"
msgstr ""
#: ipalib/plugins/internal.py:261
-msgid "Service"
-msgstr ""
+msgid "AA Compromise"
+msgstr "Autorité d'attribut compromise"
+
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
+msgstr "L'affiliation a changé"
#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
-msgstr ""
+msgid "CA Compromise"
+msgstr "AC compromise"
+
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
+msgstr "Certificat bloqué"
+
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
+msgstr "Cessation d'activité"
+
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
+msgstr "Nom usuel"
#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
-msgstr ""
+msgid "Enter the Base64-encoded CSR below"
+msgstr "Copier le CSR encodé en base 64 ci-dessous"
+
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
+msgstr "Expire le"
+
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
+msgstr "Condensés"
+
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr "Émettre un nouveau certificat pour l'objet ${entity} ${primary_key}"
#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
-msgstr ""
+msgid "Issued By"
+msgstr "Émis par"
+
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
+msgstr "Émis le"
+
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
+msgstr "Émis pour"
+
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
+msgstr "Clé compromise"
#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
-msgstr ""
+msgid "MD5 Fingerprint"
+msgstr "Condensé MD5"
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
-msgstr ""
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
+msgstr "Pas de certificat valide"
+
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
+msgstr "Nouveau certificat"
+
+#: ipalib/plugins/internal.py:278
+msgid "Note"
+msgstr "Note"
#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
-msgstr ""
+msgid "Organization"
+msgstr "Organisation"
+
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
+msgstr "Unité organisationnelle"
+
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
+msgstr "Privilège retiré"
+
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
+msgstr "Raison de la révocation"
+
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
+msgstr "Retrait de la LRC"
+
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr "Restaurer un certificat pour ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
+msgstr "Afin de confirmer votre intention de restaurer ce certificat, cliquer sur le bouton \"Restaurer\"."
+
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr "Révoquer un certificat pour l'objet ${entity} ${primary_key}"
#: ipalib/plugins/internal.py:287
-msgid "Access this host"
-msgstr ""
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr "Afin de confirmer votre intention de révoquer ce certificat, sélectionner une raison dans la liste, puis de cliquer sur le bouton \"Révoquer\"."
+
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
+msgstr "Certificat révoqué"
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
-msgstr ""
+msgid "SHA1 Fingerprint"
+msgstr "Condensé SHA1"
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
-msgstr ""
+msgid "Superseded"
+msgstr "Obsolète"
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
-msgstr ""
+msgid "Unspecified"
+msgstr "Non-spécifié"
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
-msgstr ""
+msgid "Valid Certificate Present"
+msgstr "Certificat validé présent"
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
-msgstr ""
+msgid "Validity"
+msgstr "Validité"
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
-msgstr ""
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr "Certificat pour l'objet ${entity} ${primary_key}"
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr ""
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "Données"
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
-msgstr ""
+msgid "Records for DNS Zone"
+msgstr "Enregistrements pour la zone DNS"
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
-msgstr ""
+msgid "DNS Zone Settings"
+msgstr "Paramètres de zone DNS"
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
-msgstr ""
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
+msgstr "État"
#: ipalib/plugins/internal.py:338
-msgid "View"
-msgstr ""
+msgid "Group Settings"
+msgstr "Paramètres de groupe"
-#: ipalib/plugins/internal.py:341
-msgid "Available"
-msgstr ""
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
+msgstr "Ce groupe est-il POSIX ?"
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
-msgstr ""
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
+msgstr "Actif"
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
-msgstr ""
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
+msgstr "N'importe quel système"
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
-msgstr ""
+msgid "Any Service"
+msgstr "N'importe quel service"
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
-msgstr ""
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
+msgstr "N'importe qui"
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
-msgstr ""
+msgid "Accessing"
+msgstr "Accédant à"
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
-msgstr ""
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
+msgstr "Inactif"
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
-msgstr ""
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
+msgstr "État de la règle"
-#: ipalib/plugins/internal.py:351
-msgid "Member"
-msgstr ""
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
+msgstr "Via le service"
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
-msgstr ""
+#: ipalib/plugins/internal.py:350
+msgid "From"
+msgstr "Depuis"
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
-msgstr ""
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
+msgstr "Systèmes et groupes spécifiques"
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
-msgstr ""
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
+msgstr "Services et groupes spécifiques"
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
-msgstr ""
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
+msgstr "Utilisateurs et groupes spécifiques"
-#: ipalib/plugins/internal.py:358
-msgid "Search"
-msgstr ""
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
+msgstr "Qui"
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
-msgstr ""
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
+msgstr "Certificat de système"
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
-msgstr ""
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr "Nom de système"
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
+msgstr "Supprimer la clé, décommissionner"
#: ipalib/plugins/internal.py:378
-msgid "Audit"
-msgstr ""
+msgid "Host Settings"
+msgstr "Paramètres de système"
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
-msgstr ""
+msgid "Enrolled?"
+msgstr "Inscrit ?"
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
-msgstr ""
+msgid "Enrollment"
+msgstr "Inscription"
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
-msgstr ""
+msgid "Fully Qualified Host Name"
+msgstr "Nom de système pleinement qualifié"
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr "Clé Kerberos absente"
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr "Clé Kerberos présente, système provisionné"
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
+msgstr "Paramétrer le mot de passe à usage unique"
+
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
+msgstr "Décommissioner"
+
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
+msgstr "Êtes-vous sûr de vouloir décommissionner ce système ?"
+
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
+msgstr "Décommissionnement de l'objet ${entity}"
+
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
+msgstr "Paramètres du groupe de systèmes"
+
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
+msgstr "Politique des tickets Kerberos"
+
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
+msgstr "Paramètres du netgroup"
+
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
+msgstr "Identité"
+
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
+msgstr "Permission avec spécification de cible invalide"
+
+#: ipalib/plugins/internal.py:410
+msgid "Target"
+msgstr "Cible"
+
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr "Paramètres du privilège"
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr "Politique de gestion des mots de passe"
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr "Paramètres de rôles"
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr "Certificat de service"
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr "Paramètres de service"
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr "Commissionnement"
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr "Êtes-vous sûr de vouloir décommissionner ce service ?"
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Clé Kerberos présente, service commissionné"
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "Groupes"
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr "Commandes"
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr "Autoriser"
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr "Toute commande"
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr "Tout groupe"
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr "Exécute les commandes"
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr "Interdire"
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr "Externe"
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr "Accède ce système"
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr "En tant que"
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr "Commandes et groupes spécifiés"
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr "Groupes spécifiés"
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr "Paramètres de compte"
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr "Paramètres de contact"
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr "Informations employé"
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr "Erreur lors du changement d'état du compte"
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr "Adresse postale"
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr "Informations diverses"
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr "Nouveau mot de passe"
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr "Modification du mot de passe terminée"
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr "Les mots de passe doivent correspondre"
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr "Réinitialiser le mot de passe"
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr "Êtes-vous sûr de vouloir supprimer les entrées sélectionnées ?"
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr "Liens rapides"
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr "Tout sélectionner"
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr "La recherche a retourné plus de résultats que le nombre limite configuré. Affichage des ${counter} premiers résultats."
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr "Tout déselectionner"
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr "Audit"
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr "Automontage"
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr "Contrôlé d'accès basé sur les systèmes (HBAC)"
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr "Serveur IPA"
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr "Politique"
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr "Contrôle d'accès basé sur les rôles (RBAC)"
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr "Sudo"
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
-msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+#: ipalib/plugins/internal.py:510
+msgid "Next"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
-msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr "Le texte ne correspond pas au motif de champ"
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr "Dictionnaire de messages I18N"
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4481,65 +5224,49 @@ msgid ""
"\n"
" Modify per-user policy for user 'admin':\n"
" ipa krbtpolicy-mod admin --maxlife=3600\n"
-msgstr ""
+msgstr "\nPolitique de ticket Kerberos\n\nIl n'existe qu'une unique politique de ticket Kerberos. Cette politique\ndéfinit la durée de vie maximale des tickets, ainsi que l'âge maximal de\nrenouvellement, période pendant laquelle le ticket est renouvelable.\n\nVous pouvez aussi créer une politique par utilisateur en spécifiant\nl'identifiant de l'utilisateur.\n\nPour que les changements à la politique globale s'appliquent, il est \nnécessaire de redémarrer le service KDC, par exemple :\n\nservice krb5kdc restart\n\nLes changements à une politique spécifique à un utilisateur prennent effet\nimmédiatement pour les tickets nouvellement demandés (i.e. quand\nl'utilisateur lance kinit).\n\nEXEMPLES :\n\n Affiche la politique actuelle de ticket Kerberos :\n ipa krbtpolicy-show\n\n Réinitialise la politique aux valeurs par défaut :\n ipa krbtpolicy-reset\n\n Modifie la politique à 8 heures de durée de vie, 1 journée de durée\n maximale de renouvellement :\n ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n\n Affiche la politique actuelle de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-show admin\n\n Réinitialise la politique de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-reset admin\n\n Modifie la politique de ticket Kerberos de l'utilisateur 'admin' :\n ipa krbtpolicy-mod admin --maxlife=3600\n"
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
+msgstr "Politique de ticket Kerberos"
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
-msgstr ""
+msgstr "Administre la politique de ticket d'un utilisateur spécifique"
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
-msgstr ""
+msgstr "Vie max."
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
-msgstr ""
+msgstr "Durée de vie maximale (secondes)"
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
-msgstr ""
+msgstr "Renouvellement max."
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
-msgstr ""
+msgstr "Âge maximale de renouvellement (secondes)"
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4580,209 +5307,252 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
-msgstr ""
+msgstr "Le principal Kerberos %s existe déjà. Utiliser la commande 'ipa user-mod' pour le créer manuellement."
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
+msgstr "Échec à l'ajout de l'utlisateur dans le groupe par défaut. Utiliser la commande 'ipa group-add-member' pour l'ajouter manuellement."
+
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
-msgstr ""
+msgstr "URI LDAP invalide."
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
-msgstr ""
+msgstr "URI LDAP"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
-msgstr ""
+msgstr "URI LDAP du serveur d'annuaire depuis lequel migrer"
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
-msgstr ""
+msgstr "mot de passe de connexion"
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
-msgstr ""
+msgstr "DN de connexion"
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
-msgstr ""
+msgstr "Conteneur d'utilisateurs"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
-msgstr ""
+msgstr "RDN du conteneur d'utilisateurs dans l'annuaire"
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
-msgstr ""
+msgstr "Conteneur de groupes"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
-msgstr ""
+msgstr "RDN du conteneur de groupes dans l'annuaire"
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
-msgstr ""
+msgstr "Classes d'objet utilisateur"
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
-msgstr ""
+msgstr "Liste séparée par des virgules des classes d'objet à utiliser pour la recherche d'entrées utilisateurs dans l'annuaire"
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
-msgstr ""
+msgstr "Classes d'objets groupes"
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr "Liste séparée par des virgules des classes d'objet à utiliser pour la recherche d'entrées groupes dans l'annuaire"
+
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
msgstr ""
-#: ipalib/plugins/migration.py:313
-msgid "LDAP schema"
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:410
+msgid "LDAP schema"
+msgstr "Schéma LDAP"
+
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
+msgstr "Le schéma utilisé sur le serveur LDAP. Les valeurs supportées sont RFC2307 et RFC2307bis. La valeur par défaut est RFC2307bis"
+
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
-msgstr ""
+msgstr "Mode continu. Les erreurs sont rapportées mais le processus continue"
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
-msgstr ""
+msgstr "Liste des objets migrés, catégorisés par type."
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
-msgstr ""
+msgstr "Liste des objets n'ayant pu être migrés, catégorisés par type."
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
-msgstr ""
+msgstr "Faux si le mode de migration est désactivé."
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
-msgstr ""
+msgstr "Liste séparée par des virgules des %s à exclure de la migration"
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
"migration process might be incomplete\n"
-msgstr ""
+msgstr "les résultats de la recherche sur les objets\nà migrer a été tronquée par le server ; le\nprocessus peut donc être incomplet\n"
-#: ipalib/plugins/migration.py:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
-msgstr ""
+msgstr "Mode migration désactivé. Utiliser la commande 'ipa config-mod' pour l'activer."
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
"with clear text passwords. All migrated users need to\n"
"login at https://your.domain/ipa/migration/ before they\n"
"can use their Kerberos accounts."
-msgstr ""
+msgstr "Les mots de passe ont été migré dans leur format chiffré.\nIPA est incapable de créer des clés Kerberos sauf à\nutiliser les mots de passe en clair. Tous les utilisateurs\nmigrés devront se connecter à https://your.domain/ipa/migration/\navant de pouvoir utiliser leur compte Kerberos."
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
-msgstr ""
+msgstr "Conteneur pour %(container)s introuvable"
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
-msgstr ""
+msgstr "\nGreffons divers\n"
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
-msgstr ""
+msgstr "%(count)d variables"
#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
msgid ""
"retrieve and print all attributes from the server. Affects command output."
-msgstr ""
+msgstr "récupère et affiche tous les attributs du serveur. Modifie la sortie de la commande."
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
-msgstr ""
+msgstr "Nombre total de variables d'environnement (>= count)"
#: ipalib/plugins/misc.py:66
msgid "Number of variables returned (<= total)"
-msgstr ""
+msgstr "Nombre de variables renvoyées (<= total)"
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d greffon chargé"
+msgstr[1] "%(count)d greffons chargés"
#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
-msgstr ""
+msgstr "Nombre de greffons chargés"
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4806,107 +5576,106 @@ msgid ""
"\n"
" Delete a netgroup:\n"
" ipa netgroup-del admins\n"
-msgstr ""
+msgstr "\nNetgroups\n\nUn netgroup est un groupe utilisé pour la vérification de permissions. Il\npeut contenir à la fois des utilisateurs et des noms de systèmes.\n\nEXEMPLES :\n\n Ajouter un nouveau netgroup :\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Ajouter des membres au netgroup :\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Retirer un membre du netgroup :\n ipa netgroup-remove-member --users=tuser2 admins\n\n Afficher les informations sur un netgroup :\n ipa netgroup-show admins\n\n Supprimer un netgroup :\n ipa netgroup-del admins\n"
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
+msgstr "Système membre"
+
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
+msgstr "Netgroups"
+
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
-msgstr ""
+msgstr "Nom de netgroup"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
-msgstr ""
+msgstr "Description de netgroup"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
-msgstr ""
+msgstr "Nom de domaine NIS"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
-msgstr ""
+msgstr "ID unique IPA"
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
-msgstr ""
+msgstr "Netgroup \"%(value)s\" ajouté"
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
-msgid "Deleted netgroup \"%(value)s\""
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:176
+#, python-format
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Netgroup \"%(value)s\" supprimé"
+
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
-msgstr ""
+msgstr "Netgroup \"%(value)s\" supprimé"
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d netgroup correspondant"
+msgstr[1] "%(count)d netgroups correspondants"
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4925,35 +5694,18 @@ msgid ""
"\n"
" To change another user's password:\n"
" ipa passwd tuser1\n"
-msgstr ""
-
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
+msgstr "\nDéfinir le mot de passe d'un utilisateur\n\nSi une personne autre que l'utilisateur change le mot de passe de cet\nutilisateur (par exemple en cas de réinitialisation par les services\nd'assistance technique), le mot de passe devra être modifié la première\nfois qu'il sera utilisé, afin que l'utilisateur soit le seul à connaître\nson mot de passe.\n\nLa politique de mot de passe de IPA contrôle la fréquence de changement\ndes mots de passe, les prérequis quant à leur résistance, et la taille\nde l'historique des mots de passe.\n\nEXEMPLES :\n\n Modifier son mot de passe :\n ipa passwd\n\n Modifier le mot de passe d'un utilisateur :\n ipa passwd tuser1\n"
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
-msgstr ""
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
+msgstr "Mot de passe modifié for \"%(value)s\""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5007,138 +5759,103 @@ msgid ""
"\n"
" Add a permission that grants the ability to manage group membership:\n"
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
-msgstr ""
+msgstr "\nPermissions\n\nUne permission permet une définition fine des délégations de droits. Une\npermission est une forme lisible par un humain des règles ou instructions\nde contrôle d'accès (ACI) de 389-ds. Une permission accorde le droit\nd'effectuer une tâche spécifique comme la création d'un utilisateur, la\nmodification d'un groupe, etc.\n\nUne permission ne peut contenir d'autres permissions.\n\n* Une permission accorde un droit en lecture, écriture, ajout ou supression.\n* Un privilège combine des permissions similaires (par exemple toutes les\n permissions requises pour la création d'un utilisateur).\n* Un rôle accorde un jeu de privilèges à des utilisateurs, des groupes, des\n systèmes, ou à des groupes de systèmes.\n\nUne permission est constitués des éléments suivants :\n\n1. Le nom de la permission.\n2. La cible de la permission.\n3. Les droits accordés par la permission.\n\nLes droits définissent quelles opérations sont autorisées, et\npeuvent être une ou plusieurs parmi :\n1. write - écrire un ou plusieurs attributs\n2. read - lire un ou plusieurs attributs\n3. add - ajouter une nouvelle entrée dans l'arbre\n4. delete - supprimer une entrée existante\n5. all - toutes les permissions sont accordées\n\nLa permission read est accordée par défaut sur la plupart des\nattributs, elle ne sera donc utilisée que peu souvent.\n\nNotez la distinction entre attributs and entrées. Les permissions sont\nindépendantes, donc la capacité de créer un utilisateur ne signifie pas\nque l'utilisateur sera modifiable.\n\nIl existe plusieurs sortes de cibles autorisées dans une permission :\n1. type: un type d'objet (user, group, etc.).\n2. memberof: un membre d'un groupe ou d'un groupe de systèmes\n3. filter: un filtre LDAP\n4. subtree: un filtre LDAP spécifiant une branche du DIT LDAP. Ceci est un\n sur-ensemble de la cible 'type'.\n5. targetgroup: accorde l'accès permettant de modifier un groupe spécifique\n (comme le fait d'accorder les droits en modification des membres d'un groupe)\n\nEXEMPLES :\n\n Ajouter une permission accordant la création d'utilisateurs :\n ipa permission-add --type=user --permissions=add \"Add Users\"\n\n Ajouter une permission accordant la capacité de gérer les membres d'un groupe :\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
+msgstr "Type de permission"
+
+#: ipalib/plugins/permission.py:94
+msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
-msgstr ""
+msgstr "Nom de permission"
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
-msgstr ""
+msgstr "Liste séparée par des virgules des permissions à accorder (read, write, add, delete, all)"
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
-msgstr ""
+msgstr "Type d'objet IPA (user, group, host, hostgroup, service, netgroup, dns)"
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
-msgstr ""
+msgstr "Membre du groupe"
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
-msgstr ""
+msgstr "Membres cible d'un groupe"
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
-msgstr ""
+msgstr "Branche sur laquelle appliquer les permissions"
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
-msgstr ""
+msgstr "Groupe d'utilisateur sur lequel appliquer les permissions"
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
-msgstr ""
+msgstr "Permission \"%(value)s\" ajoutée"
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
-msgstr ""
+msgstr "Permission \"%(value)s\" supprimée"
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
-msgstr ""
+msgstr "Permission \"%(value)s\" modifiée"
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d permission correspondante"
+msgstr[1] "%(count)d permissions correspondantes"
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
-msgstr ""
-
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
+msgstr "\nSonder le serveur IPA distant\n"
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5158,34 +5875,21 @@ msgid ""
"For more information on anonymous pkinit see:\n"
"\n"
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-msgstr ""
+msgstr "\nOptions Kerberos pkinit\n\nActive ou désactive l'opération pkinit anonyme utilisant\nle principal WELLKNOWN/ANONYMOUS@REALM. Le serveur doit avoir\nété installé avec le support pkinit.\n\nEXEMPLES :\n\n Active le pkinit anonyme :\n ipa pkinit-anonymous enable\n\n Désactive le pkinit anonyme :\n ipa pkinit-anonymous disable\n\nPour plus d'informations sur l'opération pkinit anonyme, cf. :\n\nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
-msgstr ""
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
+msgstr "pkinit"
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
+msgstr "PKINIT"
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
-msgstr ""
+msgid "Enable or Disable Anonymous PKINIT."
+msgstr "Active ou désactive le pkinit anonyme"
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5206,117 +5910,95 @@ msgid ""
"A privilege may not contain other privileges.\n"
"\n"
"See role and permission for additional information.\n"
+msgstr "\nPrivilèges\n\nUn privilège combine les permissions en tâches logiques. Une permission\nfournit les droits de réaliser une tâche unique. Certaines opérations IPA\nrequièrent une combinaison de plusieurs permissions. Un privilège est la\ncombinaison de ces permissions pour réaliser une tâche.\n\nPar example, la création d'utilisateur requiert les permissions suivantes :\n * Création d'une nouvelle entrée\n * Réinitialisation du mot de passe\n * Ajout du nouvel utilisateur au groupe d'utilisateurs par défaut de IPA\n\nLa combinaison de ces trois tâches de bas niveau en privilège nommé \"Add User\"\nfacilite la gestion des rôles.\n\nUn privilège ne peut contenir d'autres privilèges.\n\nReportez-vous la gestion des rôles et des permissions pour plus d'informations.\n"
+
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
+msgstr "Privilèges"
+
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
-msgstr ""
+msgstr "Nom du privilège"
#: ipalib/plugins/privilege.py:77
msgid "Privilege description"
-msgstr ""
+msgstr "Description du privilege"
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
-msgstr ""
+msgstr "Privilège \"%(value)s\" ajouté"
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
-msgstr ""
+msgstr "Privilège \"%(value)s\" supprimé"
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
-msgstr ""
+msgstr "Privilège \"%(value)s\" supprimé"
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
+msgstr[0] "%(count)d privilège correspondant"
+msgstr[1] "%(count)d privilèges correspondants"
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
-msgstr ""
+msgstr "Nombre de permissions ajoutées"
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
-msgstr ""
+msgstr "Nombre de permissions supprimées"
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5359,166 +6041,146 @@ msgid ""
"\n"
" Modify a group password policy:\n"
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
-msgstr ""
+msgstr "\nPolitique de mots de passe\n\nUne politique de mots de passe permet de définir des limites sur les mots\nde passe dans IPA, comme leur durée de vie, minimale ou maximale, la taille\nde l'historique de mots de passe, le nombre de classes de caractères requises\n(pour la résistance à force brute) et la longueur minimale du mot de passe.\n\nPar défaut, une politique unique et globale est définie pour tous les\nutilisateurs. Vous pouvez aussi créer une politique à appliquer à un groupe.\nChaque utilisateur est l'objet d'une seule politique de mots de passe, par\nun groupe ou par la politique globale. Une politique de groupe remplace\ntotalement la politique globale ; elle n'est pas la somme de la politique\nglobale plus quelques paramètres spécifiques.\n\nChaque politique de groupe requiert un paramètre de priorité unique. Si un\nutilisateur appartient à plusieurs groupes ayant des politiques différentes,\nla priorité sera utilisée afin de déterminer quelle politique appliquer. Une\nvaleur inférieure indique une priorité supérieure pour la politique de mots\nde passe.\nLes politiques de mots de passe sont automatiquement supprimées lorsque les\ngroupes auxquels elles sont associées sont supprimés.\n\nEXEMPLES :\n\n Modifier la politique globale :\n ipa pwpolicy-mod --minlength=10\n\n Ajouter une nouvelle politique de groupe :\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Afficher la politique de mots de passe globale :\n ipa pwpolicy-show\n\n Afficher une politique de mots de passe de groupe :\n ipa pwpolicy-show localadmins\n\n Afficher la politique applicable à un utilisateur :\n ipa pwpolicy-show --user=tuser1\n\n Modifier une politique de mots de passe de groupe :\n ipa pwpolicy-mod --minclasses=2 localadmins\n"
-#: ipalib/plugins/pwpolicy.py:87
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
-msgstr ""
+msgstr "la priorité doit être une valeur unique (%(prio)d déjà utilisée par %(gname)s)"
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
-msgid "Max failures"
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
#: ipalib/plugins/pwpolicy.py:202
+msgid "Max failures"
+msgstr "Nombre maximal d'échecs"
+
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
-msgstr ""
+msgstr "Échec consécutif avant verrouillage"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
-msgstr ""
+msgstr "Intervalle de réinitialisation sur échec"
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
-msgstr ""
+msgstr "Période après laquelle le compteur d'échec sera réinitialisé (secondes)"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
-msgstr ""
+msgstr "Durée de verrouillage"
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
+msgstr "Période pendant laquelle le verrouillage est actif (secondes)"
+
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
-msgstr ""
+msgstr "Groupe"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
-msgstr ""
+msgstr "Gérer la politique de mots de passe d'un groupe spécifique"
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
-msgstr ""
+msgstr "Durée de vie maximale (jours)"
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
-msgstr ""
+msgstr "Durée de vie maximale d'un mot de passe (en jours)"
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
-msgstr ""
+msgstr "Durée de vie minimale (jours)"
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
-msgstr ""
+msgstr "Durée de vie maximale d'un mot de passe (en jours)"
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
-msgstr ""
+msgstr "Taille de l'historique"
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
-msgstr ""
+msgstr "Taille de l'historique des mots de passe"
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
-msgstr ""
+msgstr "Classes de caractères"
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
-msgstr ""
+msgstr "Nombre minimal de classes de caractères"
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
-msgstr ""
+msgstr "Longueur minimale"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
-msgstr ""
+msgstr "Taille minimale d'un mot de passe"
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
-msgstr ""
+msgstr "Priorité"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
-msgstr ""
+msgstr "Priorité de la polique (une valeur élevé indique une priorité basse)"
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
-msgstr ""
+msgstr "La durée de vie maximale du mot de passe doit être supérieure au minimum."
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
-msgstr ""
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
+msgstr "la priorité ne peut être définie sur la politique globale"
#: ipalib/plugins/pwpolicy.py:428
-msgid "User"
+msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
+msgid "User"
+msgstr "Utilisateur"
+
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
-msgstr ""
+msgstr "Afficher la politique effective sur un utilisateur spécifique"
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5553,117 +6215,95 @@ msgid ""
"\n"
" The result of this is that any users in the group 'useradmins' can\n"
" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr "\nRôles\n\nLes rôles sont utilisés pour les délégations fines. Une permission accorde\nla capacité d'effectuer une tâche de bas niveau (ajouter un utilisateur,\nmodifier un groupe, etc.). Un privilège combine une ou plusieurs permissions\nen une abstraction de plus haut niveau comme useradmin. Un administrateur\nd'utilisateur (useradmin) sera capable d'ajouter, modifier et supprimer des\nutilisateurs.\n\nLes privilèges sont attribués aux Rôles.\n\nPeuvent être membres d'un rôle des utilisateurs, des groupes, des systèmes\net des groupes de systèmes.\n\nLes rôles ne peuvent contenir d'autres rôles.\n\nEXEMPLES :\n\n Ajouter un nouveau rôle :\n ipa role-add --desc=\"Junior-level admin\" junioradmin\n\n Ajouter des privilèges à ce rôle :\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 junioradmin\n\n Ajouter un groupe d'utilisateurs à ce rôle :\n ipa group-add --desc=\"User admins\" useradmins\n ipa role-add-member --groups=useradmins junioradmin\n\n Afficher les informations sur un rôle :\n ipa role-show junioradmin\n\n Le résultat des commandes ci-dessus est que le groupe 'junioradmin' peut\n ajouter des utilisateurs, réinitialiser des mots de passe, ou ajouter\n un utilisateur au groupe d'utilisateur par défaut de IPA.\n"
+
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:67
+msgid "roles"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:82
msgid "Role"
-msgstr ""
+msgstr "Rôle"
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
-msgstr ""
+msgstr "Nom du rôle"
#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
-msgstr ""
+msgstr "Description de ce rôle"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
-msgstr ""
+msgstr "Rôle \"%(value)s\" ajouté"
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
-msgstr ""
+msgstr "Rôle \"%(value)s\" supprimé"
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
-msgstr ""
+msgstr "Rôle \"%(value)s\" modifié"
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d rôle correspondant"
+msgstr[1] "%(count)d rôles correspondants"
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
-msgstr ""
+msgstr "Nombre de privilèges ajoutés"
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
-msgstr ""
+msgstr "Nombre de privilèges retirés"
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5689,91 +6329,76 @@ msgid ""
"\n"
" Delete a rule:\n"
" ipa selfservice-del \"Users manage their own address\"\n"
-msgstr ""
+msgstr "\nPermissions self-service\n\nUne permission permet la délégation fine de permissions. Les règles ou\ninstructions de contrôle d'accès (ACI) accorde la permission d'effectuer\ndes tâches spécifiques comme ajouter un utilisateur, modifier un groupe, etc.\n\nUne permission self-service définit ce qu'un objet peut modifier dans sa\npropre entrée.\n\n\nEXEMPLES :\n\n Ajouter une règle self-service permettant aux utilisateurs de gérer leur adresse :\n ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n\n Tous les attributs doivent être mentionnés lors de l'utilisation de listes d'attributs,\n y compris ceux déjà existants. Ajouter telephoneNumber à la liste :\n ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n\n Afficher la règle modifiée :\n ipa selfservice-show \"Users manage their own address\"\n\n Supprimer une règle :\n ipa selfservice-del \"Users manage their own address\"\n"
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
-msgstr ""
+msgstr "Permission self-service '%(permission)s' introuvable"
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
-msgstr ""
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
+msgstr "permission self-service"
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr "permissions self-service"
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
-msgstr ""
+msgstr "Permissions Self-Service"
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
-msgstr ""
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
+msgstr "Permission Self-Service"
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
-msgstr ""
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
+msgstr "Nom de la permission self-service"
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr "Ajouter une nouvelle permission self-service."
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
-msgstr ""
+msgstr "Permission self-service \"%(value)s\" ajoutée"
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
-msgstr ""
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
+msgstr "Supprimer une permission self-service."
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
-msgstr ""
+msgstr "Permission selfservice \"%(value)s\" supprimée"
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
-msgstr ""
+msgid "Modify a self-service permission."
+msgstr "Modifier une permission self-service."
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
-msgstr ""
+msgstr "Permission selfservice \"%(value)s\" modifiée"
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
-msgstr ""
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
+msgstr "Rechercher des permissions self-service."
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d permission self-service correspondante"
+msgstr[1] "%(count)d permissions self-service correspondantes"
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
-msgstr ""
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
+msgstr "Afficher les informations sur une permission self-service."
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5824,120 +6449,84 @@ msgid ""
" Generate and retrieve a keytab for an IPA service:\n"
" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n"
"\n"
-msgstr ""
+msgstr "\nServices\n\nUn service IPA représente un service tournant sur un système.\nL'enregistrement de service IPA peut stocker un principal Kerberos,\nun certificat SSL, ou les deux.\n\nUn service IPA peut être directement administré depuis la machine,\npourvu que la machine ait reçu les permissions adéquates. Cela est\naussi vrai pour les machines autres que celles associées au service.\nPar exemple, demander un certificat SSL en utilisant les informations de\ncrédit du principal de service du système sur le système. Pour administrer\nle service à l'aide des données de crédit, il faut lancer kinit en tant\nque le système :\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nLe fait d'ajouter un service IPA permet au service associé de demander un\ncertificat SSL ou un keytab. Ces opérations doivent être réalisées\nséparément, elles ne sont pas le résultat de l'ajout du service.\n\nSeul la partie publique d'un certificat est stockée dans l'enregistrement\nde service, la clé privée n'est pas stockée.\n\nEXEMPLES :\n\n Ajouter un nouveau service IPA :\n ipa service-add HTTP/web.example.com\n\n Autoriser un système à gérer le certificat du service IPA :\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n ipa role-add-member --hosts=web.example.com certadmin\n\n Supprimer un service IPA :\n ipa service-del HTTP/web.example.com\n\n Rechercher tous les services IPA associés à un système :\n ipa service-find web.example.com\n\n Rechercher tous les services HTTP :\n ipa service-find HTTP\n\n Disable the service Kerberos key and SSL certificate:\n ipa service-disable HTTP/web.example.com\n\n Request a certificate for an IPA service:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Generate and retrieve a keytab for an IPA service:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n"
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
-msgstr ""
+msgstr "Principal du service"
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
-msgstr ""
+msgstr "Service \"%(value)s\" ajouté"
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
-msgstr ""
+msgstr "forcer le nom du principal même si absent du DNS"
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
-msgstr ""
+msgstr "Service \"%(value)s\" supprimé"
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
-msgstr ""
+msgstr "Service \"%(value)s\" modifié"
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d service correspondant"
+msgstr[1] "%(count)d services correspondants"
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
-msgstr ""
+msgstr "Service \"%(value)s\" désactivé"
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5952,191 +6541,180 @@ msgid ""
" Remove a command\n"
" ipa sudocmd-del /usr/bin/less\n"
"\n"
+msgstr "\nCommandes sudo\n\nCommandes utilisées en tant que briques de base pour sudo\n\nEXEMPLES :\n\n Ajouter une nouvelle commande\n ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n\n Supprimer une commande\n ipa sudocmd-del /usr/bin/less\n\n"
+
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
-msgid "Sudo Commands"
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:65
+msgid "Sudo Commands"
+msgstr "Commandes sudo"
+
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
-msgstr ""
+msgstr "Commande sudo"
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
-msgstr ""
+msgstr "Description de la commande"
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
-msgid "Sudo Command Group"
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
+msgid "Sudo Command Group"
+msgstr "Groupe de commandes sudo"
+
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6146,223 +6724,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
-msgid "Sudo Rule"
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:98
-msgid "Command category"
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
-msgid "Command category the rule applies to"
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:93
+msgid "Sudo Rule"
+msgstr "Règle sudo"
+
+#: ipalib/plugins/sudorule.py:123
+msgid "Command category"
+msgstr "Catégorie de commande"
+
+#: ipalib/plugins/sudorule.py:124
+msgid "Command category the rule applies to"
+msgstr "Catégorie de commande à laquelle la règle s'applique"
+
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
-msgid "Sudo Allow Commands"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:156
+msgid "Sudo Allow Commands"
+msgstr "Commandes sudo allow"
+
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
+msgstr "Commande sudo deny"
+
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
-msgid "External User"
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
-msgid "RunAs External User"
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+msgid "External User"
+msgstr "Utilisateur externe"
+
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:188
+msgid "RunAs External User"
+msgstr "Lancer en tant que l'utilisateur externe"
+
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
+msgstr "Utilisateur externe"
+
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
+msgstr "Option sudo"
+
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6401,237 +6998,215 @@ msgid ""
"\n"
" Delete a user:\n"
" ipa user-del tuser1\n"
+msgstr "\nUtilisateurs\n\nAdministration des utilisateurs. Tous les utilisateurs sont de type POSIX.\n\nIPA permet l'utilisation d'un grand nombre de formats de noms d'utilisateurs.\nCertaines restrictions peuvent cependant s'appliquer à un environnement\nparticulier. À titre d'exemple, les noms d'utilisateurs commençant par\nun chiffre ou ceux excédant une certaine longueur peuvent poser souci à\ncertains systèmes UNIX.\nUtiliser la commande 'ipa config-mod' afin de modifier le format de nom\nautorisé par les outils IPA.\n\nLa désactivation d'un compte utilisateur lui interdit d'obtenir de\nnouvelles informations de crédit Kerberos. Elle n'invalide pas les crédits\ndéjà obtenus.\n\nL'administration des mots de passe ne fait pas partie de ce module. Pour\nplus d'informations sur ce sujet, cf. : ipa help passwd\n\nEXEMPLES :\n\n Ajouter un nouvel utilisateur :\n ipa user-add --first=Tim --last=User --password tuser1\n\n Trouver tous les utilisateurs dont l'entrée contient la chaîne \"Tim\":\n ipa user-find Tim\n\n Trouver tous les utilisateurs ayant \"Tim\" comme prénom :\n ipa user-find --first=Tim\n\n Désactiver un compte utilisateur :\n ipa user-disable tuser1\n\n Activer un compte utilisateur :\n ipa user-enable tuser1\n\n Supprimer un utilisateur :\n ipa user-del tuser1\n"
+
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:140
+msgid "user"
msgstr ""
-#: ipalib/plugins/user.py:116
-msgid "User login"
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:177
+msgid "User login"
+msgstr "Identifiant de connexion"
+
+#: ipalib/plugins/user.py:184
msgid "First name"
-msgstr ""
+msgstr "Prénom"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
-msgstr ""
+msgstr "Nom"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
-msgstr ""
+msgstr "Nom complet"
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
-msgstr ""
+msgstr "Nom affiché"
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
-msgstr ""
+msgstr "Initiales"
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
-msgstr ""
+msgstr "Répertoire utilisateur"
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
-msgstr ""
+msgstr "Champ GECOS"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
-msgstr ""
+msgstr "Shell de connexion"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
-msgstr ""
+msgstr "Principal Kerberos"
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
-msgstr ""
+msgstr "Adresse courriel"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
-msgstr ""
+msgstr "Invite de modification du mot de passe"
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
-msgstr ""
+msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
-msgstr ""
+msgstr "Numéro d'identifiant utilisateur (le système en assignera un si non spécifié)"
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
-msgstr ""
+msgstr "Numéro d'identifiant de groupe"
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
-msgstr ""
+msgstr "Adresse"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
-msgstr ""
+msgstr "Ville"
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
-msgstr ""
+msgstr "État/province"
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
-msgstr ""
+msgstr "Code postal"
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
-msgstr ""
+msgstr "Numéro de téléphone"
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
-msgstr ""
+msgstr "Numéro de téléphone mobile"
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
-msgstr ""
+msgstr "Numéro de téléavertisseur"
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
-msgstr ""
+msgstr "Numéro de fax"
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
-msgstr ""
+msgstr "Unité organisationnelle"
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
-msgstr ""
+msgstr "Titre de poste"
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
-msgstr ""
+msgstr "Responsable"
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
-msgstr ""
+msgstr "Carte d'identité"
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
-msgstr ""
-
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
+msgstr "Compte désactivé"
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
-msgstr ""
+msgstr "responsable %(manager)s introuvable"
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
-msgstr ""
+msgstr "Utilisateur \"%(value)s\" ajouté"
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
-msgstr ""
+msgstr "Ne pas créer de groupe privé"
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
-msgstr ""
+msgstr "doit contenir au plus %(len)d caractères"
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
-msgstr ""
+msgstr "Utilisateur \"%(value)s\" supprimé"
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
-msgstr ""
+msgstr "Utilisateur \"%(value)s\" modifié"
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
-msgstr ""
+msgstr "Moi-même"
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
-msgstr ""
+msgstr "Afficher l'enregistrement utilisateur pour le principal Kerberos actuel"
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d utilisateur correspondant"
+msgstr[1] "%(count)d utilisateurs correspondants"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
-msgstr ""
+msgstr "Compte utilisateur \"%(value)s\" désactivé"
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
-msgstr ""
+msgstr "Compte utilisateur \"%(value)s\" activé"
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6639,523 +7214,84 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
+" an administrator."
msgstr ""
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
-msgstr ""
+msgid "Unlocked account \"%(value)s\""
+msgstr "Compte utilisateur \"%(value)s\" déverrouillé"
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
-msgstr ""
+msgid "Permission denied: %(file)s"
+msgstr "Autorisation refusée : %(file)s"
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
-msgstr ""
+msgstr "L'Émetteur \"%(issuer)s\" ne correspond pas à l'émetteur attendu"
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
-msgstr ""
+msgstr "Impossible de communiquer avec le CMS (%s)"
#: ipaserver/plugins/join.py:54
msgid "The hostname to register as"
-msgstr ""
+msgstr "Le nom de système sous lequel s'enregistrer"
#: ipaserver/plugins/join.py:62
msgid "The IPA realm"
-msgstr ""
+msgstr "Le domaine IPA"
#: ipaserver/plugins/join.py:68
msgid "Hardware platform of the host (e.g. Lenovo T61)"
-msgstr ""
+msgstr "Plate-forme matérielle du système (par ex. Lenovo T61)"
#: ipaserver/plugins/join.py:72
msgid "Operating System and version of the host (e.g. Fedora 9)"
+msgstr "Système d'exploitation et version du système (par ex. Fedora 9)"
+
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
msgstr ""
#: ipaserver/plugins/selfsign.py:99
@@ -7163,652 +7299,652 @@ msgstr ""
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
+msgstr "Le sujet de la demande \"%(request_subject)s\" ne correspondant pas à la forme \"%(subject_base)s\""
#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
-msgstr ""
+msgstr "impossible de décoder le csr : %s"
#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
-msgstr ""
+msgstr "opération fichier"
#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
-msgstr ""
+msgstr "impossible d'obtenir le nouveau numéro de série"
#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
-msgstr ""
+msgstr "échec de certutil"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
-msgstr ""
+msgstr "impossible d'ouvrir le fichier de configuration %s\n"
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
-msgstr ""
+msgstr "impossible d'utiliser stat() sur le fichier de configuration %s\n"
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
-msgstr ""
+msgstr "mémoire saturée\n"
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
+msgstr "erreur en lecture\n"
+
+#: ipa-client/ipa-getkeytab.c:85
+#, c-format
+msgid "Kerberos context initialization failed: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:96
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
-msgstr ""
+msgstr "Pas d'enctypes préféré sur le système ?!\n"
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
-msgstr ""
+msgstr "Mémoire saturée !?\n"
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
-msgstr ""
+msgstr "Mémoire saturée\n"
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
-msgstr ""
+msgstr "Avertissement, type de chiffrement inconnu : [%s]\n"
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
-msgstr ""
+msgstr "Avertissement, type de sel inconnu : [%s]\n"
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
-msgstr ""
+msgstr "Échec de comparaison enctype !\n"
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
-msgstr ""
+msgstr "Échec à la création de la clé aléatoire !\n"
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
-msgstr ""
+msgstr "Échec à la création de la clé !\n"
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
-msgstr ""
+msgstr "Mémoire saturée !\n"
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
-msgstr ""
+msgstr "Type de sel inconnu ou mauvais (%d)!\n"
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
-msgstr ""
+msgstr "Aucune clé acceptée par le KDC\n"
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
-msgstr ""
+msgstr "Mémoire saturée\n"
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
-msgstr ""
+msgstr "Mémoire saturée !\n"
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
-msgstr ""
+msgstr "Échec à la création du contrôle !\n"
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
+msgstr "Impossible d'initialiser la bibliothèque LDAP !\n"
+
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
-msgstr ""
+msgstr "Impossible de définir les options LDAP !\n"
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
-msgstr ""
+msgstr "Échec de la connexion simple\n"
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
-msgstr ""
+msgstr "Échec de la connexion SASL !\n"
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
-msgstr ""
+msgstr "Échec de l'opération %s !\n"
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
-msgstr ""
+msgstr "Absence de contrôle dans la réponse !\n"
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
-msgstr ""
+msgstr "Échec de ber_init(), contrôle invalide ?!\n"
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
-msgstr ""
+msgstr "Échec de ber_scanf(), contrôle invalide ?!\n"
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
-msgstr ""
+msgstr "Nouveau mot de passe du principal"
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
-msgstr ""
+msgstr "Vérfier le mot de passe du principal"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
-msgstr ""
+msgstr "Affiche aussi peu que possible"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
-msgstr ""
+msgstr "N'affiche que les erreurs"
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
-msgstr ""
+msgstr "Contacter ce serveur KDC spécifique"
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
-msgstr ""
+msgstr "Nom de serveur"
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
-msgstr ""
+msgstr "Le principal pour lequel obtenir le (par ex: ftp/ftp.example.com@EXAMPLE.COM)"
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
-msgstr ""
+msgstr "Nom de principal de service Kerberos"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
-msgstr ""
+msgstr "Fichier dans lequel stocker l'information de keytab"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
-msgstr ""
+msgstr "Nom de fichier keytab"
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
-msgstr ""
+msgstr "Type de chiffrement à demander"
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
-msgstr ""
+msgstr "Liste séparée par des virgules des types de chiffrement"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
-msgstr ""
+msgstr "Affiche la liste des types de chiffrement autorisés, et sort."
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
-msgstr ""
+msgstr "Type de chiffrements autorisés"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
-msgstr ""
+msgstr "Demande un mot de passe non aléatoire à utiliser pour le principal"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
-msgstr ""
+msgstr "DN LDAP"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
-msgstr ""
+msgstr "DN à utiliser pour la connexion en cas de non-utilisation de kerberos"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
-msgstr ""
+msgstr "Mot de passe LDAP"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
-msgstr ""
+msgstr "mot de passe à utiliser pour la connexion en cas de non-utilisation de kerberos"
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Échec de l'initialisation du contexte Kerberos\n"
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
-msgstr ""
+msgstr "Type de chiffrements supportés :\n"
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
-msgstr ""
+msgstr "Avertissement : échec de conversion de type (#%d)\n"
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
-msgstr ""
+msgstr "Mot de passe de connexion requis lors de l'utilisation d'un DN de connexion.\n"
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
-msgstr ""
+msgstr "Avertissement : les types de sels ne sont pas utilisés avec les mots de passe aléatoires (cf. option -P)\n"
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
-msgstr ""
+msgstr "Nom de principal de service invalide\n"
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
-msgstr ""
+msgstr "Cache de crédits Kerberos introuvable. Possédez-vous un ticket Kerberos ?\n"
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
-msgstr ""
+msgstr "Principal d'utilisateur Kerberos introuvable. Possédez-vous un cache de crédits Kerberos ?\n"
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
-msgstr ""
+msgstr "Échec à l'ouverture du keytab\n"
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
-msgstr ""
+msgstr "Échec de création du contenu de la clé\n"
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
-msgstr ""
+msgstr "Échec lors de l'ajout de la clé au keytab\n"
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
-msgstr ""
+msgstr "Échec à la fermeture du keytab\n"
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
-msgstr ""
+msgstr "Récupération du keytab et stockage avec succès dans : %s\n"
#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
-msgstr ""
+msgstr "Inscription de ce système au domaine IPA interdite.\n"
#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
-msgstr ""
+msgstr "Pas de permissions en écriture sur le fichier keytab '%s'\n"
#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
-msgstr ""
+msgstr "Échec de access() sur %s : errno = %d\n"
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
-msgstr ""
+msgstr "Mémoire saturée !"
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
-msgstr ""
+msgstr "Impossible d'établir la connexion au serveur LDAP : %s"
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
-msgstr ""
+msgstr "Impossible d'activer SSL dans LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
-msgstr ""
+msgstr "Impossible de positionner la version LDAP\n"
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
-msgstr ""
+msgstr "Échec de bind : %s\n"
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
-msgstr ""
+msgstr "Échec de la recherche de %s sur rootdse avec une erreur %d"
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
-msgstr ""
+msgstr "Pas de valeurs pour %s"
-#: ipa-client/ipa-join.c:322
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:390
-#, c-format
-msgid "Unable to determine root DN of %s\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
-msgstr ""
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgstr "Échec de la recherche de ipaCertificateSubjectBase avec une erreur %d"
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
-msgstr ""
+msgid "Unable to determine root DN of %s\n"
+msgstr "Impossible de déterminer le DN racine de %s\n"
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
-msgstr ""
+msgid "Incorrect password.\n"
+msgstr "Mot de passe incorrect.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
-msgstr ""
+msgid "Unable to determine certificate subject of %s\n"
+msgstr "Impossible de déterminer le sujet du certificat de %s\n"
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
-msgstr ""
+msgid "principal not found in XML-RPC response\n"
+msgstr "principal introuvable dans la réponse XML-RPC\n"
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
+msgstr "Système déjà inscrit.\n"
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
-msgstr ""
+msgstr "Impossible de déterminer le serveur IPA depuis %s\n"
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
-msgstr ""
+msgstr "Le nom du système doit être pleinement qualifié : %s\n"
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
-msgstr ""
+msgstr "Impossible d'inscrire le système : échec à l'initialisation du contexte Kerberos\n"
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
-msgstr ""
+msgstr "Erreur à la résolution du keytab : %s.\n"
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
-msgstr ""
+msgstr "Erreur lors de l'obtention du domaine Kerberos par défaut : %s.\n"
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
-msgstr ""
+msgstr "Erreur lors de l'analyse de \"%s\": %s.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
-msgstr ""
+msgstr "Impossible d'obtenir les crédits initiaux : %s.\n"
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
-msgstr ""
+msgstr "Impossible de créer le cache de crédits Kerberos\n"
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
-msgstr ""
+msgstr "Erreur lors du stockage des crédits dans le cache : %s.\n"
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
-msgstr ""
+msgstr "Désinscription réussie.\n"
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
-msgstr ""
+msgstr "Échec de la désinscription.\n"
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
-msgstr ""
+msgstr "résultat de la réponse XML-RPC introuvable\n"
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
-msgstr ""
+msgstr "Impossible d'inscrire le système : cache de crédit Kerberos introuvable\n"
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
-msgstr ""
+msgstr "Impossible d'inscrire le système : Principal d'utilisateur Kerberos introuvable et mot de passe non fourni.\n"
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
-msgstr ""
+msgstr "echec de fork()\n"
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
-msgstr ""
+msgstr "ipa-getkeytab introuvable\n"
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
-msgstr ""
+msgstr "ipa-getkeytab a des permissions incorrectes ?\n"
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
-msgstr ""
+msgstr "échec de l'exécution de ipa-getkeytab, errno %d\n"
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
-msgstr ""
+msgstr "processus fils terminé avec %d\n"
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
-msgstr ""
+msgstr "Le sujet de base du certificat est : %s\n"
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
-msgstr ""
+msgstr "Affiche la sortie XML-RPC brute en mode GSSAPI"
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
-msgstr ""
+msgstr "Mode silencieux. Seules les erreurs sont affichées."
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
-msgstr ""
+msgstr "Désinscrire ce système du serveur IPA"
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
-msgstr ""
+msgstr "Nom de système de ce serveur"
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
-msgstr ""
+msgstr "non de système"
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
-msgstr ""
+msgstr "Serveur IPA à utiliser"
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
-msgstr ""
+msgstr "Spécifie où stocker l'information keytab."
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
-msgstr ""
+msgstr "nom de fichier"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
-msgstr ""
+msgstr "Mot de passe LDAP (hors utilisation de Kerberos)"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
+msgstr "mot de passe"
+
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
-msgstr ""
+msgstr "Impossible d'analyser le nom du principal\n"
#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
-msgstr ""
+msgstr "krb5_parse_name %d: %s\n"
#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
-msgstr ""
+msgstr "Suppression du principal %s\n"
#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
-msgstr ""
+msgstr "Impossible d'ouvrir le keytab\n"
#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
-msgstr ""
+msgstr "principal introuvable\n"
#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
-msgstr ""
+msgstr "krb5_kt_get_entry %d: %s\n"
#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
-msgstr ""
+msgstr "Impossible de supprimer l'entrée\n"
#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
-msgstr ""
+msgstr "kvno %d\n"
#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
-msgstr ""
+msgstr "krb5_kt_remove_entry %d: %s\n"
#: ipa-client/ipa-rmkeytab.c:119
#, c-format
msgid "Unable to parse principal\n"
-msgstr ""
+msgstr "Impossible d'analyser le principal\n"
#: ipa-client/ipa-rmkeytab.c:121
#, c-format
msgid "krb5_unparse_name %d: %s\n"
-msgstr ""
+msgstr "krb5_unparse_name %d: %s\n"
#: ipa-client/ipa-rmkeytab.c:143
#, c-format
msgid "realm not found\n"
-msgstr ""
+msgstr "domaine introuvable\n"
#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
-msgstr ""
+msgstr "Affiche les informations de débogage"
#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
-msgstr ""
+msgstr "Sortie de débogage"
#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
-msgstr ""
+msgstr "Retirer tous les principals de ce royaume"
#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
-msgstr ""
+msgstr "Nom du royaume"
#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
msgid "Failed to open keytab '%s': %s\n"
-msgstr ""
+msgstr "Échec à l'ouverture du keytab '%s' : %s\n"
#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
-msgstr ""
+msgstr "La fermeture du keytab a échoué\n"
#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
-msgstr ""
-
-
+msgstr "krb5_kt_close %d: %s\n"
diff --git a/install/po/gu.po b/install/po/gu.po
index ca55b978c..754b54412 100644
--- a/install/po/gu.po
+++ b/install/po/gu.po
@@ -2,12 +2,13 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:48+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Gujarati <trans-gu@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -16,146 +17,496 @@ msgstr ""
"Language: gu\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/he.po b/install/po/he.po
index 66c254d23..5a6ddc5fb 100644
--- a/install/po/he.po
+++ b/install/po/he.po
@@ -2,13 +2,14 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Automatically generated, 2010.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:49+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hebrew <he-users@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -17,146 +18,496 @@ msgstr ""
"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -186,6 +537,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -194,20 +546,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -221,13 +565,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -236,222 +573,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -539,673 +1093,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1267,155 +1731,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1428,189 +1843,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1618,40 +2015,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1665,130 +2074,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1801,6 +2187,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1810,11 +2204,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1840,7 +2237,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1869,357 +2266,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2256,183 +2860,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2475,146 +3024,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2636,7 +3162,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2644,7 +3170,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2653,7 +3179,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2664,263 +3190,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2945,83 +3419,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3048,93 +3516,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3190,218 +3809,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3433,1017 +4036,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4483,63 +5224,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4580,130 +5305,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4712,46 +5502,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4769,10 +5536,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4782,7 +5550,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4808,105 +5576,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4927,33 +5694,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5009,136 +5759,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5160,32 +5875,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5208,18 +5910,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5228,95 +5935,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5361,164 +6041,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5555,18 +6215,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5575,95 +6236,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5691,89 +6329,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5826,118 +6449,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5954,189 +6541,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6146,223 +6722,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6403,235 +6998,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6639,505 +7212,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7158,6 +7287,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7182,283 +7316,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7478,248 +7626,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7810,5 +7946,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/id.po b/install/po/id.po
index fff1def0a..297bc1883 100644
--- a/install/po/id.po
+++ b/install/po/id.po
@@ -2,14 +2,15 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
-# Teguh DC <dheche@songolimo.net>, 2010.
+# Translators:
# jdennis <jdennis@redhat.com>, 2011.
+# Teguh DC <dheche@songolimo.net>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
"Language-Team: Indonesian <trans-id@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -18,146 +19,495 @@ msgstr ""
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Masukkan %(label)s lagi untuk verifikasi:"
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Kata sandi tidak cocok!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Dibatalkan."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "terjadi kesalahan internal"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "terjadi kesalahan internal di server %(server)r"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "perintah %(name)r tidak dikenal"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "kesalahan di server %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "tidak dapat terhubung ke %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Permintaan JSON-RPC tidak valid: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Kesalahan kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Tiket sudah kadaluarsa"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Hak akses tidak mencukupi: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "perintah %(name)r tidak membutuhkan argumen"
+
+#: ipalib/errors.py:664
+#, 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] "perintah %(name)r setidaknya membutuhkan %(count)d argumen"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "argumen dan opsi saling tumpang tindih: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "dibutuhkan %(name)r"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r tidak valid: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api tidak memiliki namespace ini: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Kata sandi tidak cocok"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Perintah tidak diimplementasikan"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Entri ini sudah ada"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Perintah ini memerlukan akses root"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "Ini sudah merupakan grup posix"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Penguraian Base64 gagal: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "perubahan bertabrakan dengan perubahan lain"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "tidak ada modifikasi yang harus dilakukan"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "query ini telah melampaui batas"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "type salah"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "Hanya satu nilai yang diperbolehkan"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "harus True atau False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "harus merupakan bilangan bulat"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "setidaknya harus %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "harus merupakan angka desimal"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "nilai minimum yang diperbolehkan %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "harus cocok dengan pola \"%(pattern)s\""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "harus merupakan data binari"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "panjang minimum yang diperbolehkan %(minlength)d byte"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "harus tepat %(length)d byte"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "harus teks Unicode"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "setidaknya minimum harus %(minlength)d karakter"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "harus tepat %(length)d karakter"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "harus salah satu dari %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -172,9 +522,7 @@ msgstr ""
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, "
-"attrs atau memberof"
+msgstr "setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, attrs atau memberof"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -189,6 +537,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "Grup '%s' tidak ada"
@@ -197,20 +546,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "ACI dengan nama \"%s\" tidak ditemukan"
@@ -224,13 +565,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -239,221 +573,437 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "ACI \"%(value)s\" telah dibuat"
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dihapus"
+
+#: 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "%(count)d ACI sesuai"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "ACI \"%(value)s\" telah dihapus"
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "ACI \"%(value)s\" telah dimodifikasi"
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Modify an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "%(count)d ACI sesuai"
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:450
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Delete an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
msgid ""
"\n"
-" Execute the aci-show operation.\n"
+" Search for automember rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automember.py:486
+msgid ""
"\n"
-" Returns the entry\n"
+" Display information about an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:502
+msgid ""
"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -541,673 +1091,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Failed managedby"
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
-msgid "Failed to remove"
+#: ipalib/plugins/baseldap.py:163
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:166
+msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1269,155 +1726,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat: %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1430,189 +1838,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
-"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"NOTES:\n"
"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1620,40 +2010,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1667,129 +2069,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1802,6 +2181,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1811,11 +2198,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1841,7 +2231,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1870,357 +2260,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2257,183 +2854,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2476,145 +3018,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d grup sesuai"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2636,7 +3155,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2644,7 +3163,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2653,7 +3172,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2664,262 +3183,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,82 +3411,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3046,92 +3507,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3187,217 +3799,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "Host \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "Host \"%(value)s\" telah dihapus"
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "Host \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr ""
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "%(count)d host sesuai"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3429,1016 +4025,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "%(count)d hostgroup sesuai"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4478,63 +5212,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4575,130 +5293,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4707,46 +5490,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d variabel"
@@ -4764,10 +5524,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d pengaya telah dimuat"
@@ -4776,7 +5537,7 @@ msgstr[0] "%(count)d pengaya telah dimuat"
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4802,104 +5563,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4920,33 +5680,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5002,135 +5745,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
+msgstr ""
+
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5152,32 +5860,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5200,18 +5895,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5220,94 +5920,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5352,164 +6025,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "prioritas tidak dapat ditetapkan pada kebijakan global"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5546,18 +6199,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5566,94 +6220,71 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5681,88 +6312,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5815,117 +6431,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5942,187 +6522,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6132,223 +6701,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6389,234 +6976,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
+msgstr ""
+
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dihapus"
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "%(count)d pengguna sesuai"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6624,504 +7189,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Masukkan %(label)s lagi untuk verifikasi:"
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Kata sandi tidak cocok!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "Dibatalkan."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "terjadi kesalahan internal"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "terjadi kesalahan internal di server %(server)r"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "perintah %(name)r tidak dikenal"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "kesalahan di server %(server)r: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "tidak dapat terhubung ke %(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Permintaan JSON-RPC tidak valid: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:465
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Kesalahan kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "Tiket sudah kadaluarsa"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Hak akses tidak mencukupi: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "perintah %(name)r tidak membutuhkan argumen"
-
-#: ipalib/errors.py:661
-#, 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] "perintah %(name)r setidaknya membutuhkan %(count)d argumen"
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "argumen dan opsi saling tumpang tindih: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "dibutuhkan %(name)r"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r tidak valid: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api tidak memiliki namespace ini: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "Kata sandi tidak cocok"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "Perintah tidak diimplementasikan"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "Entri ini sudah ada"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
-msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host"
-
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "Perintah ini memerlukan akses root"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "Ini sudah merupakan grup posix"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Penguraian Base64 gagal: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r"
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "perubahan bertabrakan dengan perubahan lain"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "tidak ada modifikasi yang harus dilakukan"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "query ini telah melampaui batas"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik"
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "type salah"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "Hanya satu nilai yang diperbolehkan"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "harus True atau False"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "harus merupakan bilangan bulat"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "setidaknya harus %(minvalue)d"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "harus merupakan angka desimal"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "nilai minimum yang diperbolehkan %(minvalue)f"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "harus cocok dengan pola \"%(pattern)s\""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "harus merupakan data binari"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "panjang minimum yang diperbolehkan %(minlength)d byte"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "harus tepat %(length)d byte"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "harus teks Unicode"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "setidaknya minimum harus %(minlength)d karakter"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "harus tepat %(length)d karakter"
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "harus salah satu dari %(values)r"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Tidak dapat berkomunikasi dengan CMS (%s)"
@@ -7142,6 +7264,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7166,283 +7293,297 @@ msgstr "tidak dapat memperoleh nomor seri berikutnya"
msgid "certutil failure"
msgstr "kegagalah certutil"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7462,248 +7603,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7794,5 +7923,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/it.po b/install/po/it.po
index a336d0ab0..6a141c01c 100644
--- a/install/po/it.po
+++ b/install/po/it.po
@@ -2,12 +2,13 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:49+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Italian <trans-it@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -16,146 +17,496 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/ja.po b/install/po/ja.po
index 146a9fbd0..a494aa862 100644
--- a/install/po/ja.po
+++ b/install/po/ja.po
@@ -2,13 +2,15 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# <www.carrotsoft@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:50+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
+"Last-Translator: carrotsoft <www.carrotsoft@gmail.com>\n"
"Language-Team: Japanese <trans-ja@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -16,146 +18,495 @@ msgstr ""
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "パスワードãŒé•ã„ã¾ã™ã€‚"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "キャンセルã•ã‚Œã¾ã—ãŸã€‚"
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "内部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "サーãƒãƒ¼ %(server)r ã§å†…部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "ä¸æ˜Žãªã‚³ãƒžãƒ³ãƒ‰ %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "%(uri)rã¸æŽ¥ç¶šã§ãã¾ã›ã‚“:%(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "パスワードãŒé•ã„ã¾ã™"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "コマンドãŒå®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Base64å½¢å¼ã®ãƒ‡ã‚³ãƒ¼ãƒ‰ã«å¤±æ•—: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,221 +572,437 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -537,673 +1090,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Failed managedby"
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
-msgid "Failed to remove"
+#: ipalib/plugins/baseldap.py:163
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:166
+msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1265,155 +1725,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1426,189 +1837,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr ""
+
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1616,40 +2009,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1663,129 +2068,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1798,6 +2180,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1807,11 +2197,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1837,7 +2230,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1866,357 +2259,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2253,183 +2853,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2472,145 +3017,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2632,7 +3154,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2640,7 +3162,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2649,7 +3171,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2660,262 +3182,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2940,82 +3410,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3042,92 +3506,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3183,217 +3798,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr ""
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3425,1016 +4024,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4474,63 +5211,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4571,130 +5292,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4703,46 +5489,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4760,10 +5523,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4772,7 +5536,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4798,104 +5562,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4916,33 +5679,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -4998,135 +5744,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5148,32 +5859,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5196,18 +5894,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5216,94 +5919,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5348,164 +6024,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5542,18 +6198,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
+msgstr ""
+
+#: ipalib/plugins/role.py:67
+msgid "roles"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5562,94 +6219,71 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5677,88 +6311,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5811,117 +6430,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5938,187 +6521,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6128,223 +6700,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6385,234 +6975,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6620,504 +7188,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7138,6 +7263,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7162,283 +7292,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7458,248 +7602,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7790,5 +7922,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/kn.po b/install/po/kn.po
index 343345454..335f97404 100644
--- a/install/po/kn.po
+++ b/install/po/kn.po
@@ -2,162 +2,512 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# gundachandru <gundachandru@gmail.com>, 2010.
# jdennis <jdennis@redhat.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
-"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/team/kn/)\n"
+"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/language/kn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: kn\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
-msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "ಮತà³à²¤à³Šà²®à³à²®à³† ಪರಿಶೀಲಿಸಲೠ%(label)s ಎಂಟರೠಮಾಡಿ:"
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಹೊಂದಾಣಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "ರದà³à²¦à³à²—ೊಳಿಸಲಾಗಿದೆ."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
msgstr ""
-#: ipalib/plugins/aci.py:20
-msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
msgstr ""
-#: ipalib/plugins/aci.py:172
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "%(server)r ನಲà³à²²à²¿ ಕà³à²²à³ˆà²‚ಟೠ%(cver)s ಸರà³à²µà²°à³â€Œ %(sver)s ನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "%(server)s ಸರà³à²µà²°à³â€Œà²¨à²¿à²‚ದ ಅಜà³à²žà²¾à²¤ ದೋಷ %(code)d: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "%(server)r ನಲà³à²²à²¿ ಸರà³à²µà²°à³â€Œà²¨à²²à³à²²à²¿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "ಅಜà³à²žà²¾à²¤ ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) %(name)r "
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "%(server)r ಸರà³à²µà²°à³â€Œà²¨à²²à³à²²à²¿ ದೋಷ: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "%(uri)r ಗೆ ಸಂಪರà³à²•à²¿à²¸à²²à³ ಆಗà³à²¤à³à²¤à²¿à²²à³à²²: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "ಅಸಿಂಧà³à²µà²¾à²¦ JSON-RPC ಬೇಡಿಕೆ: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "Kerberos ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಪಡೆದಿಲà³à²²"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Kerberos ಡೇಟಾಬೇಸà³â€Œà²¨à²²à³à²²à²¿ %(service)r ಸೇವೆ(ಸರà³à²µà²¿à²¸à³) ಸಿಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "ಕà³à²¯à²¾à²¶à³â€Œà²¨à²²à³à²²à²¿ ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳೠಸಿಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "ಟಿಕೆಟà³â€Œà²¨ ಅವಧಿ ಮà³à²—ಿದಿದೆ"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳ ಕà³à²¯à²¾à²¶à³â€Œà²¨ ಅನà³à²®à²¤à²¿à²—ಳೠಸರಿಯಿಲà³à²²"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳ ಕà³à²¯à²¾à²¶à³â€Œà²¨à²²à³à²²à²¿ ಜೋಡಣೆ ಸರಿಯಿಲà³à²²"
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "ಕೋರಿದ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ಕà³à²•à²¾à²—ಿ KDC ಯನà³à²¨à³ ಬಗೆಹರಿಸಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "ನಿಲà³à²•à²£à³†(ಆಕà³à²¸à³†à²¸à³) ಸಾಲದಾಗಿದೆ: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "%(name)r ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ಯಾವà³à²¦à³‡ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ತೆಗೆದà³à²•à³Šà²³à³à²³à³à²µà³à²¦à²¿à²²à³à²²"
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ಮತà³à²¤à³ ಆಯà³à²•à³†à²—ಳನà³à²¨à³ ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r ಅಗತà³à²¯à²µà²¿à²¦à³†"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "ಅಸಿಂಧà³à²µà²¾à²¦ %(name)r: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "apiನಲà³à²²à²¿ ಆ ತರಹದ ಯಾವà³à²¦à³‡ ನೇಮà³â€Œà²¸à³à²ªà³‡à²¸à³ ಇಲà³à²²: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಹೊಂದಾಣಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³)ಯನà³à²¨à³ ಪೂರà³à²£à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "ಈ ನಮೂದೠಈಗಾಗಲೇ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "ಒಂದೠಹೋಸà³à²Ÿà³ ಸೇವೆ(ಸರà³à²µà²¿à²¸à³)ಯನà³à²¨à³ ರಚಿಸà³à²µ ಸಲà³à²µà²¾à²—ಿ ನೀವೠಒಂದೠಹೋಸà³à²Ÿà³ ಅನà³à²¨à³ ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "Service principalನ ಸà³à²µà²°à³‚ಪ ಹೀಗಿಲà³à²²: service/fully-qualified host name: %(reason)s"
+
+#: ipalib/errors.py:877
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "principalನ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ವೠಈ IPA ಸರà³à²µà²°à³â€Œà²¨ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ಕà³à²•à³† ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
+
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "ಈ ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ರೂಟà³(root) ನಿಲà³à²•à²£à³†(ಆಕà³à²¸à³†à²¸à³) ಕೋರà³à²¤à³à²¤à²¦à³†"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "ಇದೠಈಗಾಗಲೇ posix ಗà³à²‚ಪà³"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Principalನ ಸà³à²µà²°à³‚ಪ user@REALM ನಂತಲà³à²²: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "ಒಂದೠಗà³à²‚ಪೠಅದರ ಒಂದೠಸದಸà³à²¯ ಆಗದಿರಬಹà³à²¦à³"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Base64 ಡೆಕೋಡಿಂಗೠವಿಫಲಗೊಂಡಿದೆ: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "ಒಂದೠಗà³à²‚ಪೠಅದರ ಒಂದೠಸದಸà³à²¯à²¨à²‚ತೆ ಸೇರಿಸಲೠಆಗದಿರಬಹà³à²¦à³"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "ಡಿಫಾಲà³à²Ÿà³ ಬಳಕೆದಾರರ ಗà³à²‚ಪನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à²²à³ ಆಗà³à²µà³à²¦à²¿à²²à³à²²"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ಇಲà³à²² ಸಹಾಯದ ಟಾಪಿಕೠ%(topic)r ಕೂಡ ಇಲà³à²²"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "ಬದಲಾವಣೆ ಮತà³à²¤à³Šà²‚ದೠಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕà³à²•à²¿à²¹à³Šà²¡à³†à²¦à²¿à²¦à³†"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "ಯಾವà³à²¦à³‡ ಬದಲಾವಣೆಗಳೠನಡೆಯಬಾರದà³"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "ಈ ಕà³à²µà³‡à²°à²¿à²—ೆ ಮಿತಿಗಳೠಮೀರಿವೆ"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಕಾರà³à²¯à²¾à²šà²°à²£à³†à²¯à²¨à³à²¨à³ ಪೂರà³à²£à²—ೊಳಿಸಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "ಫಲಿತಾಂಶಗಳೠಕತà³à²¤à²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²µà³†, ಹೆಚà³à²šà³à²¹à³ ನಿರà³à²¦à²¿à²·à³à²Ÿà²µà²¾à²¦ ಶೋಧನೆ ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "ಸರಿಯಲà³à²²à²¦ ಬಗೆ"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "ಕೇವಲ ಒಂದೠಬೆಲೆ ಮಾತà³à²° ಅನà³à²®à³‹à²¦à²¿à²¸à²²à²¾à²—ಿದೆ"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "ನಿಜ (True) ಅಥವಾ ಸà³à²³à³à²³à³ (False) ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "ಇನà³à²Ÿà³€à²œà²°à³ ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minvalue)d ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxvalue)d ಆಗಿರಬಹà³à²¦à³"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "ದಶಾಂಶ ಸಂಖà³à²¯à³† ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minvalue)f ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxvalue)f ಆಗಿರಬಹà³à²¦à³"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minlength)d ಬೈಟà³à²¸à³ ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxlength)d ಬೈಟà³à²¸à³ ಆಗಿರಬಹà³à²¦à³"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟà³à²¸à³ ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "ಯà³à²¨à²¿à²•à³‹à²¡à³ ಪಠà³à²¯ ಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minlength)d ಅಕà³à²·à²°à²—ಳೠಇರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxlength)d ಅಕà³à²·à²°à²—ಳೠಇರಬಹà³à²¦à³"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕà³à²·à²°à²—ಳೠಇರಲೇಬೇಕà³"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "%(values)r ನಲà³à²²à²¿ ಒಂದೠಆಗಿರಲೇಬೇಕà³"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -172,9 +522,7 @@ msgstr ""
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"ಕನಿಷà³à²Ÿ ಒಂದೠ: ಬಗೆ, ಫಿಲà³à²Ÿà²°à³, ಸಬà³â€Œà²Ÿà³à²°à³€, ಟಾರà³à²—ೆಟà³â€Œà²—à³à²°à³‚ಪà³, attrs ಅಥವಾ memberof "
-"ಗಳ ಅಗತà³à²¯à²µà²¿à²¦à³†"
+msgstr "ಕನಿಷà³à²Ÿ ಒಂದೠ: ಬಗೆ, ಫಿಲà³à²Ÿà²°à³, ಸಬà³â€Œà²Ÿà³à²°à³€, ಟಾರà³à²—ೆಟà³â€Œà²—à³à²°à³‚ಪà³, attrs ಅಥವಾ memberof ಗಳ ಅಗತà³à²¯à²µà²¿à²¦à³†"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -189,6 +537,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr " '%s' ಗà³à²‚ಪೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
@@ -197,20 +546,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "\"%s\" ಹೆಸರೠಹೊಂದಿರà³à²µ ACI ಪತà³à²¤à³†à²¯à²¾à²—ಿಲà³à²²"
@@ -224,13 +565,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACIs"
@@ -239,221 +573,437 @@ msgstr "ACIs"
msgid "ACI name"
msgstr "ACI ಹೆಸರà³"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "ಬಳಕೆದಾರ ಗà³à²‚ಪà³"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr "User group ACI grants access to"
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "ಅನà³à²®à²¤à²¿à²—ಳà³"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "ವೈಶಿಷà³à²Ÿà³à²¯à²—ಳà³"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr "Comma-separated ವೈಶಿಷà³à²Ÿà³à²¯à²—ಳ ಪಟà³à²Ÿà²¿"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "ಬಗೆ"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "ಸದಸà³à²¯"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "ಒಂದೠಗà³à²‚ಪಿನ ಸದಸà³à²¯"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "ಶೋಧಕ (ಫಿಲà³à²Ÿà²°à³)"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Legal LDAP filter (e.g. ou=Engineering)"
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr "ಉಪವೃಕà³à²·"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr "Subtree to apply ACI to"
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "Target ಗà³à²‚ಪà³"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr "Group to apply ACI to"
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "\"%(value)s\" ACIವನà³à²¨à³ ರಚಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "\"%(value)s\" ACIವನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
+
+#: 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "\"%(value)s\" ACIವನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "ವಿವರಣೆ"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "\"%(value)s\" ACIವನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "\"%(value)s\" ACIವನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -541,673 +1091,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "ಸà³à²¥à²³"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr "ನಕà³à²·à³†"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "ವಿವರಣೆ"
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr "ಮà³à²¯à²¾à²ªà³â€Œà²—ಳ ಆಟೋಮೌಂಟà³"
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "ಕೀ"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr "ಮೌಂಟೠಮಾಹಿತಿ"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "ವಿವರಣೆ"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟà³"
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "ಮೌಂಟೠಪಾಯಂಟà³"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr "Parent map"
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
-msgid "New mount information"
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:846
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦"
+
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr "ವಿಫಲಗೊಂಡ ಸದಸà³à²¯à²°à³"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr "ಸದಸà³à²¯ ಬಳಕೆದಾರರà³"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr "ಸದಸà³à²¯ ಗà³à²‚ಪà³à²—ಳà³"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr "ಸದಸà³à²¯ ಹೋಸà³à²Ÿà³â€Œà²—ಳà³"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr "ಸದಸà³à²¯ ಹೋಸà³à²Ÿà³-ಗà³à²°à³‚ಪà³â€Œà²—ಳà³"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr "ಹೋಸà³à²Ÿà³-ಗà³à²‚ಪಿನ ಸದಸà³à²¯"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr "ಹೊರಗಿನ ಹೋಸà³à²Ÿà³"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1269,156 +1726,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗà³â€Œà²¨ ವಿಫಲತೆ"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗà³â€Œà²¨ ವಿಫಲತೆ: %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr "Principal"
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr "ಈ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²•à³à²•à²¾à²—ಿ Service principal (e.g. HTTP/test.example.com)"
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr "ಸà³à²µà²¯à²‚ಚಾಲಿತವಾಗಿ principal ಸೇರಿಸಿ ಅದೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿ ಇಲà³à²²à²¦à²¿à²¦à³à²¦à²²à³à²²à²¿"
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "ವಿಷಯ"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "ಅನà³à²•à³à²°à²® ಸಂಖà³à²¯à³†"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "ಬೇಡಿಕೆ ID"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "ಬೇಡಿಕೆ ಸà³à²¥à²¿à²¤à²¿"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
-msgstr ""
-"ಕà³à²°à²® ಸಂಖà³à²¯à³† ಡೆಸಿಮಲà³â€Œà²¨à²²à³à²²à²¿ ಅಥವಾ 0x ಮೊದಲೠಸೇರಿಸಿದà³à²¦à²²à³à²²à²¿ ಹೆಕà³à²¸à²¾à²¡à³†à²¸à²¿à²®à²²à³â€Œà²¨à²²à³à²²à²¿"
+msgstr "ಕà³à²°à²® ಸಂಖà³à²¯à³† ಡೆಸಿಮಲà³â€Œà²¨à²²à³à²²à²¿ ಅಥವಾ 0x ಮೊದಲೠಸೇರಿಸಿದà³à²¦à²²à³à²²à²¿ ಹೆಕà³à²¸à²¾à²¡à³†à²¸à²¿à²®à²²à³â€Œà²¨à²²à³à²²à²¿"
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr "ರದà³à²¦à³ ಮಾಡà³à²µà³à²¦à²•à³à²•à³† ಕಾರಣ"
@@ -1431,189 +1838,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "ರದà³à²¦à³ ಮಾಡಲಾಗಿದೆ"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "ಕಾರಣ"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ (0-10) ರದà³à²¦à³ ಮಾಡಲೠಕಾರಣ"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr ""
+
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr "ರದà³à²¦à³ ಮಾಡಲಾಗಿಲà³à²²"
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "ದೋಷ"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr "ಹೋಮೠಡೈರೆಕà³à²Ÿà²°à³€ ಮೂಲ"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "ಡೀಫಾಲà³à²Ÿà³ ಶೆಲà³"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "ಡಿಫಾಲà³à²Ÿà³ ಬಳಕೆದಾರರ ಗà³à²‚ಪà³"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr "ಹà³à²¡à³à²•à³ ಸಮಯ ಮಿತಿ"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr "ಹà³à²¡à³à²•à³ ಗಾತà³à²° ಮಿತಿ"
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr "ಬಳಕೆದಾರನ ಶೋಧ ಫೀಲà³à²¡à³â€Œà²—ಳà³"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "ಮೈಗà³à²°à³‡à²¶à²¨à³ ಕà³à²°à²®"
-
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ವಿಷಯ ಮೂಲ"
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1621,40 +2010,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1668,129 +2069,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1803,6 +2181,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1812,11 +2198,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1842,7 +2231,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1871,357 +2260,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr "ವಲಯದ ಹೆಸರà³"
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr "ವಲಯದ ಹೆಸರೠ(FQDN)"
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr "SOA serial"
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr "SOA refresh"
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr "SOA retry"
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr "SOA expire"
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr "SOA minimum"
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr "SOA time to live"
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr "SOA class"
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr "BIND update policy"
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
-msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ"
-
-#: ipalib/plugins/dns.py:538
-msgid "Class"
-msgstr "ವರà³à²—"
-
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
+msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ"
+
+#: ipalib/plugins/dns.py:944
+msgid "Class"
+msgstr "ವರà³à²—"
+
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2258,183 +2854,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦"
-
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2477,145 +3018,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "ಬಳಕೆದಾರರ ಗà³à²‚ಪà³à²—ಳà³"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "ಗà³à²‚ಪಿನ ಹೆಸರà³"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "ಗà³à²‚ಪಿನ ವಿವರಣೆ"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr "GID (ಇದನà³à²¨à³ ಮà³à²¯à²¾à²¨à³à²¯à³‚ವಲೠಆಗಿ ಸೆಟೠಮಾಡಲೠಈ ಆಯà³à²•à³†à²¯à²¨à³à²¨à³ ಬಳಸಿ)"
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "\"%(value)s\" ಗà³à²‚ಪನà³à²¨à³ ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "\"%(value)s\" ಗà³à²‚ಪನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "\"%(value)s\" ಗà³à²‚ಪನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2637,7 +3155,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2645,7 +3163,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2654,7 +3172,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2665,262 +3183,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "ನಿಯಮದ ಹೆಸರà³"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "ನಿಯಮದ ಬಗೆ(ಅನà³à²®à²¤à²¿à²¸à³ ಅಥವಾ ನಿರಾಕರಿಸà³)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "ಬಳಕೆದಾರನ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr "ನಿಯಮ ಅನà³à²µà²¯à²¿à²¸à³à²µà²‚ತಹ ಬಳಕೆದಾರನ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr "ಹೋಸà³à²Ÿà³ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr "ನಿಯಮ ಅನà³à²µà²¯à²¿à²¸à³à²µà²‚ತಹ ಹೋಸà³à²Ÿà³ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr "ಮೂಲ ಹೋಸà³à²Ÿà³ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr "ನಿಯಮ ಅನà³à²µà²¯à²¿à²¸à³à²µà²‚ತಹ ಮೂಲ ಹೋಸà³à²Ÿà³ ವರà³à²—"
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "ಬಳಕೆದಾರರà³"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr "ಗà³à²‚ಪà³à²—ಳà³"
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr "ಹೋಸà³à²Ÿà³â€Œà²—ಳà³"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr "ಹೋಸà³à²Ÿà³ ಗà³à²‚ಪà³à²—ಳà³"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr "ಸೇವೆಗಳà³(ಸರà³à²µà³€à²¸à²¸à³)"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "ಪà³à²°à²µà³‡à²¶à²¦ ಸಮಯ"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2945,82 +3411,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "ಸೇವೆಯ ಹೆಸರà³"
+msgid "HBAC Services"
+msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "ಸೇವೆಯ ಹೆಸರà³"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,92 +3507,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "ಬಳಕೆದಾರನ ಹೆಸರà³"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+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
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3188,217 +3799,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr "ಹೋಸà³à²Ÿà³ ಹೆಸರà³"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr "ಈ ಹೋಸà³à²Ÿà³â€Œà²¨ ವಿವರಣೆ"
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr "ಪà³à²°à²¦à³‡à²¶"
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "ಹೋಸà³à²Ÿà³ ತಾಣ (e.g. \"Baltimore, MD\")"
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr "ಹೋಸà³à²Ÿà³ ತಾಣ (e.g. \"Lab 2\")"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "ಪà³à²²à²¾à²Ÿà³â€Œà²«à²¾à²°à³à²®à³"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "ಹೋಸà³à²Ÿà³ ಹಾರà³à²¡à³â€Œà²µà³‡à²°à³ ಪà³à²²à³à²¯à²¾à²Ÿà³â€Œà²«à²¾à²°à³à²®à³ (e.g. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "ಕಾರà³à²¯à²•à²¾à²°à²¿ ವà³à²¯à²µà²¸à³à²¥à³†"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "ಹೋಸà³à²Ÿà³ ಕಾರà³à²¯à²•à²¾à²°à²¿ ವà³à²¯à²µà²¸à³à²¥à³† ಮತà³à²¤à³ ಆವೃತà³à²¤à²¿ (e.g. \"Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "ಬಳಕೆದಾರನ ಗà³à²ªà³à²¤à²ªà²¦"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr "ದೊಡà³à²¡ ಪà³à²°à²®à²¾à²£à²¦ ದಾಖಲಾತಿಯಲà³à²²à²¿ ಬಳಸಲಾದ ಗà³à²ªà³à²¤à²ªà²¦"
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr "Base-64 ಎನà³â€Œà²•à³‹à²¡à³†à²¡à³ ಸರà³à²µà²°à³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr "Principal ಹೆಸರà³"
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà²¨à³à²¨à³ ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà²¨à³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà²¨à³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr "ಈ ಹೋಸà³à²Ÿà³â€Œà²—ೆ Kerberos principalನ ಹೆಸರà³"
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3430,1016 +4025,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr "ಹೋಸà³à²Ÿà³-ಗà³à²‚ಪà³"
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr "ಹೋಸà³à²Ÿà³-ಗà³à²‚ಪಿನ ಹೆಸರà³"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr "ಈ ಹೋಸà³à²Ÿà³-ಗà³à²°à³‚ಪà³â€Œà²¨ ವಿವರಣೆ"
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà³â€Œà²—à³à²°à³‚ಪನà³à²¨à³ ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà³â€Œà²—à³à²°à³‚ಪನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸà³à²Ÿà³â€Œà²—à³à²°à³‚ಪನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "ದತà³à²¤à²¾à²‚ಶ"
-
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr ""
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "ದತà³à²¤à²¾à²‚ಶ"
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "ಗà³à²‚ಪà³à²—ಳà³"
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4479,63 +5212,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr "ಬಳಕೆದಾರನ ಹೆಸರà³"
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟೠಪಾಲಿಸಿಯನà³à²¨à³ ನಿರà³à²µà²¹à²¿à²¸à³"
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr "ಗರಿಷà³à²Ÿ ಜೀವಿತಾವಧಿ"
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr "ಗರಿಷà³à²Ÿ ನವೀಕರಣ"
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4576,130 +5293,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr "LDAP URI of DS server to migrate from"
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr "ಬೈಂಡೠDN"
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರà³"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr "DSನಲà³à²²à²¿à²°à³à²µ ಬಳಕೆದಾರರಿಗಾಗಿ RDNನ ಕಂಟೇನರೠ"
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr "ಗà³à²‚ಪಿನ ಕಂಟೇನರà³"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr "DSನಲà³à²²à²¿à²°à³à²µ ಗà³à²‚ಪà³à²—ಳಿಗಾಗಿ RDNನ ಕಂಟೇನರೠ"
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4708,46 +5490,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d ವೇರಿಯೇಬಲà³â€Œà²—ಳà³"
@@ -4765,10 +5524,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4777,7 +5537,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4803,104 +5563,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr "ನೆಟà³â€Œà²—à³à²°à³‚ಪà³â€Œà²—ಳà³"
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr "ನೆಟà³â€Œà²—à³à²°à³‚ಪೠಹೆಸರà³"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr "ನೆಟà³â€Œà²—à³à²°à³‚ಪೠವಿವರಣೆ"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr "NIS ಡೊಮೇನೠಹೆಸರà³"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4921,33 +5680,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5003,135 +5745,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
+msgstr ""
+
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5153,32 +5860,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5201,18 +5895,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5221,94 +5920,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5353,164 +6025,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr "ಗà³à²‚ಪà³"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr "ಗರಿಷà³à²Ÿ ಜೀವಿತಾವಧಿ (ದಿನಗಳà³)"
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಗರಿಷà³à²Ÿ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲà³à²²à²¿)"
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr "ಕನಿಷà³à²Ÿ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳà³)"
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಕನಿಷà³à²Ÿ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲà³à²²à²¿)"
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr "ಇತಿಹಾಸದ ಗಾತà³à²°"
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಇತಿಹಾಸದ ಗಾತà³à²°"
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr "ಕà³à²¯à²¾à²°à³†à²•à³à²Ÿà²°à³ ಕà³à²²à²¾à²¸à³â€Œà²—ಳà³"
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr "ಕನಿಷà³à²Ÿ ಸಂಖà³à²¯à³†à²¯ ಕà³à²¯à²¾à²°à²•à³à²Ÿà²°à³ ಕà³à²²à²¾à²¸à³â€Œà²—ಳà³"
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr "ಕನಿಷà³à²Ÿ ಉದà³à²¦"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಕನಿಷà³à²Ÿ ಉದà³à²¦"
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr "ಆದà³à²¯à²¤à³†"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "ಗà³à²²à³‹à²¬à²²à³ ಪಾಲಿಸಿಯಲà³à²²à²¿ ಆದà³à²¯à²¤à³†à²¯à²¨à³à²¨à³ ಸೆಟೠಮಾಡಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr "ಬಳಕೆದಾರ"
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5547,18 +6199,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
+msgstr ""
+
+#: ipalib/plugins/role.py:67
+msgid "roles"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5567,94 +6220,71 @@ msgid "A description of this role-group"
msgstr "ಈ ರೋಲà³-ಗà³à²°à³‚ಪà³â€Œà²¨ ವಿವರಣೆ"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5682,88 +6312,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5816,117 +6431,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr "Service principal"
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr "\"%(value)s\" ಸೇವೆ(ಸರà³à²µà³€à²¸à³)ಯನà³à²¨à³ ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr "\"%(value)s\" ಸೇವೆ(ಸರà³à²µà³€à²¸à³)ಯನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5943,187 +6522,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6133,223 +6701,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6390,234 +6976,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr "ಬಳಕೆದಾರನ ಪà³à²°à²µà³‡à²¶"
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr "ಮೊದಲ ಹೆಸರà³"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr "ಕೊನೆಯ ಹೆಸರà³"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr "GECOS ಕà³à²·à³‡à²¤à³à²°"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr "ಪà³à²°à²µà³‡à²¶ ಶೆಲà³"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr "Kerberos principal"
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr "ಇಮೇಲೠವಿಳಾಸ"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr "ಕೇರಿ ವಿಳಾಸ"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನà³à²¨à³ ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನà³à²¨à³ ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನà³à²¨à³ ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6625,513 +7189,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "ಮತà³à²¤à³Šà²®à³à²®à³† ಪರಿಶೀಲಿಸಲೠ%(label)s ಎಂಟರೠಮಾಡಿ:"
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಹೊಂದಾಣಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "ರದà³à²¦à³à²—ೊಳಿಸಲಾಗಿದೆ."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-"%(server)r ನಲà³à²²à²¿ ಕà³à²²à³ˆà²‚ಟೠ%(cver)s ಸರà³à²µà²°à³â€Œ %(sver)s ನೊಂದಿಗೆ "
-"ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "%(server)s ಸರà³à²µà²°à³â€Œà²¨à²¿à²‚ದ ಅಜà³à²žà²¾à²¤ ದೋಷ %(code)d: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "%(server)r ನಲà³à²²à²¿ ಸರà³à²µà²°à³â€Œà²¨à²²à³à²²à²¿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "ಅಜà³à²žà²¾à²¤ ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) %(name)r "
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "%(server)r ಸರà³à²µà²°à³â€Œà²¨à²²à³à²²à²¿ ದೋಷ: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "%(uri)r ಗೆ ಸಂಪರà³à²•à²¿à²¸à²²à³ ಆಗà³à²¤à³à²¤à²¿à²²à³à²²: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "ಅಸಿಂಧà³à²µà²¾à²¦ JSON-RPC ಬೇಡಿಕೆ: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr "Kerberos ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಪಡೆದಿಲà³à²²"
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Kerberos ಡೇಟಾಬೇಸà³â€Œà²¨à²²à³à²²à²¿ %(service)r ಸೇವೆ(ಸರà³à²µà²¿à²¸à³) ಸಿಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "ಕà³à²¯à²¾à²¶à³â€Œà²¨à²²à³à²²à²¿ ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳೠಸಿಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "ಟಿಕೆಟà³â€Œà²¨ ಅವಧಿ ಮà³à²—ಿದಿದೆ"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr "ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳ ಕà³à²¯à²¾à²¶à³â€Œà²¨ ಅನà³à²®à²¤à²¿à²—ಳೠಸರಿಯಿಲà³à²²"
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr "ಯೋಗà³à²¯à²¤à²¾à²ªà²¤à³à²°à²—ಳ ಕà³à²¯à²¾à²¶à³â€Œà²¨à²²à³à²²à²¿ ಜೋಡಣೆ ಸರಿಯಿಲà³à²²"
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr "ಕೋರಿದ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ಕà³à²•à²¾à²—ಿ KDC ಯನà³à²¨à³ ಬಗೆಹರಿಸಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "ನಿಲà³à²•à²£à³†(ಆಕà³à²¸à³†à²¸à³) ಸಾಲದಾಗಿದೆ: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "%(name)r ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ಯಾವà³à²¦à³‡ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ತೆಗೆದà³à²•à³Šà²³à³à²³à³à²µà³à²¦à²¿à²²à³à²²"
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+" an administrator."
msgstr ""
-"ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ಮತà³à²¤à³ ಆಯà³à²•à³†à²—ಳನà³à²¨à³ ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r ಅಗತà³à²¯à²µà²¿à²¦à³†"
-#: ipalib/errors.py:723 ipalib/errors.py:739
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "ಅಸಿಂಧà³à²µà²¾à²¦ %(name)r: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "apiನಲà³à²²à²¿ ಆ ತರಹದ ಯಾವà³à²¦à³‡ ನೇಮà³â€Œà²¸à³à²ªà³‡à²¸à³ ಇಲà³à²²: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಹೊಂದಾಣಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³)ಯನà³à²¨à³ ಪೂರà³à²£à²—ೊಳಿಸಲಾಗಿಲà³à²²"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "ಈ ನಮೂದೠಈಗಾಗಲೇ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-"ಒಂದೠಹೋಸà³à²Ÿà³ ಸೇವೆ(ಸರà³à²µà²¿à²¸à³)ಯನà³à²¨à³ ರಚಿಸà³à²µ ಸಲà³à²µà²¾à²—ಿ ನೀವೠಒಂದೠಹೋಸà³à²Ÿà³ ಅನà³à²¨à³ "
-"ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ"
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-"Service principalನ ಸà³à²µà²°à³‚ಪ ಹೀಗಿಲà³à²²: service/fully-qualified host name: "
-"%(reason)s"
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-"principalನ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ವೠಈ IPA ಸರà³à²µà²°à³â€Œà²¨ ಕà³à²·à³‡à²¤à³à²°(ರೆಲà³à²®à³)ಕà³à²•à³† "
-"ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "ಈ ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ರೂಟà³(root) ನಿಲà³à²•à²£à³†(ಆಕà³à²¸à³†à²¸à³) ಕೋರà³à²¤à³à²¤à²¦à³†"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "ಇದೠಈಗಾಗಲೇ posix ಗà³à²‚ಪà³"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Principalನ ಸà³à²µà²°à³‚ಪ user@REALM ನಂತಲà³à²²: %(principal)r"
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "ಒಂದೠಗà³à²‚ಪೠಅದರ ಒಂದೠಸದಸà³à²¯ ಆಗದಿರಬಹà³à²¦à³"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Base64 ಡೆಕೋಡಿಂಗೠವಿಫಲಗೊಂಡಿದೆ: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "ಒಂದೠಗà³à²‚ಪೠಅದರ ಒಂದೠಸದಸà³à²¯à²¨à²‚ತೆ ಸೇರಿಸಲೠಆಗದಿರಬಹà³à²¦à³"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "ಡಿಫಾಲà³à²Ÿà³ ಬಳಕೆದಾರರ ಗà³à²‚ಪನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à²²à³ ಆಗà³à²µà³à²¦à²¿à²²à³à²²"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "ಆಜà³à²žà³†(ಕಮà³à²¯à²¾à²‚ಡà³) ಇಲà³à²² ಸಹಾಯದ ಟಾಪಿಕೠ%(topic)r ಕೂಡ ಇಲà³à²²"
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "ಬದಲಾವಣೆ ಮತà³à²¤à³Šà²‚ದೠಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕà³à²•à²¿à²¹à³Šà²¡à³†à²¦à²¿à²¦à³†"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "ಯಾವà³à²¦à³‡ ಬದಲಾವಣೆಗಳೠನಡೆಯಬಾರದà³"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "ಈ ಕà³à²µà³‡à²°à²¿à²—ೆ ಮಿತಿಗಳೠಮೀರಿವೆ"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಕಾರà³à²¯à²¾à²šà²°à²£à³†à²¯à²¨à³à²¨à³ ಪೂರà³à²£à²—ೊಳಿಸಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr "ಫಲಿತಾಂಶಗಳೠಕತà³à²¤à²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²µà³†, ಹೆಚà³à²šà³à²¹à³ ನಿರà³à²¦à²¿à²·à³à²Ÿà²µà²¾à²¦ ಶೋಧನೆ ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿"
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "ಸರಿಯಲà³à²²à²¦ ಬಗೆ"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "ಕೇವಲ ಒಂದೠಬೆಲೆ ಮಾತà³à²° ಅನà³à²®à³‹à²¦à²¿à²¸à²²à²¾à²—ಿದೆ"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "ನಿಜ (True) ಅಥವಾ ಸà³à²³à³à²³à³ (False) ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "ಇನà³à²Ÿà³€à²œà²°à³ ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minvalue)d ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxvalue)d ಆಗಿರಬಹà³à²¦à³"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "ದಶಾಂಶ ಸಂಖà³à²¯à³† ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minvalue)f ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxvalue)f ಆಗಿರಬಹà³à²¦à³"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minlength)d ಬೈಟà³à²¸à³ ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxlength)d ಬೈಟà³à²¸à³ ಆಗಿರಬಹà³à²¦à³"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟà³à²¸à³ ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "ಯà³à²¨à²¿à²•à³‹à²¡à³ ಪಠà³à²¯ ಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "ಕನಿಷà³à² à²µà²¾à²—ಿ %(minlength)d ಅಕà³à²·à²°à²—ಳೠಇರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "ಗರಿಷà³à² à²µà²¾à²—ಿ %(maxlength)d ಅಕà³à²·à²°à²—ಳೠಇರಬಹà³à²¦à³"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕà³à²·à²°à²—ಳೠಇರಲೇಬೇಕà³"
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "%(values)r ನಲà³à²²à²¿ ಒಂದೠಆಗಿರಲೇಬೇಕà³"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "CMS (%s) ಜೊತೆ ಸಂಪರà³à²•à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¿à²²à³à²²"
@@ -7152,14 +7264,17 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
-"ಕೋರಿಕೆ ವಿಷಯ \"%(request_subject)s\" ಸà³à²µà²°à³‚ಪ \"%(subject_base)s\" ಕà³à²•à³† "
-"ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
+msgstr "ಕೋರಿಕೆ ವಿಷಯ \"%(request_subject)s\" ಸà³à²µà²°à³‚ಪ \"%(subject_base)s\" ಕà³à²•à³† ಹೊಂದಿಕೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²"
#: ipaserver/plugins/selfsign.py:104
#, python-format
@@ -7178,283 +7293,297 @@ msgstr "ಮà³à²‚ದಿನ ಸೀರಿಯಲೠನಂಬರೠಅನà³à²¨à³
msgid "certutil failure"
msgstr "certutil ವಿಫಲತೆ"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7474,248 +7603,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:390
-#, c-format
-msgid "Unable to determine root DN of %s\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7806,5 +7923,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/ko.po b/install/po/ko.po
index e8c3450b5..47157653e 100644
--- a/install/po/ko.po
+++ b/install/po/ko.po
@@ -2,160 +2,510 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:50+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/team/ko/)\n"
+"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +535,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +544,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +563,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,221 +571,437 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -537,673 +1089,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1265,155 +1724,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1426,189 +1836,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1616,40 +2008,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1663,129 +2067,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1798,6 +2179,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1807,11 +2196,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1837,7 +2229,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1866,357 +2258,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2253,183 +2852,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2472,145 +3016,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2632,7 +3153,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2640,7 +3161,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2649,7 +3170,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2660,262 +3181,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2940,82 +3409,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3042,92 +3505,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3183,217 +3797,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3425,1016 +4023,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4474,63 +5210,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4571,130 +5291,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4703,46 +5488,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4760,10 +5522,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4772,7 +5535,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4798,104 +5561,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4916,33 +5678,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -4998,135 +5743,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5148,32 +5858,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5196,18 +5893,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5216,94 +5918,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5348,164 +6023,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5542,18 +6197,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5562,94 +6218,71 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5677,88 +6310,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5811,117 +6429,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5938,187 +6520,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6128,223 +6699,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6385,234 +6974,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6620,504 +7187,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
-msgstr ""
-
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
-msgstr ""
-
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7138,6 +7262,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7162,283 +7291,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7458,248 +7601,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7790,5 +7921,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/nl.po b/install/po/nl.po
index 4dd4cbc9c..6cd4cc0d9 100644
--- a/install/po/nl.po
+++ b/install/po/nl.po
@@ -2,161 +2,512 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Geert Warrink <geert.warrink@onsnet.nu>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-04 18:47+0000\n"
-"Last-Translator: warrink <geert.warrink@onsnet.nu>\n"
-"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/team/nl/)\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
+"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
+"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Wachtwoorden komen niet overheen!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -186,6 +537,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -194,20 +546,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -221,13 +565,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -236,222 +573,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -539,673 +1093,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1267,155 +1731,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1428,189 +1843,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1618,40 +2015,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1665,130 +2074,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1801,6 +2187,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1810,11 +2204,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1840,7 +2237,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1869,357 +2266,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2256,183 +2860,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2475,146 +3024,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2636,7 +3162,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2644,7 +3170,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2653,7 +3179,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2664,263 +3190,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2945,83 +3419,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3048,93 +3516,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3190,218 +3809,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3433,1017 +4036,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4483,63 +5224,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4580,130 +5305,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4712,46 +5502,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4769,10 +5536,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4782,7 +5550,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4808,105 +5576,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4927,33 +5694,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5009,136 +5759,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5160,32 +5875,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5208,18 +5910,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5228,95 +5935,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5361,164 +6041,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5555,18 +6215,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5575,95 +6236,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5691,89 +6329,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5826,118 +6449,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5954,189 +6541,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6146,223 +6722,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6403,235 +6998,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6639,505 +7212,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Wachtwoorden komen niet overheen!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7158,6 +7287,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7182,283 +7316,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7478,248 +7626,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7810,5 +7946,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/pl.po b/install/po/pl.po
index 09b2a31c2..0d1d3408e 100644
--- a/install/po/pl.po
+++ b/install/po/pl.po
@@ -2,164 +2,516 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# jdennis <jdennis@redhat.com>, 2011.
# Piotr DrÄ…g <piotrdrag@gmail.com>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-10 21:41+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
-"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/team/pl/)\n"
+"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-#: ipalib/plugins/__init__.py:20
-msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Hasła się nie zgadzają."
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Anulowano."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
msgstr ""
-#: ipalib/plugins/aci.py:20
-msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
-msgstr "Lista wartości ACI"
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
-#: ipalib/plugins/aci.py:172
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "nieznany błąd %(code)d z %(server)s: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "wystąpił wewnętrzny błąd"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "nieznane polecenie %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "błąd w serwerze %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "nie można połączyć się z %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "BÅ‚Ä…d Kerberosa: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "nie otrzymano danych uwierzytelniajÄ…cych Kerberosa"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Zgłoszenie wygasło"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających"
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Nie można rozwiązać KDC dla żądanego obszaru"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Niewystarczający dostęp: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "polecenie %(name)r nie przyjmuje parametrów"
+
+#: ipalib/errors.py:664
+#, 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] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr"
+msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry"
+msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "pokrywanie parametrów i opcji: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r jest wymagane"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "nieprawidłowe %(name)r: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "API nie posiada takiej przestrzeni nazw: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Hasła się nie zgadzają"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Polecenie nie jest zaimplementowane"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Ten wpis już istnieje"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa komputera: %(reason)s"
+
+#: ipalib/errors.py:877
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "Obszar naczelnika nie zgadza siÄ™ z obszarem dla tego serwera IPA"
+
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Te polecenie wymaga dostępu roota"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "To jest już grupa POSIX"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Grupa nie może być własnym elementem"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Dekodowanie base64 nie powiodło się: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "Nie można dodać grupy jako elementu jej samej"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "Nie można usunąć domyślnej grupy użytkowników"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr "Komputer nie posiada pasujÄ…cego wpisu DNS A"
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw odłączona."
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "zmiana koliduje z innÄ… zmianÄ…"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "żadne modyfikacje nie zostaną wykonane"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "przekroczono ograniczenia dla tego zapytania"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Nie można ukończyć działania na certyfikacie: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "BÅ‚Ä…d formatu certyfikatu: %(error)s"
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "SÅ‚ownik reprezentujÄ…cy wpis LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Lista wpisów LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik"
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "niepoprawny typ"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "Dozwolona jest tylko jedna wartość"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "musi być prawdą lub fałszem"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "musi być liczba całkowitą"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "musi wynosić co najmniej %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "może wynosić co najwyżej %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "musi być liczbą dziesiętną"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "musi wynosić co najmniej %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "może wynosić co najwyżej %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "musi pasować do wzorca \"%(pattern)s\""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "musi być danymi binarnymi"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "musi wynosić co najmniej %(minlength)d bajtów"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "może wynosić co najwyżej %(maxlength)d bajtów"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "musi wynosić dokładnie %(length)d bajtów"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "musi być tekstem w unikodzie"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "musi wynosić co najmniej %(minlength)d znaków"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "może wynosić co najwyżej %(maxlength)d znaków"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "musi wynosić dokładnie %(length)d znaków"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
msgstr ""
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "musi być jednym z %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Lista wartości ACI"
+
#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr "wartości \"type\", \"filter\", \"subtree\" i \"targetgroup\" są wzajemnie wyłączne"
@@ -172,9 +524,7 @@ msgstr ""
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"co najmniej jedna z wartości: \"type\", \"filter\", \"subtree\", "
-"\"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana"
+msgstr "co najmniej jedna z wartości: \"type\", \"filter\", \"subtree\", \"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -189,6 +539,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "Grupa \"%s\" nie istnieje"
@@ -197,20 +548,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "Nie odnaleziono ACI o nazwie \"%s\""
@@ -224,13 +567,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACI"
@@ -239,225 +575,441 @@ msgstr "ACI"
msgid "ACI name"
msgstr "Nazwa ACI"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "Grupa użytkowników"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr "Grupa użytkowników, do której ACI zapewnia dostęp"
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "Uprawnienia"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
-msgstr ""
-"lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, "
-"dodanie, usunięcie, wszystkie)"
+msgstr "lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, dodanie, usunięcie, wszystkie)"
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "Atrybuty"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr "Lista atrybutów oddzielonych przecinkami"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "Typ"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "Element"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "Element grupy"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "Filtr"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Dozwolony filtr LDAP (np. ou=Inżynieria)"
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr "Poddrzewo"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr "Poddrzewo, do którego zastosować ACI"
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "Grupa docelowa"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr "Grupa, do której zastosować ACI"
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr "Cel własnego wpisu (\"self\")"
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr "Zastosowanie ACI do własnego wpisu (\"self\")"
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "Utworzono ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Usunięto ACI \"%(value)s\""
+
+#: 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "Zmodyfikowano ACI \"%(value)s\""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "Pasuje %(count)d ACI"
+msgstr[1] "PasujÄ… %(count)d ACI"
+msgstr[2] "Pasuje %(count)d ACI"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "Opis"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "Usunięto ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "Zmodyfikowano ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Modify an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "Pasuje %(count)d ACI"
-msgstr[1] "PasujÄ… %(count)d ACI"
-msgstr[2] "Pasuje %(count)d ACI"
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:450
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Delete an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
msgid ""
"\n"
-" Execute the aci-show operation.\n"
+" Search for automember rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automember.py:486
+msgid ""
"\n"
-" Returns the entry\n"
+" Display information about an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:502
+msgid ""
"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -545,673 +1097,586 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "Położenie"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr "Mapa"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "Opis"
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr "Automatyczne montowanie map"
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "Klucz"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr "Informacje o montowaniu"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "opis"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr "Automatyczne montowanie kluczy"
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "Punkt montowania"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr "Mapa nadrzędna"
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
-msgid "New mount information"
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:846
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
+msgstr "Hasło"
+
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr "Elementy, które się nie powiodły"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr "Elementy użytkowników"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr "Elementy grupy"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr "Element komputerów"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr "Element grupy komputerów"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr "Element grupy komputerów"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr "Grupy polecenia sudo"
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr "Usługi elementów"
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr "Grupy usługi elementów"
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr "Zewnętrzny komputer"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr "nie odnaleziono wpisu kontenera (%(container)s)"
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: nie odnaleziono %(oname)s"
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: nie odnaleziono %(oname)s"
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr "Tryb ciągły: bez zatrzymywania po błędach."
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr "wpis został usunięty podczas modyfikowania"
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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 "Elementy, które nie mogły zostać dodane"
-#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr "Liczba dodanych elementów"
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr "Liczba elementów, które nie mogły zostać usunięte"
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr "Liczba usuniętych elementów"
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr "Ograniczenie czasu"
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr "Ograniczenie czasu wyszukiwania w sekundach"
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr "Ograniczenie rozmiaru"
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr "Maksymalna liczba zwróconych wpisów"
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1273,156 +1738,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się:"
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się: %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr "Naczelnik"
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr "Naczelnik usługi dla tego certyfikatu (np. HTTP/test.przykład.pl)"
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr "automatycznie dodaj naczelnika, jeśli nie istnieje"
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "Certyfikat"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "Temat"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr "Wydawca"
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr "Nie wcześniej"
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr "Nie po"
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr "Odcisk (MD5)"
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr "Odcisk (SHA1)"
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "Numer seryjny"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość"
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "Identyfikator żądania"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "Stan żądania"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
-msgstr ""
-"Numer seryjny w formie dziesiętnej lub szesnastkowej, jeśli poprzedzone 0x"
+msgstr "Numer seryjny w formie dziesiętnej lub szesnastkowej, jeśli poprzedzone 0x"
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr "Przyczyna unieważnienia"
@@ -1435,189 +1850,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "Unieważniono"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "Przyczyna"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "Przyczyna unieważnienia certyfikatu (0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr ""
+
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr "Cofnięto unieważnienie"
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "BÅ‚Ä…d"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
-"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"NOTES:\n"
"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr "Konfiguracja"
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr "Podstawa katalogu domowego"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "Domyślna powłoka"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "Domyślna grupa użytkowników"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr "Ograniczenie czasu wyszukiwania"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr "Ograniczenie rozmiaru wyszukiwania"
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr "Pola wyszukiwania użytkowników"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "Tryb migracji"
-
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr "Podstawa tematu certyfikatu"
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1625,40 +2022,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1672,131 +2081,108 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1809,6 +2195,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1818,11 +2212,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1848,7 +2245,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1877,357 +2274,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr "Nazwa strefy"
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr "Nazwa strefy (FQDN)"
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr "Numer seryjny SOA"
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr "Odświeżenie SOA"
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr "Ponowienie SOA"
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr "Wygaszenie SOA"
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr "Minimalne SOA"
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr "Czas życia SOA"
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr "Klasa SOA"
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr "Polityka aktualizacji BIND"
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
-msgstr "Czas życia"
-
-#: ipalib/plugins/dns.py:538
-msgid "Class"
-msgstr "Klasa"
-
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
+msgstr "Czas życia"
+
+#: ipalib/plugins/dns.py:944
+msgid "Class"
+msgstr "Klasa"
+
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr "Odnaleziono \"%(value)s\""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr "Nazwa komputera"
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr "Nie odnaleziono komputera \"%(host)s\""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2264,183 +2868,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
-msgstr "Hasło"
-
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2483,147 +3032,124 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "Grupy użytkowników"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "Nazwa grupy"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "Opis grupy"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr "GID (ta opcja umożliwia jego ręczne ustawienie)"
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "Dodano grupÄ™ \"%(value)s\""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "Usunięto grupę \"%(value)s\""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "Zmodyfikowano grupÄ™ \"%(value)s\""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr "zmiana na grupÄ™ POSIX"
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "Pasuje %(count)d grupa"
msgstr[1] "PasujÄ… %(count)d grupy"
msgstr[2] "Pasuje %(count)d grup"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Odłączono grupę \"%(value)s\" od użytkownika \"%(value)s\""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr "modyfikowanie wpisów użytkowników nie jest dozwolone"
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr "modyfikowanie wpisów grup nie jest dozwolone"
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr "Nie jest zarzÄ…dzanÄ… grupÄ…"
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2645,7 +3171,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2653,7 +3179,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2662,7 +3188,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2673,264 +3199,212 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "Nazwa reguły"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "Typ reguły (zezwalanie lub zabranianie)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr "Typ reguły"
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "Kategoria użytkowników"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr "Kategoria użytkowników, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr "Kategoria komputerów"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr "Kategoria komputerów, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr "Kategoria komputerów źródłowych"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr "Kategoria komputerów źródłowych, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr "Kategoria usług"
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr "Kategoria usług, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr "WÅ‚Ä…czone"
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "Użytkownicy"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr "Grupy"
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr "Komputery"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr "Grupy komputerów"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
-msgstr "Komputery źródłowe"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr "Usługi"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr "Grupy usług"
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "Czas dostępu"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2955,70 +3429,67 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "Nazwa usługi"
+msgid "HBAC Services"
+msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "Nazwa usługi"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
@@ -3026,13 +3497,10 @@ msgstr[1] ""
msgstr[2] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3059,94 +3527,245 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr "Nazwa grupy usługi"
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr "Opis grupy usługi HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "Nazwa użytkownika"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3202,219 +3821,203 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Wymagana jest w pełni kwalifikowana nazwa komputera"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr "Tabela kluczy"
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr "Nazwa komputera"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr "Opis tego komputera"
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr "Lokalizacja"
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "Lokalizacja komputera (np. \"Baltimore, MD\")"
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Położenie komputera (np. \"Laboratorium nr 2\")"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "Platforma"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Platforma sprzętowa komputera (np. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "System operacyjny"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "System operacyjny komputera i jego wersja (np. \"Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "Hasło użytkownika"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr "Hasło używane w zapisywaniu większej części"
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr "Certyfikat serwera zakodowany za pomocÄ… Base-64"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr "Nazwa naczelnika"
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "Dodano komputer \"%(value)s\""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr "wymuszenie nazwy komputera nawet, jeśli nie w DNS"
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "Usunięto komputer \"%(value)s\""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "Zmodyfikowano komputer \"%(value)s\""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr "Nazwa naczelnika Kerberosa dla tego komputera"
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr ""
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "Pasuje %(count)d komputer"
msgstr[1] "Pasuje %(count)d komputery"
msgstr[2] "Pasuje %(count)d komputerów"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3446,1018 +4049,1156 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr "Grupa komputerów"
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr "Nazwa grupy komputerów"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr "Opis tej grupy komputerów"
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "Dodano grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Usunięto grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "Zmodyfikowano grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "Pasuje %(count)d grupa komputerów"
msgstr[1] "Pasują %(count)d grupy komputerów"
msgstr[2] "Pasuje %(count)d grup komputerów"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr "Nazwa obiektu do wyeksportowania"
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:64
msgid "Dict of JSON encoded IPA Objects"
msgstr "Słownik obiektów IPA zakodowanych w formacie JSON"
-#: ipalib/plugins/internal.py:53
+#: ipalib/plugins/internal.py:65
msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr "Zalogowano jako"
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
-msgstr ""
-
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
-msgstr ""
+#: ipalib/plugins/internal.py:179
+msgid "Add"
+msgstr "Dodaj"
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
-msgstr ""
+#: ipalib/plugins/internal.py:186
+msgid "Find"
+msgstr "Znajdź"
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
-msgstr ""
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
+msgstr "Usuń"
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
-msgstr ""
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
+msgstr "Przywróć"
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
-msgstr ""
+#: ipalib/plugins/internal.py:195
+msgid "Update"
+msgstr "Zaktualizuj"
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "Dane"
-
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
-msgstr ""
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
+msgstr "Wróć na górę"
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
-msgstr "Nazwa komputera"
-
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
-msgstr ""
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
+msgstr "Zalogowano jako"
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
-msgstr "Polityka haseł"
-
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
-msgstr "Polecenia"
-
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr "Adres pocztowy"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "Dane"
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
-msgstr "Różne informacje"
-
#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+msgid "Other Record Types"
+msgstr ""
+
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
-msgstr "Dodaj"
+msgid "Certificates"
+msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
-msgstr "Zapisz siÄ™"
+msgid "Import Certificate"
+msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
-msgstr "Znajdź"
+msgid "Enter the Base64-encoded entitlement certificate below:"
+msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
-msgstr "Przywróć"
-
-#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr "Usuń"
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Register"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
+#: ipalib/plugins/internal.py:333
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
-#: ipalib/plugins/internal.py:337
-msgid "Update"
-msgstr "Zaktualizuj"
-
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
-msgstr "Szybkie odnośniki"
+msgid "Access Denied"
+msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
-msgstr "Zaznacz wszystko"
+msgid "Access Granted"
+msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
-msgstr "Odznacz wszystko"
+msgid "Include Disabled"
+msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
-msgstr "Wróć na górę"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
+msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr "Nazwa komputera"
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
-msgstr "Automatyczne montowanie"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
+msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
-msgstr "Słownik komunikatów umiędzynaradawiania"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
+msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr "Polityka haseł"
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "Grupy"
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr "Polecenia"
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr "Adres pocztowy"
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr "Różne informacje"
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr "Szybkie odnośniki"
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr "Zaznacz wszystko"
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr "Odznacz wszystko"
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr "Automatyczne montowanie"
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr "Słownik komunikatów umiędzynaradawiania"
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4497,63 +5238,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr "Polityka zgłoszeń Kerberosa"
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr "Nazwa użytkownika"
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr "Zarządzanie polityką zgłoszeń dla podanego użytkownika"
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr "Maksymalny czas życia"
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr "Minimalny czas życia zgłoszenia (sekundy)"
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr "Maksymalne odnowienie"
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr "Maksymalny czas, w którym możliwe jest odnowienie (sekundy)"
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4594,192 +5319,220 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
-msgstr ""
-"Naczelnik Kerberosa %s już istnieje. Należy użyć polecenia \"ipa user-mod\","
-" aby ustawić go ręcznie."
+msgstr "Naczelnik Kerberosa %s już istnieje. Należy użyć polecenia \"ipa user-mod\", aby ustawić go ręcznie."
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
+msgstr "Dodanie użytkownika do domyślnej grupy nie powiodło się. Należy użyć polecenia \"ipa group-add-member\", aby dodać go ręcznie."
+
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
msgstr ""
-"Dodanie użytkownika do domyślnej grupy nie powiodło się. Należy użyć "
-"polecenia \"ipa group-add-member\", aby dodać go ręcznie."
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr "Adres URI LDAP"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr "Adres URI LDAP serwera DS, z którego migrować"
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr "hasło Bind"
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr "DN dowiÄ…zania"
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr "Kontener użytkownika"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr "RDN kontenera dla użytkowników w DS"
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr "Kontener grupy"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr "RDN kontenera dla grup w DS"
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu."
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
-msgstr ""
-"Lista obiektów, które nie mogły zostać migrowane, ułożonych w kategorie "
-"według typu."
+msgstr "Lista obiektów, które nie mogły zostać migrowane, ułożonych w kategorie według typu."
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr "Fałsz, jeśli wyłączono tryb migracji"
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr "lista %s oddzielonych przecinkami do wykluczenia z migracji"
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
-msgstr ""
-"Tryb migracji jest wyłączony. Należy użyć polecenia \"ipa config-mod\", aby "
-"go włączyć."
+msgstr "Tryb migracji jest wyłączony. Należy użyć polecenia \"ipa config-mod\", aby go włączyć."
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
"with clear text passwords. All migrated users need to\n"
"login at https://your.domain/ipa/migration/ before they\n"
"can use their Kerberos accounts."
-msgstr ""
-"Hasła zostały migrowane w formacie sprzed mieszania.\n"
-"Program IPA nie może utworzyć kluczy Kerberosa, chyba\n"
-"że zostały podane z hasłami w zwykłym tekście. Wszyscy\n"
-"migrowani użytkownicy muszą zalogować się na stronie\n"
-"https://twoja.domena/ipa/migration/, zanim będą mogli\n"
-"używać swoich kont Kerberosa."
+msgstr "Hasła zostały migrowane w formacie sprzed mieszania.\nProgram IPA nie może utworzyć kluczy Kerberosa, chyba\nże zostały podane z hasłami w zwykłym tekście. Wszyscy\nmigrowani użytkownicy muszą zalogować się na stronie\nhttps://twoja.domena/ipa/migration/, zanim będą mogli\nużywać swoich kont Kerberosa."
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr "Nie odnaleziono kontenera dla %(container)s"
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d zmiennych"
@@ -4797,10 +5550,11 @@ msgid "Number of variables returned (<= total)"
msgstr "Liczba zwróconych zmiennych (<= razem)"
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "Wczytano %(count)d wtyczkÄ™"
@@ -4811,7 +5565,7 @@ msgstr[2] "Wczytano %(count)d wtyczek"
msgid "Number of plugins loaded"
msgstr "Liczba wczytanych wtyczek"
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4837,106 +5591,105 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr "Komputer elementu"
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr "Grupy sieciowe"
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr "Nazwa grupy sieciowej"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr "Opis grupy sieciowej"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr "Nazwa domeny NIS"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr "Unikalny identyfikator IPA"
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4957,33 +5710,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5039,137 +5775,102 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5191,32 +5892,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5239,18 +5927,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5259,96 +5952,69 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5393,166 +6059,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:87
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+msgstr "priorytet musi być unikalną wartością (%(prio)d jest już używane przez %(gname)s)"
+
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-"priorytet musi być unikalną wartością (%(prio)d jest już używane przez "
-"%(gname)s)"
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr "Grupa"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr "Zarządzanie polityką haseł dla podanej grupy"
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr "Maksymalny czas życia (w dniach)"
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr "Maksymalny czas życia hasła (w dniach)"
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr "Minimalny czas życia (w godzinach)"
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr "Minimalny czas życia hasła (w godzinach)"
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr "Rozmiar historii"
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr "Rozmiar historii haseł"
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr "Klasy znaków"
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr "Minimalna liczba klas znaków"
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr "Minimalna długość"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr "Minimalna długość hasła"
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr "Priorytet"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr "Priorytet polityki (wyższy numer równa się niższemu priorytetowi"
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny."
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "nie można ustawiać priorytetu dla globalnej polityki"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr "Użytkownik"
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr "Wyświetlanie aktywnej polityki dla podanego użytkownika"
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5589,18 +6233,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5609,96 +6254,73 @@ msgid "A description of this role-group"
msgstr "Opis tej grupy rol"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5726,90 +6348,75 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5862,119 +6469,83 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr "Naczelnik usługi"
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr "Dodano usługę \"%(value)s\""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr "wymuszenie nazwy naczelnika nawet, jeśli nie w DNS"
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr "Usunięto usługę \"%(value)s\""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr "Zmodyfikowano usługę \"%(value)s\""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "Pasuje %(count)d usługa"
msgstr[1] "Pasuje %(count)d usługi"
msgstr[2] "Pasuje %(count)d usług"
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5991,191 +6562,180 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr "Polecenie sudo"
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr "Opis tego polecenia"
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
-msgstr "Dodano polecenie sudo \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
+msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
-msgstr "Usunięto polecenie sudo \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
-msgstr "Zmodyfikowano polecenie sudo \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
-msgstr[0] "Pasuje %(count)d polecenie sudo"
-msgstr[1] "Pasuje %(count)d polecenia sudo"
-msgstr[2] "Pasuje %(count)d poleceń sudo"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
-msgstr "Dodano grupÄ™ polecenia sudo \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
+msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
-msgstr "Usunięto grupę polecenia sudo \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
-msgstr "Zmodyfikowano grupÄ™ polecenia sudo \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
-msgstr[0] "Pasuje %(count)d grupa polecenia sudo"
-msgstr[1] "PasujÄ… %(count)d grupy polecenia sudo"
-msgstr[2] "Pasuje %(count)d grup polecenia sudo"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6185,223 +6745,243 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr "Polecenia zezwolone sudo"
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr "Polecenia zabronione sudo"
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
-msgstr "Dodano regułę sudo \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
+msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6442,238 +7022,214 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
+msgstr ""
+
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr "Login użytkownika"
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr "ImiÄ™"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr "Nazwisko"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr "Pole GECOS"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr "Powłoka logowania"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr "Naczelnik Kerberosa"
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr "Adres e-mail"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
-msgstr ""
-"Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie "
-"podany)"
+msgstr "Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie podany)"
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr "Adres zamieszkania"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr "Numer telefonu"
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr "Numer telefonu komórkowego"
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr "Numer pagera"
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr "Numer faksu"
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "Dodano użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "Usunięto użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "Zmodyfikowano użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr "WÅ‚asny"
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa"
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "Pasuje %(count)d użytkownik"
msgstr[1] "Pasuje %(count)d użytkowników"
msgstr[2] "Pasuje %(count)d użytkowników"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr "Wyłączono konto użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr "Włączono konto użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6681,514 +7237,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
+" an administrator."
msgstr ""
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: "
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Hasła się nie zgadzają."
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "Anulowano."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-"klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na "
-"%(server)r"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "nieznany błąd %(code)d z %(server)s: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "wystąpił wewnętrzny błąd"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "nieznane polecenie %(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "błąd w serwerze %(server)r: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "nie można połączyć się z %(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "BÅ‚Ä…d Kerberosa: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr "nie otrzymano danych uwierzytelniajÄ…cych Kerberosa"
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "Zgłoszenie wygasło"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne"
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających"
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Nie można rozwiązać KDC dla żądanego obszaru"
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Niewystarczający dostęp: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "polecenie %(name)r nie przyjmuje parametrów"
-
-#: ipalib/errors.py:661
-#, 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] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr"
-msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry"
-msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów"
-
-#: ipalib/errors.py:691
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "pokrywanie parametrów i opcji: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r jest wymagane"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "nieprawidłowe %(name)r: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "API nie posiada takiej przestrzeni nazw: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "Hasła się nie zgadzają"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "Polecenie nie jest zaimplementowane"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "Ten wpis już istnieje"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
-msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę"
-
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-"Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa "
-"komputera: %(reason)s"
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr "Obszar naczelnika nie zgadza siÄ™ z obszarem dla tego serwera IPA"
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "Te polecenie wymaga dostępu roota"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "To jest już grupa POSIX"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r"
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "Grupa nie może być własnym elementem"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Dekodowanie base64 nie powiodło się: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "Nie można dodać grupy jako elementu jej samej"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "Nie można usunąć domyślnej grupy użytkowników"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr "Komputer nie posiada pasujÄ…cego wpisu DNS A"
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-"Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw "
-"odłączona."
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r"
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "zmiana koliduje z innÄ… zmianÄ…"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "żadne modyfikacje nie zostaną wykonane"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "przekroczono ograniczenia dla tego zapytania"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Nie można ukończyć działania na certyfikacie: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "BÅ‚Ä…d formatu certyfikatu: %(error)s"
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania"
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "SÅ‚ownik reprezentujÄ…cy wpis LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "Lista wpisów LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik"
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "niepoprawny typ"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "Dozwolona jest tylko jedna wartość"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "musi być prawdą lub fałszem"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "musi być liczba całkowitą"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "musi wynosić co najmniej %(minvalue)d"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "może wynosić co najwyżej %(maxvalue)d"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "musi być liczbą dziesiętną"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "musi wynosić co najmniej %(minvalue)f"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "może wynosić co najwyżej %(maxvalue)f"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "musi pasować do wzorca \"%(pattern)s\""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "musi być danymi binarnymi"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "musi wynosić co najmniej %(minlength)d bajtów"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "może wynosić co najwyżej %(maxlength)d bajtów"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "musi wynosić dokładnie %(length)d bajtów"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "musi być tekstem w unikodzie"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "musi wynosić co najmniej %(minlength)d znaków"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "może wynosić co najwyżej %(maxlength)d znaków"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "musi wynosić dokładnie %(length)d znaków"
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "musi być jednym z %(values)r"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Nie można komunikować się z CMS (%s)"
@@ -7209,14 +7312,17 @@ msgstr "Platforma sprzętowa komputera (np. Lenovo T61)"
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)"
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
-"Temat żądania \"%(request_subject)s\" nie pasuje do formatu "
-"\"%(subject_base)s\""
+msgstr "Temat żądania \"%(request_subject)s\" nie pasuje do formatu \"%(subject_base)s\""
#: ipaserver/plugins/selfsign.py:104
#, python-format
@@ -7235,291 +7341,297 @@ msgstr "nie można uzyskać następnego numeru szeregowego"
msgid "certutil failure"
msgstr "narzędzie certyfikatów nie powiodło się"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr "nie można otworzyć pliku konfiguracji %s\n"
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr "nie można wykonać stat() na pliku konfiguracji %s\n"
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr "błąd odczytu\n"
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr "Brak typów szyfrowania preferowanych przez system?\n"
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr "Brak pamięci?\n"
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr "Brak pamięci\n"
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr "Ostrzeżenie o nierozpoznanym typie szyfrowania: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr "Ostrzeżenie o nierozpoznanym typie salt: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr "Porównanie typów szyfrowania nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr "Utworzenie losowego klucza nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr "Utworzenie klucza nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr "Brak pamięci.\n"
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr "Błędny lub nieobsługiwany typ salt (%d).\n"
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr "Żadne klucze nie zostały zaakceptowane przez KDC\n"
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr "Brak pamięci \n"
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr "Brak pamięci.\n"
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr "Utworzenie kontroli nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr "Nie można zainicjować biblioteki LDAP.\n"
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr "Nie można ustawić opcji LDAP.\n"
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr "Proste dowiązanie nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr "Dowiązanie SASL nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr "Działanie nie powiodło się. %s\n"
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr "Brak kontroli odpowiedzi.\n"
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr "ber_init() nie powiodło się, nieprawidłowa kontrola?\n"
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr "ber_scanf() nie powiodło się, nieprawidłowa kontrola?\n"
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr "Nowe hasło naczelnika"
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr "Sprawdzenie hasła naczelnika"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr "Wyświetla tak mało, jak to możliwe"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr "Wyświetla tylko błędy"
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr "Kontaktuje siÄ™ z konkretnym serwerem KDC"
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr "Nazwa serwera"
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
-msgstr ""
-"Naczelnik, dla którego uzyskać tablicę kluczy (np.: "
-"ftp/ftp.przykÅ‚ad.pl@PRZYKÅAD.PL)"
+msgstr "Naczelnik, dla którego uzyskać tablicÄ™ kluczy (np.: ftp/ftp.przykÅ‚ad.pl@PRZYKÅAD.PL)"
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr "Nazwa naczelnika usługi Kerberos"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr "Plik, w którym przechowywać informację o tablicy kluczy"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr "Nazwa pliku tablicy kluczy"
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr "Typy szyfrowania do zażądania"
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr "Lista typów szyfrowania oddzielonych przecinkami"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr "Wyświetla listę dozwolonych typów szyfrowania i kończy działanie"
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr "Dozwolone typy szyfrowania"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr "Pyta o nielosowe hasło do użycia z naczelnikiem"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr "DN LDAP"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr "DN do dowiązania, jeśli nie jest używany Kerberos"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr "Hasło LDAP"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr "hasło do użycia, jeśli nie jest używany Kerberos"
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n"
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr "Obsługiwane typy szyfrowania:\n"
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr "Ostrzeżenie: przekonwertowanie typu (#%d) nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr "Hasło dowiązania jest wymagane podczas używania dowiązania DN.\n"
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
-msgstr ""
-"Ostrzeżenie: typy salt nie są uwzględniane z losowymi hasłami (proszę "
-"zobaczyć opcję -P)\n"
+msgstr "Ostrzeżenie: typy salt nie są uwzględniane z losowymi hasłami (proszę zobaczyć opcję -P)\n"
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Nieprawidłowa nazwa naczelnika usługi\n"
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
-msgstr ""
-"Nie odnaleziono pamięci podręcznej danych uwierzytelniających. Istnieje "
-"zgłoszenie Kerberosa?\n"
+msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających. Istnieje zgłoszenie Kerberosa?\n"
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
-msgstr ""
-"Nie odnaleziono naczelnika użytkownika Kerberosa. Istnieje prawidłowa pamięć"
-" podręczna danych uwierzytelniających?\n"
+msgstr "Nie odnaleziono naczelnika użytkownika Kerberosa. Istnieje prawidłowa pamięć podręczna danych uwierzytelniających?\n"
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr "Otwarcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr "Utworzenie materiału klucza nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr "Dodanie klucza do tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr "Zamknięcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr "Pomyślnie pobrano tablicę kluczy i przechowano ją w: %s\n"
@@ -7539,257 +7651,236 @@ msgstr "Brak uprawnień do zapisu pliku tablicy kluczy \"%s\"\n"
msgid "access() on %s failed: errno = %d\n"
msgstr "access() w %s nie powiodło się: errno = %d\n"
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr "Nie można włączyć SSL w LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr "Nie można ustawić wersji LDAP\n"
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr "Dowiązanie nie powiodło się: %s\n"
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr "Wyszukiwanie %s w rootdse nie powiodło się z błędem %d"
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr "Brak wartości dla %s"
+#: ipa-client/ipa-join.c:316
+#, c-format
+msgid "Search for IPA namingContext failed with error %d\n"
+msgstr ""
+
#: ipa-client/ipa-join.c:322
#, c-format
+msgid "IPA namingContext not found\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:368
+#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr "Wyszukiwanie ipaCertificateSubjectBase nie powiodło się z błędem %d"
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:439
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr "Nie można ustalić głównego DN %s\n"
-#: ipa-client/ipa-join.c:399
-#, c-format
-msgid "Unable to determine certificate subject of %s\n"
-msgstr "Nie można ustalić tematu certyfikatu %s\n"
-
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
-msgstr "Nie można utworzyć połączenia LDAP do %s\n"
-
-#: ipa-client/ipa-join.c:432
-#, c-format
-msgid "Searching with %s in %s\n"
-msgstr "Wyszukiwanie %s w %s\n"
-
-#: ipa-client/ipa-join.c:438
-#, c-format
-msgid "ldap_search_ext_s: %s\n"
-msgstr "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
+msgstr "Niepoprawne hasło.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
-msgstr "Nie można odnaleźć komputera \"%s\"\n"
+msgid "Unable to determine certificate subject of %s\n"
+msgstr "Nie można ustalić tematu certyfikatu %s\n"
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
-msgstr "Nie można uzyskać binddn dla komputera \"%s\"\n"
+msgid "Enrollment failed. %s\n"
+msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
-msgstr "Komputer posiada już naczelnika, próba dowiązania mimo to\n"
+msgid "principal not found in XML-RPC response\n"
+msgstr "nie odnaleziono naczelnika w odpowiedzi XML-RPC\n"
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr "Komputer jest już dołączony.\n"
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr "Niepoprawne hasło.\n"
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr "nie odnaleziono naczelnika we wpisie komputera\n"
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr "nie odnaleziono naczelnika w odpowiedzi XML-RPC\n"
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr "Nie można ustalić serwera IPA z %s\n"
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr "Nazwa komputera musi być w pełni kwalifikowana: %s\n"
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
-msgstr ""
-"Nie można dołączyć do komputera: zainicjowanie kontekstu Kerberosa nie "
-"powiodło się\n"
+msgstr "Nie można dołączyć do komputera: zainicjowanie kontekstu Kerberosa nie powiodło się\n"
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr "BÅ‚Ä…d podczas rozwiÄ…zywania tablicy kluczy: %s.\n"
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr "BÅ‚Ä…d podczas przetwarzania \"%s\": %s.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr "BÅ‚Ä…d podczas uzyskiwania poczÄ…tkowych danych uwierzytelniajÄ…cych: %s.\n"
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
-msgstr ""
-"Nie można utworzyć pamięci podręcznej danych uwierzytelniających Kerberosa\n"
+msgstr "Nie można utworzyć pamięci podręcznej danych uwierzytelniających Kerberosa\n"
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
-msgstr ""
-"Błąd podczas przechowywania danych uwierzytelniających w pamięci podręcznej:"
-" %s.\n"
+msgstr "Błąd podczas przechowywania danych uwierzytelniających w pamięci podręcznej: %s.\n"
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr "Pomyślnie wypisano.\n"
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr "Wypisanie nie powiodło się.\n"
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr "nie odnaleziono wyniku w odpowiedzi XML-RPC\n"
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
-msgstr ""
-"Nie można dołączyć do komputera: nie odnaleziono pamięci podręcznej danych "
-"uwierzytelniajÄ…cych Kerberosa\n"
+msgstr "Nie można dołączyć do komputera: nie odnaleziono pamięci podręcznej danych uwierzytelniających Kerberosa\n"
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
-msgstr ""
-"Nie można dołączyć do komputera: nie odnaleziono naczelnika użytkownika "
-"Kerberosa oraz nie podano hasła komputera.\n"
+msgstr "Nie można dołączyć do komputera: nie odnaleziono naczelnika użytkownika Kerberosa oraz nie podano hasła komputera.\n"
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr "fork() nie powiodło się\n"
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr "nie odnaleziono ipa-getkeytab\n"
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr "ipa-getkeytab posiada błędne uprawnienia?\n"
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr "wykonanie ipa-getkeytab nie powiodło się, errno %d\n"
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr "potomek został zakończony z %d\n"
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr "Podstawa tematu certyfikatu: %s\n"
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr "Wypisuje ten komputer z serwera IPA"
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr "Serwer IPA do użycia"
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7880,5 +7971,3 @@ msgstr "Zamknięcie tablicy kluczy nie powiodło się\n"
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr "krb5_kt_close %d: %s\n"
-
-
diff --git a/install/po/pt.po b/install/po/pt.po
index 64defce94..539479a9c 100644
--- a/install/po/pt.po
+++ b/install/po/pt.po
@@ -2,12 +2,13 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:50+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese <trans-pt@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -16,146 +17,496 @@ msgstr ""
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/pt_BR.po b/install/po/pt_BR.po
index bea77bbd4..2725a24d1 100644
--- a/install/po/pt_BR.po
+++ b/install/po/pt_BR.po
@@ -2,160 +2,511 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:48+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Portuguese (Brazilian) <trans-pt_br@lists.fedoraproject.org>\n"
+"Language-Team: Portuguese (Brazil) <trans-pt_br@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/ru.po b/install/po/ru.po
index 2ec7c7626..a3321258f 100644
--- a/install/po/ru.po
+++ b/install/po/ru.po
@@ -2,6 +2,7 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Alexander Ivanov <hrafn@hrafn.me>, 2011.
# Andrew Martynov <andrewm@inventa.ru>, 2010.
# jdennis <jdennis@redhat.com>, 2011.
@@ -9,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-10 21:41+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
"Language-Team: Russian <trans-ru@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -19,148 +20,499 @@ msgstr ""
"Language: ru\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-#: ipalib/plugins/__init__.py:20
-msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Повторно введите %(label)s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸: "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Пароли не Ñовпадают!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "Отменено."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
msgstr ""
-#: ipalib/plugins/aci.py:20
-msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
-msgstr "СпиÑок значений ACI"
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "%(cver)s клиент не ÑовмеÑтим Ñ %(sver)s Ñервером на %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "получена неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° %(code)d от %(server)s: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° на Ñервере %(server)r"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "ошибка на Ñервере %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "невозможно подключитьÑÑ Ðº %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Ðеверный JSON-RPC запроÑ: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Ошибка Kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "не получены региÑтрационные данные Kerberos"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Служба %(service)r не найдена в базе данных Kerberos"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "КÑш региÑтрационных данных не найден"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ Ð±Ð¸Ð»ÐµÑ‚Ð° иÑтек"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "Права доÑтупа на кÑш региÑтрационных данных неверны"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "Ошибочный формат в кÑше региÑтрационных данных "
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Ðе могу определить KDC Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð¾Ð¹ облаÑти (realm)"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "ÐедоÑтаточно прав Ð´Ð»Ñ Ð´Ð¾Ñтупа: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "команде %(name)r не требуютÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹"
+
+#: ipalib/errors.py:664
+#, 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] "команда %(name)r принимает не более %(count)d аргумента"
+msgstr[1] "команда %(name)r принимает не более %(count)d аргументов"
+msgstr[2] "команда %(name)r принимает не более %(count)d аргументов"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "наложение аргументов и параметров: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "требуетÑÑ %(name)r"
-#: ipalib/plugins/aci.py:172
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "неверный(ое) %(name)r: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api не предоÑтавлÑет такого проÑтранÑтва имен (namespace): %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Пароли не Ñовпадают"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Команда пока не реализована"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Ð¢Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ уже ÑущеÑтвует"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы Ñоздать Ñлужбу Ð´Ð»Ñ ÑƒÐ·Ð»Ð°, вам необходимо зарегиÑтрировать Ñтот узел"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ Ñлужбы не предÑтавлена в форме: Ñлужба/полноÑтью-определенное-имÑ: %(reason)s"
+
+#: ipalib/errors.py:877
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "ОблаÑÑ‚ÑŒ (realm) Ð´Ð»Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи не Ñовпадает Ñ Ð¾Ð±Ð»Ð°Ñтью IPA Ñервера"
+
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Этой команде требуютÑÑ Ð¿Ñ€Ð°Ð²Ð° админиÑтратора"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "Уже ÑвлÑетÑÑ posix группой"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ задана в форме отличной от user@REALM: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Группа не может входить в ÑоÑтав Ñамой ÑебÑ"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Декодирование Base64 прошло Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "Группа не может быть добавлена Ñама в ÑебÑ"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "Группа по умолчанию Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может быть удалена"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr "ХоÑÑ‚ не имеет ÑоответÑтвующей A запиÑи в DNS"
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "Удаление управлÑемой группы не разрешено. Сначала ее необходимо отключить."
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "нет команды или раздела Ñправки Ð´Ð»Ñ %(topic)r"
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "изменение противоречит другому Ñделанному изменению"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ внеÑены"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "Ð´Ð»Ñ Ñтого запроÑа превышены ограничениÑ"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñертификатом не может быть завершена: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "Результаты уÑечены. Попробуйте задать более точные уÑÐ»Ð¾Ð²Ð¸Ñ Ð¿Ð¾Ð¸Ñка"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
msgstr ""
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "СпиÑок запиÑей LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "неверный тип"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "ДопуÑкаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ одно значение"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "должно быть либо True, либо False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "должно быть целое"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "должно быть не менее %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "может быть не более %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "должно быть деÑÑтичным чиÑлом"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "должно быть не менее %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "может быть не более %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "должно Ñовпадать Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ \"%(pattern)s\""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ данными"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "должно Ñодержать не менее %(minlength)d байт"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "может Ñодержать не более %(maxlength)d байт"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "должно Ñодержать точно %(length)d байт"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÐµÐºÑтом Unicode"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "должно быть не короче %(minlength)d Ñимволов"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "может быть не длиннее %(maxlength)d Ñимволов"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "должно быть точно %(length)d Ñимволов длинной"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "СпиÑок значений ACI"
+
#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr "type, filter, subtree и targetgroup ÑвлÑÑŽÑ‚ÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð¸Ñключающими"
@@ -173,9 +525,7 @@ msgstr ""
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"требуетÑÑ ÐºÐ°Ðº минимум одно из: type, filter, subtree, targetgroup, attrs или"
-" memberof"
+msgstr "требуетÑÑ ÐºÐ°Ðº минимум одно из: type, filter, subtree, targetgroup, attrs или memberof"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -190,6 +540,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "Группа '%s' не ÑущеÑтвует"
@@ -198,20 +549,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "ACI Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\" не найден"
@@ -225,13 +568,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -240,223 +576,441 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "Группа пользователей"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "РазрешениÑ"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "Ðттрибуты"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr "Разделенный запÑтой ÑпиÑок аттрибутов"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "Тип"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "Член"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "Член группы"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "Создан ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Удален ACI \"%(value)s\""
+
+#: 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "Изменен ACI \"%(value)s\""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "Ñовпадает %(count)d ACI"
+msgstr[1] "Ñовпадают %(count)d ACI"
+msgstr[2] "Ñовпадают %(count)d ACI"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "ОпиÑание"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "Удален ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "Изменен ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Modify an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "Ñовпадает %(count)d ACI"
-msgstr[1] "Ñовпадают %(count)d ACI"
-msgstr[2] "Ñовпадают %(count)d ACI"
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:450
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Delete an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
msgid ""
"\n"
-" Execute the aci-show operation.\n"
+" Search for automember rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automember.py:486
+msgid ""
"\n"
-" Returns the entry\n"
+" Display information about an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:502
+msgid ""
"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -544,673 +1098,586 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "РаÑположение"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "ОпиÑание"
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "Ключ"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "опиÑание"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "Точка монтированиÑ"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Callback registration interface\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr "Ограничение по времени"
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr "Ограничение времени поиÑка в Ñекундах"
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr "Ограничение по размеру"
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1272,155 +1739,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr "Сбой при декодировании Certificate Signing Request"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Сбой при декодировании Certificate Signing Request: %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "Сертификат"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "Серийный номер"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "ID запроÑа"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð¿Ñ€Ð¾Ñа"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1433,189 +1851,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "Отозван"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "Причина"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "Причина Ð´Ð»Ñ Ð¾Ñ‚Ð·Ñ‹Ð²Ð° Ñертификата (0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "Ошибка"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr "ÐаÑтройка"
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "Оболочка по умолчанию"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "Группа пользователей по умолчанию"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "Режим миграции"
-
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1623,40 +2023,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1670,131 +2082,108 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1807,6 +2196,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1816,11 +2213,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1846,7 +2246,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1875,357 +2275,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
-msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸"
-
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
+msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸"
+
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr "ХоÑÑ‚ '%(host)s' не найден"
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2262,183 +2869,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2481,147 +3033,124 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "Группы пользователей"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "Ð˜Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "ОпиÑание группы"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "ID группы"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "Добавлена группа \"%(value)s\""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "Удалена группа \"%(value)s\""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "Изменена группа \"%(value)s\""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr "изменить на группу POSIX"
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "Ñовпадает %(count)d группа"
msgstr[1] "Ñовпадают %(count)d группы"
msgstr[2] "Ñовпадают %(count)d групп"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr "изменение запиÑей Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ доÑтупно"
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr "изменение запиÑей группы не доÑтупно"
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr "Ðет управлÑемой группы"
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2643,7 +3172,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2651,7 +3180,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2660,7 +3189,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2671,264 +3200,212 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "Ðаименование правила"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "Тип правила (разрешо или запрещено)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr "Тип правила"
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ñлужбы"
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr "Включено"
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "Пользователи"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr "Службы"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð¾Ñтупа"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2953,70 +3430,67 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "Ð˜Ð¼Ñ Ñлужбы"
+msgid "HBAC Services"
+msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "Ð˜Ð¼Ñ Ñлужбы"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
@@ -3024,13 +3498,10 @@ msgstr[1] ""
msgstr[2] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3057,94 +3528,245 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+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
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3200,219 +3822,203 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "Платформа"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° узла (например, \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема узла и ее верÑÐ¸Ñ (например, \"Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "Пароль пользователÑ"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "Добавлен узел \"%(value)s\""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "Удален узел \"%(value)s\""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "Изменен узел \"%(value)s\""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "Ñовпадает %(count)d узел"
msgstr[1] "Ñовпадает %(count)d узла"
msgstr[2] "Ñовпадает %(count)d узлов"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3444,1018 +4050,1156 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "Добавлена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Удалена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "Изменена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "Ñовпадает %(count)d hostgroup"
msgstr[1] "Ñовпадают %(count)d hostgroup"
msgstr[2] "Ñовпадают %(count)d hostgroup"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "Данные"
-
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr ""
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "Данные"
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4495,63 +5239,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4592,130 +5320,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4724,46 +5517,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d переменных"
@@ -4781,10 +5551,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "загружен %(count)d подключаемый модуль"
@@ -4795,7 +5566,7 @@ msgstr[2] "загружено %(count)d подключаемых модулей"
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4821,106 +5592,105 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4941,33 +5711,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5023,137 +5776,102 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
+msgstr ""
+
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5175,32 +5893,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5223,18 +5928,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5243,96 +5953,69 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5377,164 +6060,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "приоритет не может быть задан Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð¹ политики"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5571,18 +6234,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5591,96 +6255,73 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5708,90 +6349,75 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5844,119 +6470,83 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr "Добавлена Ñлужба \"%(value)s\""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr "Удалена Ñлужба \"%(value)s\""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5973,191 +6563,180 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6167,223 +6746,243 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6424,236 +7023,214 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "Добавлен пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "Удален пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "Изменен пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "Ñовпадает %(count)d пользователь"
msgstr[1] "Ñовпадают %(count)d пользователÑ"
msgstr[2] "Ñовпадают %(count)d пользователей"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6661,512 +7238,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Повторно введите %(label)s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸: "
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Пароли не Ñовпадают!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "Отменено."
-
-#: ipalib/cli.py:819
-msgid "Command name"
+" an administrator."
msgstr ""
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "%(cver)s клиент не ÑовмеÑтим Ñ %(sver)s Ñервером на %(server)r"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "получена неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° %(code)d от %(server)s: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° на Ñервере %(server)r"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "ошибка на Ñервере %(server)r: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "невозможно подключитьÑÑ Ðº %(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Ðеверный JSON-RPC запроÑ: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Ошибка Kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr "не получены региÑтрационные данные Kerberos"
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Служба %(service)r не найдена в базе данных Kerberos"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "КÑш региÑтрационных данных не найден"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ Ð±Ð¸Ð»ÐµÑ‚Ð° иÑтек"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr "Права доÑтупа на кÑш региÑтрационных данных неверны"
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr "Ошибочный формат в кÑше региÑтрационных данных "
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Ðе могу определить KDC Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð¾Ð¹ облаÑти (realm)"
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "ÐедоÑтаточно прав Ð´Ð»Ñ Ð´Ð¾Ñтупа: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "команде %(name)r не требуютÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹"
-
-#: ipalib/errors.py:661
-#, 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] "команда %(name)r принимает не более %(count)d аргумента"
-msgstr[1] "команда %(name)r принимает не более %(count)d аргументов"
-msgstr[2] "команда %(name)r принимает не более %(count)d аргументов"
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "наложение аргументов и параметров: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "требуетÑÑ %(name)r"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "неверный(ое) %(name)r: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api не предоÑтавлÑет такого проÑтранÑтва имен (namespace): %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "Пароли не Ñовпадают"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "Команда пока не реализована"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "Ð¢Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ уже ÑущеÑтвует"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-"Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы Ñоздать Ñлужбу Ð´Ð»Ñ ÑƒÐ·Ð»Ð°, вам необходимо зарегиÑтрировать Ñтот"
-" узел"
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-"Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ Ñлужбы не предÑтавлена в форме: Ñлужба/полноÑтью-"
-"определенное-имÑ: %(reason)s"
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-"ОблаÑÑ‚ÑŒ (realm) Ð´Ð»Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи не Ñовпадает Ñ Ð¾Ð±Ð»Ð°Ñтью IPA Ñервера"
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "Этой команде требуютÑÑ Ð¿Ñ€Ð°Ð²Ð° админиÑтратора"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "Уже ÑвлÑетÑÑ posix группой"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ задана в форме отличной от user@REALM: %(principal)r"
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "Группа не может входить в ÑоÑтав Ñамой ÑебÑ"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Декодирование Base64 прошло Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "Группа не может быть добавлена Ñама в ÑебÑ"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "Группа по умолчанию Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может быть удалена"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr "ХоÑÑ‚ не имеет ÑоответÑтвующей A запиÑи в DNS"
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-"Удаление управлÑемой группы не разрешено. Сначала ее необходимо отключить."
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "нет команды или раздела Ñправки Ð´Ð»Ñ %(topic)r"
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "изменение противоречит другому Ñделанному изменению"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ внеÑены"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "Ð´Ð»Ñ Ñтого запроÑа превышены ограничениÑ"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñертификатом не может быть завершена: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr "Результаты уÑечены. Попробуйте задать более точные уÑÐ»Ð¾Ð²Ð¸Ñ Ð¿Ð¾Ð¸Ñка"
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "СпиÑок запиÑей LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "неверный тип"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "ДопуÑкаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ одно значение"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "должно быть либо True, либо False"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "должно быть целое"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "должно быть не менее %(minvalue)d"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "может быть не более %(maxvalue)d"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "должно быть деÑÑтичным чиÑлом"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "должно быть не менее %(minvalue)f"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "может быть не более %(maxvalue)f"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "должно Ñовпадать Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ \"%(pattern)s\""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ данными"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "должно Ñодержать не менее %(minlength)d байт"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "может Ñодержать не более %(maxlength)d байт"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "должно Ñодержать точно %(length)d байт"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ñ‚ÐµÐºÑтом Unicode"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "должно быть не короче %(minlength)d Ñимволов"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "может быть не длиннее %(maxlength)d Ñимволов"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "должно быть точно %(length)d Ñимволов длинной"
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "должно ÑвлÑÑ‚ÑŒÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из %(values)r"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Ðевозможно ÑвÑзатьÑÑ Ñ CMS (%s)"
@@ -7187,14 +7313,17 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
-"Заголовок запроÑа \"%(request_subject)s\" не Ñовпадает Ñ Ñ„Ð¾Ñ€Ð¼Ð¾Ð¹ "
-"\"%(subject_base)s\""
+msgstr "Заголовок запроÑа \"%(request_subject)s\" не Ñовпадает Ñ Ñ„Ð¾Ñ€Ð¼Ð¾Ð¹ \"%(subject_base)s\""
#: ipaserver/plugins/selfsign.py:104
#, python-format
@@ -7213,283 +7342,297 @@ msgstr "невозможно получить Ñледующий порÑдкоÐ
msgid "certutil failure"
msgstr "ошибка certutil"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7509,248 +7652,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:390
-#, c-format
-msgid "Unable to determine root DN of %s\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7841,5 +7972,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/sv.po b/install/po/sv.po
index 99b18ba74..c8a8f77e7 100644
--- a/install/po/sv.po
+++ b/install/po/sv.po
@@ -2,160 +2,511 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-18 00:49+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2011-03-07 20:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/team/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -185,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -193,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -220,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -235,222 +572,439 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1092,583 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1730,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1842,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"User management options:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+"EXAMPLES:\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-"Server Configuration.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2014,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,130 +2073,107 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2186,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2203,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2236,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2265,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2859,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,146 +3023,123 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2635,7 +3161,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2643,7 +3169,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2652,7 +3178,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2663,263 +3189,211 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2944,83 +3418,77 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
msgstr[1] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3047,93 +3515,244 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3189,218 +3808,202 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr ""
+
+#: ipalib/plugins/host.py:249
+msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3432,1017 +4035,1155 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr ""
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4482,63 +5223,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4579,130 +5304,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4711,46 +5501,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4768,10 +5535,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4781,7 +5549,7 @@ msgstr[1] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4807,105 +5575,104 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4926,33 +5693,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5008,136 +5758,101 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5159,32 +5874,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5207,18 +5909,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5227,95 +5934,68 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5360,164 +6040,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5554,18 +6214,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5574,95 +6235,72 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5690,89 +6328,74 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5825,118 +6448,82 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5953,189 +6540,178 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6145,223 +6721,242 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6402,235 +6997,213 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6638,505 +7211,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr ""
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7157,6 +7286,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7181,283 +7315,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7477,248 +7625,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7809,5 +7945,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/uk.po b/install/po/uk.po
index 40c184311..951612bf8 100644
--- a/install/po/uk.po
+++ b/install/po/uk.po
@@ -2,15 +2,16 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
-# Yuri Chornoivan <yurchor@ukr.net>, 2011.
+# Translators:
# jdennis <jdennis@redhat.com>, 2011.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-08-02 07:04+0000\n"
-"Last-Translator: yurchor <yurchor@ukr.net>\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,265 +19,498 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Введіть %(label)s ще раз Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸: "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Паролі не збігаютьÑÑ!"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "СкаÑовано."
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr "ПризначеннÑ: %s"
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr "ВикориÑтаннÑ: ipa [загальні параметри] КОМÐÐДР..."
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr "Вбудовані команди:"
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr "Підтеми довідки:"
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr "Теми довідки:"
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr "Щоб ознайомитиÑÑ Ð·Ñ– ÑпиÑком загальних параметрів, віддайте команду «ipa --help»."
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr "Команди теми:"
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr "Ðазва команди"
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr "Ðемає файла Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "Клієнт %(cver)s Ñ” неÑуміÑним з Ñервером %(sver)s на %(server)r"
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "%(server)s повідомлÑÑ” про невідому помилку %(code)d: %(error)s"
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "ÑталаÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "на Ñервері %(server)r ÑталаÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "невідома команда %(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "помилка на Ñервері %(server)r: %(error)s"
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "не вдалоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· %(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "некоректний запит JSON-RPC: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr "помилка під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ XML-RPC: %(error)s"
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Помилка Kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr "не отримано реєÑтраційних даних Kerberos"
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "У базі даних Kerberos не виÑвлено Ñлужби %(service)r"
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr "Ðе знайдено кешу реєÑтраційних даних"
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr "Сплив Ñтрок дії квитка"
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr "Помилкові права доÑтупу до кешу реєÑтраційних даних"
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr "Помилковий формат кешу реєÑтраційних даних"
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ KDC Ð´Ð»Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— облаÑÑ‚Ñ– (realm)"
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "ÐедоÑтатні права Ð´Ð»Ñ Ð´Ð¾Ñтупу: %(info)s"
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "команда %(name)r не приймає ніÑких аргументів"
+
+#: ipalib/errors.py:664
+#, 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] "команда %(name)r приймає не більше %(count)d аргументу"
+msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів"
+msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів"
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ñ– параметрів: %(names)r"
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "Слід вказати %(name)r"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "некоректне %(name)r: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api не надає такого проÑтору назв: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "Паролі не збігаютьÑÑ"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "Команду не реалізовано"
+
+#: ipalib/errors.py:785
+msgid "Client is not configured. Run ipa-client-install."
+msgstr "КлієнтÑьку чаÑтину не налаштовано. Віддайте команду ipa-client-install."
+
+#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147
+#: ipalib/errors.py:1462 ipalib/errors.py:1479
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ Ñ–Ñнує"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr "Щоб Ñтворити Ñлужбу вузла, вам Ñлід зареєÑтрувати вузол"
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
-msgstr ""
-"\n"
-"Підпакунок, у Ñкому міÑÑ‚ÑÑ‚ÑŒÑÑ Ð²ÑÑ– оÑновні додатки.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби вказано у формі, відмінній від: Ñлужба/повна назва вузла: %(reason)s"
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
-msgstr ""
-"\n"
-"ІнÑтрукції ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом до Ñервера каталогів (ACI)\n"
-"\n"
-"ACI викориÑтовуютьÑÑ Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ заборони доÑтупу до даних. Поточну\n"
-"верÑÑ–ÑŽ цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€Ð¾Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾ з метою наданнÑ, а не заборони доÑтупу.\n"
-"\n"
-"Команди aci розроблено Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу до Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ\n"
-"Ñтворених запиÑів та Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів. Метою ACI, Ñкі\n"
-"поÑтачаютьÑÑ Ð· IPA Ñ” ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ низькорівневих прав доÑтупу до оÑобливих\n"
-"груп, Ñкі називаютьÑÑ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ завдань. Ці низькорівневі права доÑтупу\n"
-"можна поєднувати у ролі, Ñкі надаватимуть ширший доÑтуп. Ролі Ñ” іншим типом\n"
-"груп, Ñкий називаєтьÑÑ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ ролей.\n"
-"\n"
-"Ðаприклад, Ñкщо у Ð²Ð°Ñ Ñ” групи завдань, Ñкі надають доÑтуп до Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ зміни запиÑів\n"
-"кориÑтувачів, ви можете Ñтворити роль, адмініÑтратора кориÑтувачів (useradmin).\n"
-"Далі, можна призначати кориÑтувачів до ролі useradmin, щоб надати їм доÑтуп до операцій,\n"
-"визначених групами завдань.\n"
-"\n"
-"Ви можете Ñтворити ACI, Ñкі надаватимуть дозволи так, що кориÑтувачі групи A зможуть\n"
-"запиÑувати атрибути Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸ B.\n"
-"\n"
-"Параметр типу визначає карту, Ñка заÑтоÑовуєтьÑÑ Ð´Ð¾ вÑÑ–Ñ… запиÑів у ÑпиÑках кориÑтувачів, груп та\n"
-"Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°. ОÑновним призначеннÑм Ñ” Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу на додаваннÑ\n"
-"(ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… запиÑів).\n"
-"\n"
-"ACI ÑкладаєтьÑÑ Ð· трьох чаÑтин:\n"
-"1. призначеннÑ\n"
-"2. прав доÑтупу\n"
-"3. правил прив’ÑзуваннÑ\n"
-"\n"
-"ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” набір правил, Ñкий визначає, Ñкі з об’єктів LDAP Ñ” призначеннÑм.\n"
-"ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ включати ÑпиÑок атрибутів, облаÑÑ‚Ñ– цієї ієрархії LDAP або\n"
-"фільтра LDAP.\n"
-"\n"
-"До призначень включаютьÑÑ:\n"
-"- attrs: ÑпиÑок атрибутів, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ;\n"
-"- type: тип об’єктів (кориÑтувач, група, вузол, Ñлужба тощо);\n"
-"- memberof: учаÑники групи;\n"
-"- targetgroup: надати доÑтуп до зміни певної групи. Ð¦Ñ Ñ‡Ð°Ñтина в оÑновному\n"
-" розроблена Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ кориÑтувачам на Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÑƒÑ‡Ð°Ñників\n"
-" певної групи.\n"
-"- filter: чинний фільтр LDAP, викориÑтаний Ð´Ð»Ñ Ð·Ð²ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– призначеннÑ.\n"
-"- subtree: викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð´Ð»Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ набору об’єктів.\n"
-" Ðаприклад, Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу на Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів вам Ñлід надати право\n"
-" доÑтупу \"add\" до підієрархії\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. Параметр subtree\n"
-" Ñ” безпечним Ð´Ð»Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð², Ñкі можуть не ÑтоÑуватиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ type.\n"
-"\n"
-"Права доÑтупу визначають набір доÑтупних ACI запиÑів, можуть міÑтити з одного\n"
-"або декількох варіантів:\n"
-"1. write - Ð·Ð°Ð¿Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів;\n"
-"2. read - Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів;\n"
-"3. add - Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу до ієрархії;\n"
-"4. delete - Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ–Ñнуючого запиÑу;\n"
-"5. all - Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… прав доÑтупу.\n"
-"\n"
-"Зауважте відмінніÑÑ‚ÑŒ між атрибутами та запиÑами. Права доÑтупу Ñ” незалежними,\n"
-"отже можливіÑÑ‚ÑŒ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача не означає можливоÑÑ‚Ñ– зміни параметрів\n"
-"його облікового запиÑу.\n"
-"\n"
-"Правило прив’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ”, кому це ACI надає права доÑтупу. Сервер LDAP\n"
-"надає можливіÑÑ‚ÑŒ визначати будь-Ñкий коректний Ð·Ð°Ð¿Ð¸Ñ LDAP, але вам варто викориÑтовувати\n"
-"групи завдань, щоб права можна було без проблем Ñпільно викориÑтовувати Ð´Ð»Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… ролей.\n"
-"\n"
-"Повніший Ð¾Ð¿Ð¸Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом можна знайти тут:\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-"ЗÐУВÐЖЕÐÐЯ: у поточній верÑÑ–Ñ— ACI додаютьÑÑ Ð·Ð° допомогою додатка прав доÑтупу.\n"
-"Ці приклади мають продемонÑтрувати роботу різних параметрів, але у поточній\n"
-"верÑÑ–Ñ— це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð·Ð° допомогою команди Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу (оÑтанній приклад).\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ACI Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу групі \"secretaries\" до Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи будь-Ñкого кориÑтувача:\n"
-" ipa group-add --desc=\"ОфіÑні Ñекретарки\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Секретарки запиÑують адреÑи\"\n"
-"\n"
-" Показ нового ACI:\n"
-" ipa aci-show --prefix=none \"Секретарки запиÑують адреÑи\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ACI, Ñке надаÑÑ‚ÑŒ доÑтуп учаÑникам групи \"addusers\" доÑтуп до Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ACI, Ñке надаÑÑ‚ÑŒ доÑтуп учаÑникам групи \"editors\" до ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñами\n"
-"учаÑників групи \"admins\":\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Редактори керують адмініÑтраторами\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ACI, Ñке надаÑÑ‚ÑŒ доÑтуп учаÑникам групи \"admins\" до зміни поштової адреÑи та індекÑу кориÑтувачів групи \"editors\":\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"ÐдмініÑтратори редагують адреÑи редакторів\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ACI, Ñке надаÑÑ‚ÑŒ доÑтуп групі \"admins\" до зміни поштової адреÑи та індекÑу вÑÑ–Ñ…, хто працює начальником:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Зміна Ð°Ð´Ñ€ÐµÑ Ñ‚Ð¸Ñ…, хто працює начальником\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ нового типу запиÑів до IPA, Ñкий не визначаєтьÑÑ Ð¶Ð¾Ð´Ð½Ð¸Ð¼ з параметрів --type, ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð°Ñ€Ð°Ð½Ñ‡ÐµÐ²Ð¸Ñ… запиÑів\" add_orange\n"
-"\n"
-"\n"
-"Команда show показує проÑÑ‚Ñ– 389-ds ACI.\n"
-"\n"
-"Ð’ÐЖЛИВО: під Ñ‡Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸ атрибутів Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñтвореного ACI вам\n"
-"Ñлід включити вÑÑ– вже Ñтворені атрибути. Під Ñ‡Ð°Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до aci\n"
-"targetattr ЗÐМІÐЮЄ поточні атрибути, а не додає ці атрибути.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "ОблаÑÑ‚ÑŒ дії реєÑтраційного запиÑу не збігаєтьÑÑ Ð· облаÑÑ‚ÑŽ цього Ñервера IPA"
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
-msgstr "СпиÑок значень ACI"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— команди потрібні права доÑтупу кориÑтувача root"
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
-msgstr ""
-"\n"
-" За вказаною назвою та префікÑом побудувати Ñ–Ð¼â€™Ñ ACI.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "Вже є posix-групою"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ у формі, відмінній від кориÑтувач@ОБЛÐСТЬ: %(principal)r"
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ увімкнено"
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ вимкнено"
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ можна вмикати або вимикати"
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr "Цього запиÑу немає Ñеред учаÑників"
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "Група не може бути елементом Ñамої Ñебе"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ Ñ” Ñеред учаÑників"
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Помилка Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Base64: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "Групу не може бути додано Ñк елемент Ñамої Ñебе"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "Ðе можна вилучати типову групу кориÑтувачів"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr "Вузол не має відповідного запиÑу DNS A"
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐµÑ€Ð¾Ð²Ð°Ð½Ð¸Ñ… груп заборонено. Спочатку групу Ñлід від’єднати."
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr "У керованої групи не може бути влаÑних правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr "«%(entry)s» не міÑтить Ñертифіката."
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr "Ðе вдалоÑÑ Ñтворити закриту групу. Група «%(group)s» вже Ñ–Ñнує."
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
-msgstr ""
-"\n"
-" Обробити назву ACI Ñ– повернути пару значень — Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ ACI Ñ–\n"
-" Ñправжню назву ACI.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr "Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ виÑвлено проблему, вÑÑ– запиÑи учаÑників %(verb)s: %(exc)s"
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr "%(attr)s не міÑтить «%(value)s»"
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
-msgstr ""
-"\n"
-" ПропуÑтити назву групи крізь фільтр memberOf\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr "Критерій пошуку не був доÑтатньо точним. Мало бути вказано один критерій, виÑвлено — %(found)d."
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "не виÑвлено ні команди, ні запиÑу довідки %(topic)r"
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "зміна конфліктує з іншою внеÑеною зміною"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr "змін не внеÑено"
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s: %(info)s"
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr "цим запитом перевищено обмеженнÑ"
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr "зміну оÑновного ключа заборонено"
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "%(attr)s: можна викориÑтовувати лише одне значеннÑ."
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr "%(attr)s: некоректний ÑинтакÑиÑ."
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr "Помилковий фільтр пошуку %(info)s"
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ дію з Ñертифікатом: %(error)s"
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Помилка Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката: %(error)s"
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr "Вже зареєÑтровано"
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr "Ще не зареєÑтровано"
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "СпиÑок результатів обрізано. Спробуйте точніше визначити критерії пошуку."
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
-msgstr ""
-"\n"
-" За вказаною назвою та набором ключових Ñлів побудувати ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr "Отримати Ñ– вивеÑти вÑÑ– атрибути з Ñервера. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ виводу команд."
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "ВивеÑти запиÑи у формі, у Ñкій вони зберігаютьÑÑ Ð½Ð° Ñервері. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ формату Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…."
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr "ВерÑÑ–Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð°. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ, Ñкщо Ñервер приймає запит."
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr "ПереÑпрÑмувати на Ñервер заміÑÑ‚ÑŒ локального виконаннÑ"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Словник, що відповідає запиÑу LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "СпиÑок запиÑів LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… команд має призводити до ÑкогоÑÑŒ результату"
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "помилковий тип"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "Можна викориÑтовувати лише одне значеннÑ"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "має дорівнювати True або False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "має бути цілим чиÑлом"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "має бути чиÑлом, не меншим за %(minvalue)d"
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "не може перевищувати %(maxvalue)d"
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "має бути деÑÑтковим чиÑлом"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "має бути чиÑлом, не меншим за %(minvalue)f"
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "не може перевищувати %(maxvalue)f"
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "має відповідати шаблону «%(pattern)s»"
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "має бути бінарними даними"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "має бути розміром, не менше за %(minlength)d байтів"
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "не повинне перевищувати за розміром %(maxlength)d байтів"
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "має бути розміром точно у %(length)d байтів"
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "має бути текÑтом у Unicode"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ñ–Ð»Ñ–Ð² на початку Ñ– у кінці заборонено"
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "має бути не меншим за %(minlength)d Ñимволів довжиною"
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "не повинне перевищувати %(maxlength)d Ñимволів у довжину"
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "має бути точно %(length)d Ñимволів у довжину"
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr "Ðе можна викориÑтовувати Ñимвол «%(char)r»."
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "має бути одним зі таких значень: %(values)r"
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "СпиÑок значень ACI"
#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
@@ -290,9 +524,7 @@ msgstr "Слід вказати Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ ACI"
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
-msgstr ""
-"Ñлід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або "
-"memberof"
+msgstr "Ñлід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або memberof"
#: ipalib/plugins/aci.py:224
msgid "filter and memberof are mutually exclusive"
@@ -307,6 +539,7 @@ msgid "One of group, permission or self is required"
msgstr "Слід вказати одне зі значень, group, permission або self"
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "Групи з назвою «%s» не Ñ–Ñнує"
@@ -315,26 +548,12 @@ msgid "empty filter"
msgstr "порожній фільтр"
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr "СинтакÑична помилка: %(error)s"
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-"ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ACI на еквівалентні ключові Ñлова.\n"
-"\n"
-" ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½, отже ви можемо об’єднати\n"
-" вхідне ключове Ñлово Ñ– вже Ñтворене ACI Ñ– передати результат до\n"
-" _make_aci().\n"
-" "
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr "Ðе знайдено ACI з назвою «%s»"
@@ -346,19 +565,7 @@ msgstr "Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ ACI"
msgid ""
"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
"none)"
-msgstr ""
-"ПрефікÑ, за Ñким визначаєтьÑÑ Ñ‚Ð¸Ð¿ ACI (permission, delegation, selfservice, "
-"none)"
-
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт ACI.\n"
-" "
+msgstr "ПрефікÑ, за Ñким визначаєтьÑÑ Ñ‚Ð¸Ð¿ ACI (permission, delegation, selfservice, none)"
#: ipalib/plugins/aci.py:412
msgid "ACIs"
@@ -368,283 +575,441 @@ msgstr "ACI"
msgid "ACI name"
msgstr "Ðазва ACI"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr "Права доÑтупу"
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr "ACI прав доÑтупу надає доÑтуп до"
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "Група кориÑтувачів"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr "Група кориÑтувачів, до Ñкої надає доÑтуп ACI"
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "Права доÑтупу"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
-msgstr ""
-"відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write, add,"
-" delete, all)"
+msgstr "відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write, add, delete, all)"
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "Ðтрибути"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr "СпиÑок атрибутів, відокремлених комами"
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "Тип"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
-msgstr ""
-"тип об’єкта IPA (user (кориÑтувач), group (група), host (вузол), hostgroup "
-"(група вузлів), service (Ñлужба), netgroup (група у мережі))"
+msgstr "тип об’єкта IPA (user (кориÑтувач), group (група), host (вузол), hostgroup (група вузлів), service (Ñлужба), netgroup (мережева група))"
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr "УчаÑник"
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "УчаÑник групи"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "Фільтр"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "ПрипуÑтимий фільтр LDAP (наприклад, ou=Engineering)"
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr "Піддерево"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr "Піддерево, до Ñкого Ñлід заÑтоÑувати ACI"
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "Цільова група"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr "Група, до Ñкої Ñлід заÑтоÑувати ACI"
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr "Виконати над влаÑним запиÑом (self)"
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr "ЗаÑтоÑувати ACI до вашого влаÑного запиÑу (self)"
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-"\n"
-" Створити ACI.\n"
-" "
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr "Створено ACI «%(value)s»"
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr "Перевірити ÑинтакÑÐ¸Ñ ACI, але не виконувати запиÑу"
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, python-format
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Вилучено ACI «%(value)s»"
+
+#: 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
+msgid "ACI"
+msgstr "ACI"
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr "Змінено ACI «%(value)s»"
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr "Ðова назва ACI"
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "ACI перейменовано на «%(value)s»"
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
-msgstr ""
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
"\n"
-" Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— aci-create.\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
"\n"
-" Повертає Ð·Ð°Ð¿Ð¸Ñ Ñƒ форматі, у Ñкому його буде Ñтворено у LDAP.\n"
+"EXAMPLES:\n"
"\n"
-" :параметр aciname: назва ACI, Ñке додаєтьÑÑ.\n"
-" :параметр kw: параметри ключового Ñлова Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… атрибутів LDAP.\n"
-" "
-
-#: ipalib/plugins/aci.py:533
-msgid ""
+" Create the initial group or hostgroup:\n"
+" ipa hostgroup-add --desc=\"Web Servers\" webservers\n"
+" ipa group-add --desc=\"Developers\" devel\n"
"\n"
-" Delete ACI.\n"
-" "
-msgstr ""
+" Create the initial rule:\n"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
"\n"
-" Вилучити ACI.\n"
-" "
-
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
-msgstr "Вилучено ACI «%(value)s»"
-
-#: ipalib/plugins/aci.py:543
-msgid ""
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
"\n"
-" Execute the aci-delete operation.\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
-" "
-msgstr ""
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
"\n"
-" Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— aci-delete.\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
"\n"
-" :параметр aciname: назва ACI, Ñке додаєтьÑÑ.\n"
-" :параметр kw: не викориÑтовуєтьÑÑ.\n"
-" "
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr "\nПравило автоматичної учаÑÑ‚Ñ–.\n\nСпрощує Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚Ñ– вузлів Ñ– кориÑтувачів за допомогою визначених\nвами шаблонів (формальних виразів) Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‡Ð¸ не Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… запиÑів\nдо груп або груп вузлів на оÑнові даних атрибутів у автоматичному режимі.\n\nПравило напрÑму пов’ÑзуєтьÑÑ Ð· групою за назвою, отже ви не можете\nÑтворювати правила, Ñкі не буде пов’Ñзано з групою кориÑтувачів чи групою\nвузлів.\nУмовою викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ñ” формальний вираз, Ñкий викориÑтовуватиметьÑÑ\n389-ds Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– нового вхідного запиÑу з правилом\nавтоматичної учаÑÑ‚Ñ–. Якщо Ð·Ð°Ð¿Ð¸Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ‚Ð¸Ð¼Ðµ правилу включеннÑ, його буде\nдодано до відповідної групи або групи вузлів.\n\nПРИКЛÐДИ:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— групи або групи вузлів:\n ipa hostgroup-add --desc=\"Web Servers\" webservers\n ipa group-add --desc=\"Developers\" devel\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ правила:\n ipa automember-add --type=hostgroup webservers\n ipa automember-add --type=group devel\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÐ¼Ð¾Ð²Ð¸ до правила:\n ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÐ¼Ð¾Ð²Ð¸ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ правила з метою запобіганнÑ\n автоматичному додаванню:\n ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°:\n ipa host-add web1.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача:\n ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n\n Перевірка правила:\n ipa hostgroup-show webservers\n Host-group: webservers\n Description: Web Servers\n Member hosts: web1.example.com\n\n ipa group-show devel\n Group name: devel\n Description: Developers\n GID: 1004200000\n Member users: tuser\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÑƒÐ¼Ð¾Ð²Ð¸ з правила:\n ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n\n ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до правила автоматичної учаÑÑ‚Ñ–:\n ipa automember-mod\n\n Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ— групи призначеннÑ:\n ipa automember-default-group-set --default-group=webservers --type=hostgroup\n ipa automember-default-group-set --default-group=ipausers --type=group\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ— групи призначеннÑ:\n ipa automember-default-group-remove --type=hostgroup\n ipa automember-default-group-remove --type=group\n\n Показати типову групу призначеннÑ:\n ipa automember-default-group-show --type=hostgroup\n ipa automember-default-group-show --type=group\n\n Знайти вÑÑ– правила автоматичної учаÑÑ‚Ñ–:\n ipa automember-find\n\n Показати правило автоматичної учаÑÑ‚Ñ–:\n ipa automember-show --type=hostgroup webservers\n ipa automember-show --type=group devel\n\n Вилучити правило автоматичної учаÑÑ‚Ñ–:\n ipa automember-del --type=hostgroup webservers\n ipa automember-del --type=group devel\n"
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr "Формальний вираз включеннÑ"
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr "Формальний вираз виключеннÑ"
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr "Ключ атрибута"
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr "Ðтрибут Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° формальним виразом. Приклад: fqdn Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° або manager Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr "Тип групуваннÑ"
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr "ГрупуваннÑ, Ñкого ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr "Правило автоматичної учаÑÑ‚Ñ–"
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "ОпиÑ"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr "ÐžÐ¿Ð¸Ñ Ñ†ÑŒÐ¾Ð³Ð¾ правила автоматичної учаÑÑ‚Ñ–"
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr "Типова група"
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr "Типова група Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів"
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr "Група: %s не знайдено!"
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr "%s не є коректним атрибутом."
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Modify ACI.\n"
+" Add an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Додати правило автоматичної учаÑÑ‚Ñ–.\n "
+
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
+msgstr "Додано правило автоматичної учаÑÑ‚Ñ– «%(value)s»"
+
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr "Ðвтоматичну учаÑÑ‚ÑŒ не налаштовано"
+
+#: ipalib/plugins/automember.py:252
+msgid ""
"\n"
-" Змінити ACI.\n"
+" Add conditions to an automember rule.\n"
" "
+msgstr "\n Додати умови до правила автоматичної учаÑÑ‚Ñ–.\n "
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
-msgstr "ACI"
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸"
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
-msgstr "Змінено ACI «%(value)s»"
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr "Додано умови до «%(value)s»"
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr "Умови, Ñкі не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸"
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr "КількіÑÑ‚ÑŒ доданих умов"
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr "Правило автоматичної учаÑÑ‚Ñ–: %s не знайдено!"
+
+#: ipalib/plugins/automember.py:329
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
-"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
-"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can add completed and failed to the return result.\n"
+" "
+msgstr "\n ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· метою Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñƒ повернуте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо уÑпіху чи невдачі.\n "
+
+#: ipalib/plugins/automember.py:345
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Remove conditions from an automember rule.\n"
" "
-msgstr ""
-"\n"
-" Пошук ACI.\n"
-"\n"
-" Повертає ÑпиÑок ACI\n"
-"\n"
-" ПРИКЛÐДИ:\n"
-"\n"
-" Щоб знайти вÑÑ– ACI, Ñкі заÑтоÑовуютьÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо до учаÑників групи ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+msgstr "\n Вилучити умови з правила автоматичної учаÑÑ‚Ñ–.\n "
+
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
+msgstr "Вилучено умови з «%(value)s»"
+
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr "Умови, Ñкі не вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸"
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
+msgstr "КількіÑÑ‚ÑŒ вилучених умов"
+
+#: ipalib/plugins/automember.py:418
+msgid ""
"\n"
-" Щоб знайти вÑÑ– ACI, Ñкі надають доÑтуп add (додаваннÑ):\n"
-" ipa aci-find --permissions=add\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr "\n ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· метою вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñтанів уÑпіху та невдачі.\n "
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" Зауважте, що команда пошуку лише шукає вказаний текÑÑ‚ у вказаному\n"
-" наборі ACI, а не виконує обробку ACI Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, що Ñлід заÑтоÑовувати.\n"
-" Ðаприклад, пошук memberof=ipausers виÑвить вÑÑ– ACI, у Ñких міÑтитьÑÑ\n"
-" ipausers у memberof. Можуть Ñ–Ñнувати інші ACI, Ñкі заÑтоÑовуютьÑÑ Ð´Ð¾\n"
-" цієї групи опоÑередковано.\n"
+" Modify an automember rule.\n"
" "
+msgstr "\n Змінити правило автоматичної учаÑÑ‚Ñ–.\n "
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
-msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
-msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ACI"
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr "Змінено правило автоматичної учаÑÑ‚Ñ– «%(value)s»"
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:450
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Delete an automember rule.\n"
" "
-msgstr ""
+msgstr "\n Вилучити правило автоматичної учаÑÑ‚Ñ–.\n "
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr "Вилучено правило автоматичної учаÑÑ‚Ñ– «%(value)s»"
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Показати окремий ACI за вказаною назвою ACI.\n"
+" Search for automember rules.\n"
" "
+msgstr "\n Шукати правила автоматичної учаÑÑ‚Ñ–.\n "
+
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правила"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил"
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
-msgstr ""
-"\n"
-" Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— aci-show.\n"
-"\n"
-" Повертає запиÑ\n"
-"\n"
-" :параметр uid: назва реєÑтраційного запиÑу кориÑтувача, дані Ñкого Ñлід отримати.\n"
-" :параметр kw: не викориÑтовуєтьÑÑ.\n"
-" "
+" Display information about an automember rule.\n"
+" "
+msgstr "\n Показати дані щодо правила автоматичної учаÑÑ‚Ñ–.\n "
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Rename an ACI.\n"
+" Set default group for all unmatched entries.\n"
" "
-msgstr ""
+msgstr "\n Ð’Ñтановити типову групу Ð´Ð»Ñ Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ñ… запиÑів.\n "
+
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr "Ð’Ñтановити типову групу Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ñ— учаÑÑ‚Ñ– «%(value)s»"
+
+#: ipalib/plugins/automember.py:531
+msgid ""
"\n"
-" Перейменувати ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
+msgstr "\n Вилучити типову групу Ð´Ð»Ñ Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ñ… запиÑів.\n "
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
-msgstr "Ðова назва ACI"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
+msgstr "Вилучити типову групу Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ñ— учаÑÑ‚Ñ– «%(value)s»"
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
-msgstr "ACI перейменовано на «%(value)s»"
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr "Ðе вÑтановлено типової групи"
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
+msgstr "\n Показати дані щодо типових груп автоматичної учаÑÑ‚Ñ–.\n "
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -730,940 +1095,588 @@ msgid ""
"\n"
" Remove the man key from the auto.share map:\n"
" ipa automountkey-del baltimore auto.share --key=man\n"
-msgstr ""
-"\n"
-"Ðвтоматичне монтуваннÑ\n"
-"\n"
-"Зберігає Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ automount(8) Ð´Ð»Ñ autofs(8) у IPA.\n"
-"\n"
-"ОÑновою налаштувань автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” файл налаштувань auto.master.\n"
-"Це також оÑновне міÑце у IPA. Декілька налаштувань auto.master можна\n"
-"зберігати у окремих міÑцÑÑ…. МіÑце залежить від реалізації, типовим\n"
-"Ñ” міÑце з назвою «default». Ðаприклад, ви можете Ñтворити міÑÑ†Ñ Ð´Ð»Ñ\n"
-"географічної облаÑÑ‚Ñ–, поверху, типу тощо.\n"
-"\n"
-"У автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” три оÑновних типи об’єктів: міÑцÑ, карти Ñ– ключі.\n"
-"\n"
-"МіÑце визначає набір карт, прив’Ñзаних у auto.master. За його допомогою\n"
-"можна зберігати одразу декілька налаштувань автоматичного монтуваннÑ. МіÑце\n"
-"Ñаме Ñобою не Ñ” дуже цікавим, це проÑто початок нової карти автоматичного\n"
-"монтуваннÑ.\n"
-"\n"
-"Карта Ñ” наближеним еквівалентом окремого файла автоматичного монтуваннÑ, у\n"
-"ній зберігаютьÑÑ ÐºÐ»ÑŽÑ‡Ñ–.\n"
-"\n"
-"Ключ — точка монтуваннÑ, пов’Ñзана з картою.\n"
-"\n"
-"Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ ÑтворюютьÑÑ Ð´Ð²Ñ– карти:\n"
-"auto.master Ñ– auto.direct. auto.master — коренева карта Ð´Ð»Ñ Ð²ÑÑ–Ñ… карт\n"
-"автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑцÑ. auto.direct — типова карта Ð´Ð»Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередніх\n"
-"монтувань, її змонтовано до /-.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-"МіÑцÑ:\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ міÑцÑ, \"Kyiv\":\n"
-" ipa automountlocation-add kyiv\n"
-"\n"
-" Показ нового міÑцÑ:\n"
-" ipa automountlocation-show kyiv\n"
-"\n"
-" Пошук доÑтупних міÑць:\n"
-" ipa automountlocation-find\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ:\n"
-" ipa automountlocation-del kyiv\n"
-"\n"
-" Показ того, Ñк мають виглÑдати карти автоматичного монтуваннÑ, Ñкщо б вони перебували у файловій ÑиÑтемі:\n"
-" ipa automountlocation-tofiles kyiv\n"
-"\n"
-" Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ Ñтворених налаштувань до міÑцÑ:\n"
-" ipa automountlocation-import kyiv /etc/auto.master\n"
-"\n"
-" Спроба Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ñ” невдачі, Ñкщо буде знайдено дублікати запиÑів.\n"
-" Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÑ€Ð²Ð½Ð¾Ñ— обробки з ігноруваннÑм помилок, ÑкориÑтайтеÑÑ\n"
-" параметром --continue.\n"
-"\n"
-"Карти:\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ \"auto.share\":\n"
-" ipa automountmap-add kyiv auto.share\n"
-"\n"
-" Показ нової карти:\n"
-" ipa automountmap-show kyiv auto.share\n"
-"\n"
-" Пошук карт у міÑці kyiv:\n"
-" ipa automountmap-find baltimore\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n"
-" ipa automountmap-del kyiv auto.share\n"
-"\n"
-"Ключі:\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share у міÑці kyiv. Карту буде\n"
-" пов’Ñзано з раніше Ñтвореною у auto.master:\n"
-" ipa automountkey-add kyiv auto.master --key=/share --info=auto.share\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ð´Ð»Ñ Ð½Ð°ÑˆÐ¾Ñ— карти auto.share, змонтованого реÑурÑу NFS Ð´Ð»Ñ Ñторінок man:\n"
-" ipa automountkey-add kyiv auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
-"\n"
-" Знайти вÑÑ– ключі Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n"
-" ipa automountkey-find kyiv auto.share\n"
-"\n"
-" Пошук вÑÑ–Ñ… безпоÑередніх ключів автоматичного монтуваннÑ:\n"
-" ipa automountkey-find kyiv --key=/-\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° man Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n"
-" ipa automountkey-del kyiv auto.share --key=man\n"
+msgstr "\nÐвтоматичне монтуваннÑ\n\nЗберігає Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ automount(8) Ð´Ð»Ñ autofs(8) у IPA.\n\nОÑновою налаштувань автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” файл налаштувань auto.master.\nЦе також оÑновне міÑце у IPA. Декілька налаштувань auto.master можна\nзберігати у окремих міÑцÑÑ…. МіÑце залежить від реалізації, типовим\nÑ” міÑце з назвою «default». Ðаприклад, ви можете Ñтворити міÑÑ†Ñ Ð´Ð»Ñ\nгеографічної облаÑÑ‚Ñ–, поверху, типу тощо.\n\nУ автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” три оÑновних типи об’єктів: міÑцÑ, карти Ñ– ключі.\n\nМіÑце визначає набір карт, прив’Ñзаних у auto.master. За його допомогою\nможна зберігати одразу декілька налаштувань автоматичного монтуваннÑ. МіÑце\nÑаме Ñобою не Ñ” дуже цікавим, це проÑто початок нової карти автоматичного\nмонтуваннÑ.\n\nКарта Ñ” наближеним еквівалентом окремого файла автоматичного монтуваннÑ, у\nній зберігаютьÑÑ ÐºÐ»ÑŽÑ‡Ñ–.\n\nКлюч — точка монтуваннÑ, пов’Ñзана з картою.\n\nПід Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ ÑтворюютьÑÑ Ð´Ð²Ñ– карти:\nauto.master Ñ– auto.direct. auto.master — коренева карта Ð´Ð»Ñ Ð²ÑÑ–Ñ… карт\nавтоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑцÑ. auto.direct — типова карта Ð´Ð»Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередніх\nмонтувань, Ñ—Ñ— змонтовано до /-.\n\nПРИКЛÐДИ:\n\nМіÑцÑ:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ міÑцÑ, \"Kyiv\":\n ipa automountlocation-add kyiv\n\n Показ нового міÑцÑ:\n ipa automountlocation-show kyiv\n\n Пошук доÑтупних міÑць:\n ipa automountlocation-find\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ:\n ipa automountlocation-del kyiv\n\n Показ того, Ñк мають виглÑдати карти автоматичного монтуваннÑ, Ñкщо б вони перебували у файловій ÑиÑтемі:\n ipa automountlocation-tofiles kyiv\n\n Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ Ñтворених налаштувань до міÑцÑ:\n ipa automountlocation-import kyiv /etc/auto.master\n\n Спроба Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ñ” невдачі, Ñкщо буде знайдено дублікати запиÑів.\n Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÑ€Ð²Ð½Ð¾Ñ— обробки з ігноруваннÑм помилок, ÑкориÑтайтеÑÑ\n параметром --continue.\n\nКарти:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ \"auto.share\":\n ipa automountmap-add kyiv auto.share\n\n Показ нової карти:\n ipa automountmap-show kyiv auto.share\n\n Пошук карт у міÑці kyiv:\n ipa automountmap-find baltimore\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n ipa automountmap-del kyiv auto.share\n\nКлючі:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share у міÑці kyiv. Карту буде\n пов’Ñзано з раніше Ñтвореною у auto.master:\n ipa automountkey-add kyiv auto.master --key=/share --info=auto.share\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ð´Ð»Ñ Ð½Ð°ÑˆÐ¾Ñ— карти auto.share, змонтованого реÑурÑу NFS Ð´Ð»Ñ Ñторінок man:\n ipa automountkey-add kyiv auto.share --key=man --info=\"-ro,soft,rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n\n Знайти вÑÑ– ключі Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n ipa automountkey-find kyiv auto.share\n\n Пошук вÑÑ–Ñ… безпоÑередніх ключів автоматичного монтуваннÑ:\n ipa automountkey-find kyiv --key=/-\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° man Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¸ auto.share:\n ipa automountkey-del kyiv auto.share --key=man\n"
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
-msgstr ""
-"\n"
-" Контейнер запиÑів Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚ automount.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr "запиÑи автомонтуваннÑ"
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr "ЗапиÑи автомонтуваннÑ"
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "ЗапиÑ"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr "ÐдреÑа автомонтуваннÑ."
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
-msgstr ""
-"\n"
-" Створити новий Ð·Ð°Ð¿Ð¸Ñ automount.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
+msgstr "Створити новий Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ."
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ automount.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
+msgstr "Додано міÑце автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
-msgstr ""
-"\n"
-" Показати Ð·Ð°Ð¿Ð¸Ñ automount.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
+msgstr "Вилучити Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ."
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
-msgstr ""
-"\n"
-" Шукати Ð·Ð°Ð¿Ð¸Ñ automount.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
+msgstr "Вилучено міÑце автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
-msgstr ""
-"\n"
-" Створити файли automount Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— адреÑи.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
+msgstr "Показати Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ."
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
-msgstr ""
-"\n"
-" Імпортувати файли automount Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— адреÑи.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
+msgstr "Шукати Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ."
+
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d міÑÑ†Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ монтуваннÑ"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d міÑць автоматичного монтуваннÑ"
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr "Створити файли automount Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— адреÑи."
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr "Імпортувати файли automount Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— адреÑи."
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr "ОÑновний файл"
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr "ОÑновний файл automount."
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
-msgstr ""
-"Режим неперервної обробки. Програма повідомлÑÑ” про помилки, але продовжує "
-"обробку."
+msgstr "Режим неперервної обробки. Програма повідомлÑÑ” про помилки, але продовжує обробку."
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr "Файла %(file)s не знайдено"
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновна Ñ–Ð´ÐµÑ Ð¿Ð¾Ð»Ñгає у читанні оÑновного файла Ñ– Ñтворенні вÑÑ–Ñ… потрібних\n"
-" карт з наÑтупним читаннÑм кожного файла карти Ñ– Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… ключів до карти.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
+msgstr "карта автомонтуваннÑ"
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт карти автомонтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
+msgstr "карти автоматичного монтуваннÑ"
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr "Карта"
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr "Ðазва карти автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "ОпиÑ"
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr "Карти автоматичного монтуваннÑ"
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
-msgstr ""
-"\n"
-" Створити карту автомонтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
+msgstr "Карта автомонтуваннÑ"
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити карту автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
+msgstr "Створити карту автомонтуваннÑ."
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
-msgstr ""
-"\n"
-" Змінити карту автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
+msgstr "Додано карту автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
-msgstr ""
-"\n"
-" Виконати пошук карти автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
+msgstr "Вилучити карту автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
-msgstr ""
-"\n"
-" Показати карту автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
+msgstr "Вилучено карту автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт ключа автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr "Змінити карту автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr "Змінено карту автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr "Виконати пошук карти автоматичного монтуваннÑ."
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d карти автоматичного монтуваннÑ"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d карти автоматичного монтуваннÑ"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d карт автоматичного монтуваннÑ"
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr "Показати карту автоматичного монтуваннÑ."
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr "Об’єкт ключа автоматичного монтуваннÑ."
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
+msgstr "ключ автомонтуваннÑ"
+
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr "ключі автомонтуваннÑ"
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr "Ключ"
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr "Ðазва ключа автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ монтуваннÑ"
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "опиÑ"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr "Ключі автомонтуваннÑ"
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr "Ключ автомонтуваннÑ"
+
+#: ipalib/plugins/automount.py:626
+#, python-format
msgid ""
"The key,info pair must be unique. A key named %(key)s with info %(info)s "
"already exists"
-msgstr ""
-"Пара ключ,Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¼Ð°Ñ” бути унікальною. Ключ з назвою %(key)s та "
-"інформацією %(info)s вже Ñ–Ñнує."
+msgstr "Пара ключ,Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¼Ð°Ñ” бути унікальною. Ключ з назвою %(key)s та інформацією %(info)s вже Ñ–Ñнує."
-#: ipalib/plugins/automount.py:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr "ключ з назвою %(key)s вже Ñ–Ñнує"
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
-msgstr ""
-"Ключа автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %(key)s з інформацією %(info)s не Ñ–Ñнує"
+msgstr "Ключа автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %(key)s з інформацією %(info)s не Ñ–Ñнує"
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
-msgstr ""
-"Знайдено декілька запиÑів ключів %(key)s, ÑкориÑтайтеÑÑ --info Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ "
-"певного запиÑу."
+msgstr "Знайдено декілька запиÑів ключів %(key)s, ÑкориÑтайтеÑÑ --info Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ певного запиÑу."
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
-msgstr ""
-"\n"
-" Створити ключ автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
+msgstr "Створити ключ автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
-msgstr ""
-"\n"
-" Створити опоÑередковану точку монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr "Додано ключ автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr "Створити опоÑередковану точку монтуваннÑ."
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
+msgstr "Додано опоÑередковану карту автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "Точка монтуваннÑ"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr "БатьківÑька карта"
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
-msgstr ""
-"Ðазва батьківÑької карти Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ (типове значеннÑ: auto.master)."
+msgstr "Ðазва батьківÑької карти Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ (типове значеннÑ: auto.master)."
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити ключ автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
+msgstr "Вилучити ключ автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
-msgstr ""
-"\n"
-" Змінити ключ автоматичного монтуваннÑ.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
+msgstr "Вилучено ключ автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
+
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr "Змінити ключ автоматичного монтуваннÑ."
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr "Змінено ключ автоматичного Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ монтуваннÑ"
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
-msgstr ""
-"\n"
-" Виконати пошук ключа автоматичного монтуваннÑ\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
+msgstr "Виконати пошук ключа автоматичного монтуваннÑ."
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
-msgstr ""
-"\n"
-" Показати ключ автоматичного монтуваннÑ.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
-msgstr ""
-"\n"
-"ОÑновні клаÑи додатків LDAP.\n"
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ключа автоматичного монтуваннÑ"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ключі автоматичного монтуваннÑ"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ключів автоматичного монтуваннÑ"
+
+#: ipalib/plugins/automount.py:906
+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
+msgid "Password"
+msgstr "Пароль"
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr "Помилка members"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr "УчаÑник users"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr "УчаÑник groups"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr "УчаÑник груп"
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr "УчаÑник hosts"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr "УчаÑник host-groups"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr "УчаÑник host-groups"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr "Ролі"
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr "Групи команд sudo"
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr "ÐÐ°Ð´Ð°Ð½Ð½Ñ ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½ÑŒ ролÑм"
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
-msgstr "УчаÑник netgroups"
+msgstr "Мережеві групи учаÑника"
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
-msgstr "УчаÑник netgroups"
+msgstr "УчаÑник мережевих груп"
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
-msgstr "УчаÑник services"
+msgstr "Служби учаÑника"
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
-msgstr "УчаÑник Ñлужбових груп"
+msgstr "Групи Ñлужб учаÑника"
+
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr "Служба HBAC учаÑника"
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
-msgstr "УчаÑник груп Ñлужб HBAC"
+msgstr "Групи Ñлужб HBAC учаÑника"
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
-msgstr "ОпоÑередкований учаÑник users"
+msgstr "ОпоÑередковані кориÑтувачі учаÑника"
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
-msgstr "ОпоÑередкований учаÑник groups"
+msgstr "ОпоÑередковані групи учаÑника"
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr "Вузли з опоÑередкованою учаÑÑ‚ÑŽ"
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr "Групи вузлів з опоÑередкованою учаÑÑ‚ÑŽ"
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr "ОпоÑередкований учаÑник roles"
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
-msgstr "ОпоÑередкований учаÑник permissions"
+msgstr "ОпоÑередковані права доÑтупу учаÑника"
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
-msgstr "ОпоÑередкований учаÑник Ñлужби HBAC"
+msgstr "ОпоÑередкована Ñлужба HBAC учаÑника"
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
-msgstr "ОпоÑередкований учаÑник групи Ñлужб HBAC"
+msgstr "ОпоÑередкована група Ñлужб HBAC учаÑника"
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
-msgstr "ОпоÑередкований учаÑник netgroups"
+msgstr "ОпоÑередковані мережеві групи учаÑника"
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr "Зовнішній вузол"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr "Помилка hosts/hostgroups джерела"
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr "Помилка hosts/hostgroups"
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr "Помилка users/groups"
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr "Помилки Ñлужб/груп Ñлужб"
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr "Помилка managedby"
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr "Спроба Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі"
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
-msgstr ""
-"\n"
-" Ðа оÑнові ÑпиÑку значень у форматі назва=Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÑƒÑ‚Ð¸ ÑпиÑок назв.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
-msgstr ""
-"\n"
-" Під Ñ‡Ð°Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ñ… учаÑників ми виконуємо\n"
-" фальшиве Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° A оновленнÑм атрибута учаÑника об’єкта B.\n"
-" Додаток memberof виконує цю роботу додаваннÑм або вилученнÑм атрибута\n"
-" об’єкта A, Ð´Ñ–Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ‚Ð¸Ð¼Ðµ ÑкийÑÑŒ чаÑ.\n"
-"\n"
-" Цикл Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° A виконуватиметьÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ 6 Ñекунд, отже ми\n"
-" зможемо забезпечити Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… атрибутів memberof.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
+msgstr "запиÑ"
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт, Ñкому відповідає Ð·Ð°Ð¿Ð¸Ñ LDAP.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
+msgstr "запиÑи"
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr "ЗапиÑ"
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr "не знайдено Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð° (%(container)s)"
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: не знайдено %(oname)s"
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: не знайдено %(oname)s"
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr "%(oname)s з назвою «%(pkey)s» вже Ñ–Ñнує"
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-"Додати пару атрибут/значеннÑ. Формат: атрибут=значеннÑ. Ðтрибут має бути "
-"чаÑтиною Ñхеми."
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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 ""
-"Ð’Ñтановити атрибут Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¸ назва/значеннÑ. Формат: атрибут=значеннÑ.\n"
-"Ð”Ð»Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² з багатьма значеннÑм команда замінює вже вказані значеннÑ."
-
-#: ipalib/plugins/baseldap.py:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-"\n"
-" Якщо набір клаÑів об’єктів обмежено, примуÑово викориÑтати\n"
-" лише Ñ‚Ñ– з них, Ñкі оновлено у entry_attrs (Ð¿Ð»ÑŽÑ dn)\n"
-"\n"
-" allow_only повідомлÑÑ” про режим визначеннÑ:\n"
-"\n"
-" Якщо значеннÑм Ñ” True, викориÑтовувати лише атрибути зі ÑпиÑку\n"
-" дозволених.\n"
-"\n"
-" Якщо значеннÑм Ñ” False, атрибути буде заборонено.\n"
-" "
+msgstr "Ð’Ñтановити атрибут Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¸ назва/значеннÑ. Формат: атрибут=значеннÑ.\nÐ”Ð»Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² з багатьма значеннÑм команда замінює вже вказані значеннÑ."
-#: ipalib/plugins/baseldap.py:474
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-"\n"
-" Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ñ€ÐµÑ”Ñтрації зворотних викликів.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
+msgstr "Додати пару атрибут/значеннÑ. Формат: атрибут=значеннÑ. Ðтрибут має бути\nчаÑтиною Ñхеми."
-#: ipalib/plugins/baseldap.py:561
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-"\n"
-" Створити Ð·Ð°Ð¿Ð¸Ñ Ñƒ LDAP.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
+msgstr "Вилучити парну атрибут-значеннÑ. Цей параметр буде викориÑтано\nоÑтаннім, піÑÐ»Ñ Ð²ÑÑ–Ñ… вÑтановлень Ñ– додавань."
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, Ñкий має отримувати вже Ñтворений запиÑ.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:727
-msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, Ñкий має отримувати один або декілька вже Ñтворених запиÑів.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr "Режим неперервної роботи: не зупинÑтиÑÑ Ñƒ разі помилок."
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-"\n"
-" Отримати Ð·Ð°Ð¿Ð¸Ñ LDAP.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr "Права"
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
-msgstr ""
-"Показати права доÑтупу цього запиÑу (потребує --all). Докладніше про це "
-"можна дізнатиÑÑ Ð·Ñ– Ñторінки довідника (man) ipa."
-
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-"\n"
-" Оновити Ð·Ð°Ð¿Ð¸Ñ LDAP.\n"
-" "
+msgstr "Показати права доÑтупу цього запиÑу (потребує --all). Докладніше про це можна дізнатиÑÑ Ð·Ñ– Ñторінки довідника (man) ipa."
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr "Перейменувати"
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr "Перейменувати об’єкт %(ldap_obj_name)s"
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ вилучено під Ñ‡Ð°Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½"
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ LDAP Ñ– вÑÑ– його безпоÑередні підзапиÑи.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
+msgstr "ÑпиÑок значень %s, відокремлених комами"
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñниками.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
+msgstr "%s учаÑника"
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
-msgstr ""
-"\n"
-" Додати інші запиÑи LDAP до members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
+msgstr "відокремлений комами ÑпиÑок значень %s, Ñкі Ñлід додати"
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr "КількіÑÑ‚ÑŒ доданих учаÑників"
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити запиÑи LDAP з members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
+msgstr "ÑпиÑок запиÑів %s, відокремлених комами, Ñкі Ñлід вилучити"
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr "УчаÑники, запиÑи Ñких не вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸"
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr "КількіÑÑ‚ÑŒ вилучених учаÑників"
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
-msgstr ""
-"\n"
-" Отримати вÑÑ– запиÑи LDAP, що відповідають вказаним критеріÑм.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
+msgstr "Шукати %s з цими %s %s."
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr "Шукати %s без цих %s %s."
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу"
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу пошуку у Ñекундах"
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr "МакÑимальна кількіÑÑ‚ÑŒ повернутих запиÑів"
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ð³Ð¾ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñниками.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
+msgstr "Лише первинний ключ"
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
-msgstr ""
-"\n"
-" Додати інші запиÑи LDAP до members у зворотному порÑдку.\n"
-"\n"
-" Виклик виглÑдатиме Ñк «додати A до B», але фактично буде виконано\n"
-" Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ B до A з метою обробки зворотної учаÑÑ‚Ñ–.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
+msgstr "Результати мають міÑтити лише атрибут оÑновного ключа («%s»)"
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr "додано"
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити інші запиÑи LDAP з members у зворотному порÑдку.\n"
-"\n"
-" Виклик виглÑдатиме Ñк «вилучити A зо B», але фактично буде виконано\n"
-" Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ B з A з метою обробки зворотної учаÑÑ‚Ñ–.\n"
-" "
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr "вилучено"
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-"\n"
-"Додаток Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… викликів ipa за допомогою одного віддаленого виклику\n"
-"\n"
-"Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ коду у lite-server:\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"де вміÑÑ‚ файла batch_request.json відповідний до наведеного нижче прикладу:\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"Формат відповіді має той Ñамий формат вкладеноÑÑ‚Ñ–. У верхній чаÑтині:\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"Рдалі вкладена відповідь Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з методів команд IPA, надіÑланого у запиті\n"
-"\n"
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr "Вкладені методи, Ñкі Ñлід виконати"
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-"ВерÑÑ–Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð°. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ, Ñкщо Ñервер приймає запит."
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1723,249 +1736,108 @@ msgid ""
"\n"
"http://www.ietf.org/rfc/rfc5280.txt\n"
"\n"
-msgstr ""
-"\n"
-"Дії з Ñертифікатами IPA\n"
-"\n"
-"Реалізує набір команд Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифікатами Ñерверів SSL.\n"
-"\n"
-"Запити щодо Ñертифікатів Ñ–Ñнують у формі Certificate Signing Request (CSR)\n"
-"і форматі PEM.\n"
-"\n"
-"Якщо викориÑтовуєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¿Ñ–Ð´Ð¿Ð¸Ñний модуль, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ CSR має збігатиÑÑ\n"
-"з призначеннÑм на Ñервері. Служба Ñертифікації викориÑтовує лише CN\n"
-"CSR Ñ– примуÑово визначає призначеннÑ.\n"
-"\n"
-"Сертифікат зберігаєтьÑÑ Ð· реєÑтраційним запиÑом, а реєÑтраційний запиÑ\n"
-"потребує вузла.\n"
-"\n"
-"Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб Ñтворити запит щодо Ñертифіката:\n"
-"\n"
-"* Вузол має Ñ–Ñнувати\n"
-"* Служба має Ñ–Ñнувати (або Ñлід ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --add длÑ\n"
-"автоматичного додаваннÑ)\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Створити запит щодо нового Ñертифіката Ñ– додати реєÑтраційний запиÑ:\n"
-" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
-"\n"
-" Отримати вже Ñтворений Ñертифікат:\n"
-" ipa cert-show 1032\n"
-"\n"
-" Відкликати Ñертифікат (причини визначено у RFC 5280):\n"
-" ipa cert-revoke --revocation-reason=6 1032\n"
-"\n"
-" Вилучити Ñертифікат зі ÑпиÑку відкликаннÑ:\n"
-" ipa cert-remove-hold 1032\n"
-"\n"
-" Перевірити Ñтан запиту щодо підпиÑуваннÑ:\n"
-" ipa cert-status 10\n"
-"\n"
-"У поточній верÑÑ–Ñ— IPA негайно виконує (або відхилÑÑ”) вÑÑ– запити щодо\n"
-"Ñертифікатів, отже дані щодо Ñтану запиту не мають ÑенÑу. Ці дані\n"
-"можуть знадобитиÑÑ Ñƒ наÑтупних верÑÑ–ÑÑ… або у разі, Ñкщо CA видає\n"
-"Ñертифікат не одразу.\n"
-"\n"
-"Передбачено підтримку таких причин відкликаннÑ:\n"
-"\n"
-" * 0 - unspecified\n"
-" * 1 - keyCompromise\n"
-" * 2 - cACompromise\n"
-" * 3 - affiliationChanged\n"
-" * 4 - superseded\n"
-" * 5 - cessationOfOperation\n"
-" * 6 - certificateHold\n"
-" * 8 - removeFromCRL\n"
-" * 9 - privilegeWithdrawn\n"
-" * 10 - aACompromise\n"
-"\n"
-"Зауважте, що коди причини 7 не викориÑтовуєтьÑÑ. Докладніші дані у RFC 5280:\n"
-"\n"
-"http://www.ietf.org/rfc/rfc5280.txt\n"
-"\n"
-
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-"\n"
-" Повернути Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐС у призначенні запиту або None\n"
-" "
+msgstr "\nДії з Ñертифікатами IPA\n\nРеалізує набір команд Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифікатами Ñерверів SSL.\n\nЗапити щодо Ñертифікатів Ñ–Ñнують у формі Certificate Signing Request (CSR)\nÑ– форматі PEM.\n\nЯкщо викориÑтовуєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¿Ñ–Ð´Ð¿Ð¸Ñний модуль, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ CSR має збігатиÑÑ\nз призначеннÑм на Ñервері. Служба Ñертифікації викориÑтовує лише CN\nCSR Ñ– примуÑово визначає призначеннÑ.\n\nСертифікат зберігаєтьÑÑ Ð· реєÑтраційним запиÑом, а реєÑтраційний запиÑ\nпотребує вузла.\n\nÐ”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб Ñтворити запит щодо Ñертифіката:\n\n* Вузол має Ñ–Ñнувати\n* Служба має Ñ–Ñнувати (або Ñлід ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --add длÑ\nавтоматичного додаваннÑ)\n\nПРИКЛÐДИ:\n\n Створити запит щодо нового Ñертифіката Ñ– додати реєÑтраційний запиÑ:\n ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n\n Отримати вже Ñтворений Ñертифікат:\n ipa cert-show 1032\n\n Відкликати Ñертифікат (причини визначено у RFC 5280):\n ipa cert-revoke --revocation-reason=6 1032\n\n Вилучити Ñертифікат зі ÑпиÑку відкликаннÑ:\n ipa cert-remove-hold 1032\n\n Перевірити Ñтан запиту щодо підпиÑуваннÑ:\n ipa cert-status 10\n\nУ поточній верÑÑ–Ñ— IPA негайно виконує (або відхилÑÑ”) вÑÑ– запити щодо\nÑертифікатів, отже дані щодо Ñтану запиту не мають ÑенÑу. Ці дані\nможуть знадобитиÑÑ Ñƒ наÑтупних верÑÑ–ÑÑ… або у разі, Ñкщо CA видає\nÑертифікат не одразу.\n\nПередбачено підтримку таких причин відкликаннÑ:\n\n * 0 - unspecified\n * 1 - keyCompromise\n * 2 - cACompromise\n * 3 - affiliationChanged\n * 4 - superseded\n * 5 - cessationOfOperation\n * 6 - certificateHold\n * 8 - removeFromCRL\n * 9 - privilegeWithdrawn\n * 10 - aACompromise\n\nЗауважте, що коди причини 7 не викориÑтовуєтьÑÑ. Докладніші дані у RFC 5280:\n\nhttp://www.ietf.org/rfc/rfc5280.txt\n\n"
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr "Помилка під Ñ‡Ð°Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката (CSR):"
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-"\n"
-" Повернути перше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ñ— назви призначеннÑ, Ñкщо така Ñ”\n"
-" "
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr "Помилка під Ñ‡Ð°Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката (CSR)"
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-"\n"
-" Забезпечити base64-ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ CSR Ñ– можливіÑÑ‚ÑŒ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°ÑˆÐ¸Ð¼n інÑтрументом обробки PKCS#10.\n"
-" "
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
-msgstr ""
-"Помилка під Ñ‡Ð°Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката (CSR): %s"
+msgstr "Помилка під Ñ‡Ð°Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката (CSR): %s"
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-"\n"
-" Вилучити початковий і завершальний мотлох у блоці BEGIN/END\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
+msgstr "ÐадіÑлати запит щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката."
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-"\n"
-" Перетворити СРу деÑÑткову або шіÑтнадцÑткову форму.\n"
-" Повертає чиÑло або None, Ñкщо Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ñ” невдачі.\n"
-" "
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-"\n"
-" За вказаним реєÑтраційним запиÑом без або з облаÑÑ‚ÑŽ дії повернути\n"
-" дані вузла.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
+msgstr "CSR"
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-"\n"
-" ÐадіÑлати запит щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката.\n"
-" "
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr "РеєÑтраційний запиÑ"
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
-msgstr ""
-"РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñертифіката (наприклад "
-"HTTP/test.example.com)"
+msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñертифіката (наприклад HTTP/test.example.com)"
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr "автоматично додати реєÑтраційний запиÑ, Ñкщо його не Ñ–Ñнує"
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "Сертифікат"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "Об’єкт"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr "Видавець"
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr "Ðе раніше"
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr "Ðе пізніше"
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr "Відбиток (MD5)"
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr "Відбиток (SHA1)"
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "Серійний номер"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ змінної на Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° Ñловником"
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
-msgstr ""
-"\n"
-" Перевірити Ñтан запиту щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
+msgstr "Перевірити Ñтан запиту щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката."
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "Ід. запиту"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "Стан запиту"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr "Серійний деÑÑтковий номер або шіÑтнадцÑтковий номер з префікÑом 0x"
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
-msgstr ""
-"\n"
-" Отримати вже Ñтворений Ñертифікат.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
+msgstr "Отримати вже Ñтворений Ñертифікат."
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr "Причина відкликаннÑ"
@@ -1978,84 +1850,49 @@ msgid "File to store the certificate in."
msgstr "Файл, у Ñкому зберігатимутьÑÑ Ð´Ð°Ð½Ñ– Ñертифіката."
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
-msgstr ""
-"\n"
-" Відкликати Ñертифікат.\n"
-" "
+msgid "Revoke a certificate."
+msgstr "Відкликати Ñертифікат."
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "Ðнульований"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "ПідÑтава"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "Причина Ð²Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð½Ñ Ñертифіката (0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
-msgstr ""
-"\n"
-" Забрати відкликаний Ñертифікат.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr "7 не Ñ” коректною причиною відкликаннÑ"
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr "Забрати відкликаний Ñертифікат."
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr "Ð’Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð½Ñ ÑкаÑовано"
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "Помилка"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
-"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"The available options are:\n"
+"NOTES:\n"
"\n"
-"User management options:\n"
-"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
-"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
-"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
-"\n"
-"Server Configuration.\n"
-"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
-"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
"Some attributes are read-only, provided only for information purposes. These\n"
"include:\n"
@@ -2064,214 +1901,173 @@ msgid ""
" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
"Password plug-in features: currently defines additional hashes that the\n"
" password will generate (there may be other conditions).\n"
-msgstr ""
"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñми IPA\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ð¼Ð¸ значеннÑми, Ñкі викориÑтовує IPA, Ñ– деÑкими параметрами.\n"
+"EXAMPLES:\n"
"\n"
-" Показати поточні налаштуваннÑ:\n"
+" Show basic server configuration:\n"
" ipa config-show\n"
"\n"
-" ВнеÑти зміни до налаштувань:\n"
-" ipa config-mod --maxusername=99\n"
-"\n"
-"Можливі параметри:\n"
-"\n"
-"Параметри ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами:\n"
-"\n"
-" --maxusername=INT МакÑ. довжина імені Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача\n"
-" --homedirectory=STR Типове Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ–Ñ… каталогів (типово /home)\n"
-" --defaultshell=STR Типова оболонка Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів (типово /bin/sh)\n"
-" --defaultgroup=STR Типова група Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів (типово ipausers).\n"
-" Група має Ñ–Ñнувати, інакше Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ðµ Ñпрацює.\n"
-" --emaildomain=STR Типовий домен ел. пошти Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів\n"
-"\n"
-"Параметри Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ. Впливають на діапазон пошуку Ñ– кількіÑÑ‚ÑŒ запиÑів,\n"
-"Ñкі буде повернуто у відповідь на запит щодо пошуку.\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-" --searchtimelimit=INT МакÑ. триваліÑÑ‚ÑŒ (у Ñек.) Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ (> 0 або -1, Ñкщо\n"
-" не обмежено)\n"
-" --searchrecordslimit=INT МакÑимальна кількіÑÑ‚ÑŒ запиÑів Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ (-1 — не\n"
-" обмежено)\n"
-"\n"
-"ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера.\n"
-"\n"
-" --enable-migration=BOOL Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ перенеÑеннÑ\n"
-" --pwdexpnotify=INT Ð²Ð¸Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ñтроку дії паролÑ\n"
-" (у днÑÑ…)\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-"Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑÑ Ñ‚ÑƒÑ‚, отже його буде проÑто\n"
-"повторено. Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ поточній верÑÑ–Ñ— не викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑповіщеннÑ\n"
-"перед Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñтроку дії паролÑ.\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"ДеÑкі з атрибутів можна лише читати, Ñ—Ñ… призначено лише з метою інформуваннÑ.\n"
-"Серед цих атрибутів:\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"ОÑнова Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифікації: налаштована оÑнова Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифікації,\n"
-" наприклад O=EXAMPLE.COM. Ðалаштувати можна лише під Ñ‡Ð°Ñ Ð²ÑтановленнÑ.\n"
-"МожливоÑÑ‚Ñ– додатка паролів: у поточній верÑÑ–Ñ— визначаєтьÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¼Ð¸ хешами,\n"
-" Ñкі буде Ñтворено за паролем (можуть бути інші умови).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
+msgstr "\nÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ð¼Ð¸ значеннÑми, Ñкі викориÑтовує IPA, та деÑкими з\nпридатних до зміни параметрів.\n\nЗÐУВÐЖЕÐÐЯ:\n\nТут зберігаєтьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ паролів\n(--pwdexpnotify), отже його не буде Ñкопійовано. Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ¸ що\nне викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів щодо Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñтроку дії\nпаролÑ.\n\nДеÑкі з атрибутів придатні лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, Ñ—Ñ… буде показано лише з метою\nінформуваннÑ. Серед цих атрибутів:\n\nОÑнова Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифіката: змінна оÑнова Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифіката,\n наприклад O=EXAMPLE.COM. Цей атрибут можна налаштувати лише під чаÑ\n вÑтановленнÑ.\nПараметри додатка роботи з паролÑми: у поточній верÑÑ–Ñ— визначають додаткові\n хеші, Ñкі ÑтворюютьÑÑ Ð½Ð° оÑнові Ð¿Ð°Ñ€Ð¾Ð»Ñ (можуть бути Ñ– інші умови).\n\nПРИКЛÐДИ:\n\n Показати оÑновні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера:\n ipa config-show\n\n Показати вÑÑ– параметри налаштуваннÑ:\n ipa config-show --all\n\n Змінити макÑимальну довжину імені кориÑтувача на 99 Ñимволів:\n ipa config-mod --maxusername=99\n\n Збільшити типовий Ñ‡Ð°Ñ Ñ– макÑимальне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° розмір пошуку\n Ñервера IPA:\n ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n\n Ð’Ñтановити типовий домен електронної пошти кориÑтувачів:\n ipa config-mod --emaildomain=example.com\n\n Увімкнути режим перенеÑеннÑ, щоб зробити команду \"ipa migrate-ds\"\n працездатною:\n ipa config-mod --enable-migration=TRUE\n"
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr "searchtimelimit повинен мати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ -1 або > 1."
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ IPA\n"
-" "
+msgid "configuration options"
+msgstr "параметри налаштуваннÑ"
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr "ÐалаштуваннÑ"
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
-msgstr "МакÑ. довжина імені кориÑтувача"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
+msgstr "МакÑимальна довжина імені кориÑтувача"
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr "ÐдреÑа домашніх каталогів"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
-msgstr "Типова адреÑа домашніх каталогів."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
+msgstr "Типова адреÑа домашніх каталогів"
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "Типова оболонка"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
-msgstr "Типова оболонка Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
+msgstr "Типова оболонка Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів"
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "Типова група кориÑтувачів"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr "Типова група Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів."
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
-msgstr "Типовий домен електронної пошти Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
+msgstr "Типова група Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів"
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
-msgstr "Типовий домен електронної пошти Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
+msgstr "Типовий домен ел. пошти"
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу пошуку"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
-msgstr ""
-"МакÑимальний проміжок чаÑу (у Ñекундах) Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ñ–Ñ”Ñ— дії з пошуку "
-"(>0, -1 — без обмежень)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
+msgstr "МакÑимальний проміжок чаÑу (у Ñекундах) Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ñ–Ñ”Ñ— дії з пошуку (>0, -1 — без обмежень)"
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ пошуку"
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
-msgstr "МакÑимальна кількіÑÑ‚ÑŒ запиÑів результатів пошуку (-1 — без обмежень)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
+msgstr "МакÑимальна кількіÑÑ‚ÑŒ запиÑів результатів пошуку (-1 — без обмежень)"
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr "ÐŸÐ¾Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ кориÑтувачів"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-"Відокремлений комами ÑпиÑок полів, за Ñкими виконуватиметьÑÑ Ð¿Ð¾ÑˆÑƒÐº "
-"кориÑтувачів."
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
-msgstr ""
-"Відокремлений комами ÑпиÑок полів, за Ñкими виконуватиметьÑÑ Ð¿Ð¾ÑˆÑƒÐº груп."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
+msgstr "Відокремлений комами ÑпиÑок полів, за Ñкими виконуватиметьÑÑ Ð¿Ð¾ÑˆÑƒÐº кориÑтувачів"
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "Режим міграції"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
+msgstr "Відокремлений комами ÑпиÑок полів, за Ñкими виконуватиметьÑÑ Ð¿Ð¾ÑˆÑƒÐº груп"
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
-msgstr "Увімкнути режим міграції."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
+msgstr "Увімкнути режим міграції"
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr "Базовий об’єкт Ñертифікації"
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
-msgstr ""
-"ОÑнова Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів об’єктів Ñертифікації (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
+msgstr "ОÑнова Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів об’єктів Ñертифікації (OU=Test,O=Example)"
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr "Типові клаÑи об’єктів групи"
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
-msgstr "Типові клаÑи об’єктів групи (ÑпиÑок значень, відокремлених комами)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
+msgstr "Типові клаÑи об’єктів груп (ÑпиÑок клаÑів, відокремлених комами)"
#: ipalib/plugins/config.py:159
msgid "Default user objectclasses"
msgstr "Типові клаÑи об’єктів кориÑтувачів"
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
-msgstr ""
-"Типові клаÑи об’єктів кориÑтувачів (ÑпиÑок значень, відокремлених комами)."
-
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
-msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ñтроку дії паролÑ"
+msgid "Default user objectclasses (comma-separated list)"
+msgstr "Типові клаÑи об’єктів кориÑтувачів (ÑпиÑок клаÑів, відокремлених комами)"
#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
-msgstr ""
-"Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ кількіÑÑ‚ÑŒ днів, Ñкі залишилиÑÑ Ð´Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ñ–Ñ— паролÑ."
+msgid "Password Expiration Notification (days)"
+msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ñтроку дії Ð¿Ð°Ñ€Ð¾Ð»Ñ (у днÑÑ…)"
+
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
+msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ кількіÑÑ‚ÑŒ днів, Ñкі залишилиÑÑ Ð´Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ñ–Ñ— паролÑ."
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr "МожливоÑÑ‚Ñ– додатка паролів"
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr "Додаткові хеші Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ додатку паролів."
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
-msgstr ""
-"\n"
-" Змінити параметри налаштуваннÑ.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
+msgstr "Змінити параметри налаштуваннÑ."
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
-msgstr ""
-"\n"
-" Показати поточні налаштуваннÑ.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr "Такої групи не Ñ–Ñнує"
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr "не можна викориÑтовувати атрибут «%s»"
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
+msgstr "Ðе може бути порожнім"
+
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr "Типовий атрибут %s, %s, має бути заборонено!"
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr "Показати поточні налаштуваннÑ."
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -2285,187 +2081,108 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-msgstr ""
-"\n"
-"Міжгрупові уповноваженнÑ\n"
-"\n"
-"Права доÑтупу визначають точне ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ð¹. Правила\n"
-"ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом (ACL) або команди (ACI) надають доÑтуп до виконаннÑ\n"
-"завдань з Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, зміни групи тощо.\n"
-"\n"
-"Міжгрупові ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ð°ÑŽÑ‚ÑŒ права учаÑникам однієї групи набір прав\n"
-"доÑтупу іншої групи.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° уповноваженнÑ, Ñкі дозволÑÑ‚ÑŒ редакторам редагувати адреÑи\n"
-" адмініÑтраторів:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\n"
-"\n"
-" Під Ñ‡Ð°Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑком атрибутів вам Ñлід включити до ÑпиÑку вÑÑ– атрибути,\n"
-" зокрема вже Ñтворені. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾Ð²Ð¾Ð³Ð¾ індекÑу (postalCode) до ÑпиÑку:\n"
-" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --group=editors 'editors edit admins street'\n"
-"\n"
-" Показ нашого оновленого правила:\n"
-" ipa delegation-show 'editors edit admins street'\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°:\n"
-" ipa delegation-del 'editors edit admins street'\n"
-
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-"\n"
-" memberOf Ñ” у фільтрі, але нам потрібно отримати групу длÑ\n"
-" ÑÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ.\n"
-" "
+" ipa delegation-del \"managers edit employees' street\"\n"
+msgstr "\nМіжгрупове уповноваженнÑ\n\nПрава доÑтупу може бути точно налаштовано. Правила ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом\nабо інÑтрукції (ACI), Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… завдань, зокрема\nÐ´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до групи тощо.\n\nМіжгрупові ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ð°ÑŽÑ‚ÑŒ учаÑникам однієї групи можливіÑÑ‚ÑŒ\nоновлювати набір атрибутів учаÑників іншої групи.\n\nПРИКЛÐДИ:\n\n Додати правило уповноваженнÑ, Ñке надаÑÑ‚ÑŒ змогу керівникам (managers)\n редагувати адреÑи Ñпівробітників:\n ipa delegation-add --attrs=street --membergroup=managers --group=employees \"managers edit employees' street\"\n\n Під Ñ‡Ð°Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑком атрибутів Ñлід включати вÑÑ– атрибути ÑпиÑку\n разом з вже Ñтвореними. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾ ÑпиÑку postalCode:\n ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n\n Показ нашого оновленого правила:\n ipa delegation-show \"managers edit employees' street\"\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°:\n ipa delegation-del \"managers edit employees' street\"\n"
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr "Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(permission)s» не знайдено"
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ учаÑників %(group)s: %(error)s"
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
-msgstr ""
-"\n"
-" Визначити, чи Ñ” ACI ACI ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– повідомити про виключеннÑ, Ñкщо\n"
-" він не Ñ” ACI уповноваженнÑ.\n"
-"\n"
-" Повернути результат, Ñкщо буде виÑвлено ACI уповноваженнÑ, з додаваннÑм\n"
-" нового атрибута membergroup.\n"
-" "
-
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
+msgstr "уповноваженнÑ"
#: ipalib/plugins/delegation.py:102
+msgid "delegations"
+msgstr "уповноваженнÑ"
+
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr "УповноваженнÑ"
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr "УповноваженнÑ"
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr "Ðазва уповноваженнÑ"
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
-msgstr ""
-"Відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write). "
-"Типовим є write."
+msgstr "Відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write). Типовим Ñ” write."
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr "УчаÑник групи кориÑтувачів"
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr "Група кориÑтувачів, до Ñкої Ñлід заÑтоÑувати уповноваженнÑ"
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
-msgstr ""
-"\n"
-" Додати нове уповноваженнÑ.\n"
-" "
-
#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
+msgstr "Додати нове уповноваженнÑ."
+
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr "Додано ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
+msgstr "Вилучити уповноваженнÑ."
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr "Вилучено ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
-msgstr ""
-"\n"
-" Змінити уповноваженнÑ.\n"
-" "
+msgid "Modify a delegation."
+msgstr "Змінити уповноваженнÑ."
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr "Змінено ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
-msgstr ""
-"\n"
-" Пошук уповноважень.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
+msgstr "Пошук уповноважень."
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноваженнÑ"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноваженнÑ"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноважень"
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
+msgstr "Показати дані щодо уповноваженнÑ."
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -2478,6 +2195,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -2487,11 +2212,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -2517,7 +2245,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -2544,499 +2272,566 @@ msgid ""
" if one is not included):\n"
" ipa dns-resolve www.example.com\n"
" ipa dns-resolve www\n"
-msgstr ""
-"\n"
-"СиÑтема назв доменів (DNS)\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñами зон DNS та реÑурÑів.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— зони:\n"
-" ipa dnszone-add example.com --name-server nameserver.example.com\n"
-" --admin-email admin@example.com\n"
-"\n"
-" Додати другий Ñервер назв Ð´Ð»Ñ example.com:\n"
-" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
-"\n"
-" Додати поштовий Ñервер Ð´Ð»Ñ example.com:\n"
-" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
-"\n"
-" Вилучити раніше доданий Ñервер назв з example.com:\n"
-" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
-"\n"
-" Додати новий Ð·Ð°Ð¿Ð¸Ñ A Ð´Ð»Ñ www.example.com: (випадковий IP)\n"
-" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
-"\n"
-" Додати новий Ð·Ð°Ð¿Ð¸Ñ PTR Ð´Ð»Ñ www.example.com\n"
-" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
-"\n"
-" Додати нові запиÑи SRV Ð´Ð»Ñ Ñерверів LDAP. Три чверті запитів\n"
-" мають надходити до fast.example.com, одна чверть — до slow.example.com.\n"
-" Якщо обидва недоÑтупні, перемкнутиÑÑ Ð½Ð° backup.example.com.\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n"
-" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n"
-"\n"
-" Якщо команда dnsrecord-add виконуєтьÑÑ Ð±ÐµÐ· параметрів Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу,\n"
-" запуÑкаєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹ режим. У цьому режимі програма надÑилає запити\n"
-" щодо найтиповіших запиÑів відповідної зони:\n"
-" ipa dnsrecord-add example.com www\n"
-" [A запиÑ]: 1.2.3.4,11.22.33.44 (2 інтерактивно вказаних випадкових IP)\n"
-" [AAAA запиÑ]: (адреÑу AAAA не введено)\n"
-" Ðазва запиÑу: www\n"
-" A запиÑ: 1.2.3.4, 11.22.33.44\n"
-"\n"
-" Крім того, інтерактивним режимом можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів DNS:\n"
-" ipa dnsrecord-del example.com www\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… реÑурÑів не передбачено.\n"
-" Вилучити вÑÑ–? Так/ÐÑ– (типово ÐÑ–): (не вилучати вÑÑ– запиÑи)\n"
-" Поточний вміÑÑ‚ запиÑу DNS:\n"
-"\n"
-" A-запиÑ: 1.2.3.4, 11.22.33.44\n"
-"\n"
-" Вилучити A Ð·Ð°Ð¿Ð¸Ñ '1.2.3.4'? Так/ÐÑ– (типово ÐÑ–): \n"
-" Вилучити A Ð·Ð°Ð¿Ð¸Ñ '11.22.33.44'? Так/ÐÑ– (типово ÐÑ–): y\n"
-" Ðазва запиÑу: www\n"
-" A запиÑ: 1.2.3.4 (A Ð·Ð°Ð¿Ð¸Ñ 11.22.33.44 було вилучено)\n"
-"\n"
-" Показ зони example.com:\n"
-" ipa dnszone-show example.com\n"
-"\n"
-" Знайти зону з \"example\" у назві домену:\n"
-" ipa dnszone-find example\n"
-"\n"
-" Знайти запиÑи Ð´Ð»Ñ Ñ€ÐµÑурÑів з \"www\" у назві у зоні example.com:\n"
-" 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"
-"\n"
-" Показ запиÑів з реÑурÑу www у зоні example.com\n"
-" ipa dnsrecord-show example.com www\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð¾Ð½Ð¸ example.com з уÑіма запиÑами реÑурÑів:\n"
-" ipa dnszone-del example.com\n"
-"\n"
-" Визначити назву вузла Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ Ñ–ÑÐ½ÑƒÐ²Ð°Ð½Ð½Ñ (додаÑÑ‚ÑŒ типовий домен IPA,\n"
-" Ñкщо такий включено):\n"
-" ipa dns-resolve www.example.com\n"
-" ipa dns-resolve www\n"
+msgstr "\nСиÑтема доменних назв (DNS)\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¾Ð½Ð¾ÑŽ Ñ– запиÑами реÑурÑів DNS.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— зони:\n ipa dnszone-add example.com --name-server nameserver.example.com\n --admin-email admin@example.com\n\n Змінити зону з метою дозволити динамічні Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð»Ð°Ñних запиÑів вузлів у облаÑÑ‚Ñ– EXAMPLE.COM:\n ipa dnszone-mod example.com --dynamic-update=TRUE \\\n --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA;\"\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— зворотної зони, вказаної за IP-адреÑою у мережі:\n ipa dnszone-add --name-from-ip 80.142.15.0/24\n --name-server nameserver.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ Ñервера назв Ð´Ð»Ñ example.com:\n ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾Ð²Ð¾Ð³Ð¾ Ñервера Ð´Ð»Ñ example.com:\n ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾ доданий Ñервер назв з example.com:\n ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ LOC Ð´Ð»Ñ example.com:\n ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E 227.64m\"\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу A Ð´Ð»Ñ www.example.com: (випадковий IP)\n ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу PTR Ð´Ð»Ñ www.example.com\n ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… запиÑів SRV Ð´Ð»Ñ Ñерверів LDAP. Три чвертини запитів\n має бути надіÑлано на fast.example.com, одну чвертину — slow.example.com.\n Якщо жодне з них не буде доÑтупним, перемкнутиÑÑ Ð½Ð° backup.example.com.\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example.com\"\n ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup.example.com\"\n\n У разі Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ dnsrecord-add без параметрів Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾\n запиÑу буде увімкнено інтерактивний режим. ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð¼ інтерактивно\n запитає Ð²Ð°Ñ Ñ‰Ð¾Ð´Ð¾ більшоÑÑ‚Ñ– типових типів запиÑів відповідної зони:\n ipa dnsrecord-add example.com www\n [Ð·Ð°Ð¿Ð¸Ñ A]: 1.2.3.4,11.22.33.44 (2 інтерактивно вказано два випадкових IP)\n [Ð·Ð°Ð¿Ð¸Ñ AAAA]: (не вказано адреÑи AAAA)\n Ðазва запиÑу: www\n Ð—Ð°Ð¿Ð¸Ñ A: 1.2.3.4, 11.22.33.44\n\n Інтерактивним режимом можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів DNS:\n ipa dnsrecord-del example.com www\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… реÑурÑів не передбачено.\n Вилучити вÑÑ–? Так/ÐÑ– (типово «Ðі»): (не вилучати вÑÑ– запиÑи)\n Поточний вміÑÑ‚ запиÑу DNS:\n\n Ð·Ð°Ð¿Ð¸Ñ A: 1.2.3.4, 11.22.33.44\n\n Вилучити Ð·Ð°Ð¿Ð¸Ñ A «1.2.3.4»? Так/ÐÑ– (типово «Ðі»):\n Вилучити Ð·Ð°Ð¿Ð¸Ñ A «11.22.33.44»? Так/ÐÑ– (типово «Ðі»): y\n Ðазва запиÑу: www\n Ð—Ð°Ð¿Ð¸Ñ A: 1.2.3.4 (Ð·Ð°Ð¿Ð¸Ñ A 11.22.33.44 було вилучено)\n\n Показ зони example.com:\n ipa dnszone-show example.com\n\n Пошук зони з Ñ€Ñдком «example» у назві домену:\n ipa dnszone-find example\n\n Пошук запиÑів Ð´Ð»Ñ Ñ€ÐµÑурÑів з Ñ€Ñдком «www» у назві у зоні example.com:\n ipa dnsrecord-find example.com www\n\n Знайти запиÑи A зі значеннÑм 10.10.0.1 у зоні example.com\n ipa dnsrecord-find example.com --a-rec 10.10.0.1\n\n Показ запиÑів Ð´Ð»Ñ Ñ€ÐµÑурÑу www у зоні example.com\n ipa dnsrecord-show example.com www\n\n Вилучити зону example.com з уÑіма запиÑами реÑурÑів:\n ipa dnszone-del example.com\n\n Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ вузла з метою перевірки, чи Ñ–Ñнує вузол (додаваннÑ\n типового домену IPA, Ñкщо його не включено):\n ipa dns-resolve www.example.com\n ipa dns-resolve www\n"
+
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr "некоректний формат запиÑу IP-адреÑи"
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr "некоректний формат запиÑу мережі IP"
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr "формат має бути таким: \"пріоритетніÑÑ‚ÑŒ вага порт призначеннÑ\""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr "формат має бути таким: \"пріоритетніÑÑ‚ÑŒ вага порт призначеннÑ\" (див. RFC 2782)"
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
-msgstr "Створити Ñерійний номер Ð´Ð»Ñ Ð·Ð¾Ð½."
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr "формат має бути таким: \"пріоритетніÑÑ‚ÑŒ поштовий_Ñервер\" (див. RFC 1035)"
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– має бути цілим чиÑлом"
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– має належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr "формат має бути таким: \"порÑдок пріоритетніÑÑ‚ÑŒ прапорці Ñлужба формальний_вираз замінник\" (див. RFC 2915)"
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
-msgstr "див. RFC 2915 "
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr "порÑдок Ñ– пріоритетніÑÑ‚ÑŒ мають бути цілими чиÑлами"
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñдок Ñ– пріоритетніÑÑ‚ÑŒ мають належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr "прапорець має міÑтити один Ñимвол (можна викориÑтовувати проÑÑ‚Ñ– лапки)"
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
+msgstr "прапорець має бути одним зі значень: \"S\", \"A\", \"U\" або \"P\""
#: ipalib/plugins/dns.py:249
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr "формат має бути таким: \"підтип назва_вузла\" (див. RFC 1183)"
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿Ñƒ має бути цілим чиÑлом"
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ має належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:266
+msgid ""
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
+msgstr "формат має бути таким: \"тип теґ_ключа алгоритм Ñертифікат—crl\" (див. RFC 4398)"
+
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr "теґ_ключа, алгоритм Ñ– тип_контрольної_Ñуми мають бути цілими чиÑлами"
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚ÐµÒ‘ Ñ– теґ_ключа мають належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼ має належати діапазону від 0 до 255"
+
+#: 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"
+msgstr "формат має бути таким: \"назва_домену\" (див. RFC 1035): %s"
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr "формат має бути таким: \"призначеннÑ\" (див. RFC 2672): %s"
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr "формат має бути таким: \"теґ_ключа алгоритм тип_контрольної_Ñуми контрольна_Ñума\" (див. RFC 4034)"
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– має належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼ Ñ– тип_контрольної_Ñуми мають належати діапазону від 0 до 255"
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr "формат має бути таким: \"прапорці протокол алгоритм відкритий_ключ\" (див. RFC 2535)"
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr "прапорці, протокол Ñ– алгоритм мають бути цілими чиÑлами"
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð» має належати діапазону від 0 до 255"
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr "формат має бути таким:\n \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n where:\n d1: [0 .. 90] (широта у градуÑах)\n d2: [0 .. 180] (довгота у градуÑах)\n m1, m2: [0 .. 59] (мінути широти Ñ– довготи)\n s1, s2: [0 .. 59.999] (Ñекунди широти Ñ– довготи)\n alt: [-100000.00 .. 42849672.95] крок — .01 (виÑота у метрах)\n siz, hp, vp: [0 .. 90000000.00] (розміри, точніÑÑ‚ÑŒ у метрах)\n Див. RFC 1876."
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr "%s має бути цілим чиÑлом"
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr "%s має бути дійÑним чиÑлом"
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr "d1 і d2 мають належати діапазону від 0 до 90"
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr "m1, m2, s1 і s2 мають належати діапазону від 0 до 59.999"
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr "alt має належати діапазону від -100000.00 до 42849672.95"
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr "siz, hp і vp мають належати діапазону від 0 до 90000000.00"
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr "формат має бути таким: \"назва_домену\" (див. RFC 1035)"
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr "формат має бути таким: \"назва_наÑтупного_домену тип1 [тип2 [тип3 [...]]]\" (див. RFC 4034)"
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr "тип має бути одним з таких: "
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr "формат має бути таким: \"пріоритет обмінник\" (див. RFC 2230)"
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ñ–ÑÑ‚ÑŒ має бути цілим чиÑлом"
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ñ–ÑÑ‚ÑŒ має належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr "формат має бути таким \"тип алгоритм мітки початковий_ttl Ñтрок_завершеннÑ_дії_підпиÑу початок_дії_підпиÑу теґ_ключа ім’Ñ_підпиÑувача підпиÑ\" (див. RFC 2535, 4034)"
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr "тип має бути одним з таких значень: "
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr "значеннÑми параметрів алгоритм, мітки, початковий_ttl Ñ– теґ_ключа мають бути цілі чиÑла"
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr "параметри Ñтрок_дії_підпиÑу Ñ– початок_дії_підпиÑу має бути вказано у форматі запиÑу чаÑу \"РРРРММДДГГХХСС\""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° алгоритм Ñ– мітки мають належати діапазону від 0 до 255"
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¹_ttl має належати діапазону від 0 до 4294967295"
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚ÐµÒ‘ має належати діапазону від 0 до 65535"
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr "формат має бути таким: \"алгоритм тип_fp відбиток\" (див. RFC 4255)"
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² алгоритм Ñ– тип_fp мають бути цілими чиÑлами"
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° алгоритм Ñ– тип_fp мають належати діапазону від 0 до 255"
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr "Тип RR DNS не підтримуєтьÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð¼ bind-dyndb-ldap"
+
+#: ipalib/plugins/dns.py:611
+#, python-format
msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
msgstr "Сервер назв «%(host)s» не має відповідного запиÑу A/AAAA"
-#: ipalib/plugins/dns.py:272
-msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
-msgstr ""
-"\n"
-" Зона DNS, контейнер запиÑів реÑурÑів.\n"
-" "
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr "зона DNS"
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr "зони DNS"
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr "Зони DNS"
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr "Зона DNS"
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr "Ðазва зони"
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr "Ðазва зони (FQDN)"
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr "Мережа IP зворотної зони"
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr "Мережа IP Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ñ… назв зони"
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr "ОÑновний Ñервер назв"
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
-msgstr "ОÑновний Ñервер назв."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
+msgstr "Ðазва домену оÑновного Ñервера назв"
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr "ÐдреÑа електронної пошти адмініÑтратора"
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr "Серійний номер SOA"
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr "Серійний номер запиÑу SOA"
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr "ОÑÐ²Ñ–Ð¶ÐµÐ½Ð½Ñ SOA"
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr "Ð§Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу SOA"
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ Ñпроби SOA"
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr "Проміжок між повторними Ñпробами Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу SOA"
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr "ЗаÑÑ‚Ð°Ñ€Ñ–Ð²Ð°Ð½Ð½Ñ SOA"
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr "Ð§Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñтроку дії запиÑу SOA"
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr "Мінімальний SOA"
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr "ТриваліÑÑ‚ÑŒ ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¼Ð¾Ð²"
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr "Строк дії SOA"
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr "Ð§Ð°Ñ Ð¶Ð¸Ñ‚Ñ‚Ñ Ð·Ð°Ð¿Ð¸Ñу SOA"
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr "ÐšÐ»Ð°Ñ SOA"
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr "ÐšÐ»Ð°Ñ Ð·Ð°Ð¿Ð¸Ñів SOA"
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr "Правила Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ BIND"
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr "Ðктивна зона"
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr "Чи є зона активною?"
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr "Динамічне оновленнÑ"
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr "Дозволити динамічні оновленнÑ."
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
-msgstr ""
-"\n"
-" Створити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
+msgstr "Створити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA)."
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr "ПримуÑово"
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr "ПримуÑово Ñтворити зону DNS, навіть Ñкщо Ñервера назв немає у DNS."
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr "Додати Ð·Ð°Ð¿Ð¸Ñ Ñервера назв до DNS з цією IP-адреÑою"
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr "DNS не налаштовано"
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
-msgstr ""
-"\n"
-" Вилучити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
+msgstr "ÐдреÑа Ñервера назв не Ñ” повною назвою домену"
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
-msgstr ""
-"\n"
-" Змінити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
+msgstr "Вилучити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA)."
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
-msgstr ""
-"\n"
-" Пошук зон DNS (запиÑів SOA).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
+msgstr "Змінити зону DNS (Ð·Ð°Ð¿Ð¸Ñ SOA)."
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо зони DNS (запиÑу SOA).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
+msgstr "Пошук зон DNS (запиÑів SOA)."
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути зону DNS.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
+msgstr "Лише прÑмі зони"
+
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
+msgstr "Шукати лише прÑмі зони"
-#: ipalib/plugins/dns.py:472
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
+msgstr "Показати дані щодо зони DNS (запиÑу SOA)."
+
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
+msgstr "Вимкнути зону DNS."
+
+#: ipalib/plugins/dns.py:878
+#, python-format
msgid "Disabled DNS zone \"%(value)s\""
msgstr "Вимкнено зону DNS «%(value)s»"
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
-msgstr ""
-"\n"
-" Увімкнути зону DNS.\n"
-" "
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
+msgstr "Увімкнути зону DNS."
-#: ipalib/plugins/dns.py:494
+#: ipalib/plugins/dns.py:899
+#, python-format
msgid "Enabled DNS zone \"%(value)s\""
msgstr "Увімкнено зону DNS «%(value)s»"
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
-msgstr ""
-"\n"
-" Ð—Ð°Ð¿Ð¸Ñ DNS.\n"
-" "
-
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:922
msgid "DNS resource record"
msgstr "Ð—Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS"
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
+msgstr "ЗапиÑи реÑурÑів DNS"
+
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
+msgstr "ЗапиÑи реÑурÑів DNS"
+
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
+msgstr "Ð—Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS"
+
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
msgid "Record name"
msgstr "Ðазва запиÑу"
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
msgid "Time to live"
msgstr "Строк дії"
-#: ipalib/plugins/dns.py:538
+#: ipalib/plugins/dns.py:944
msgid "Class"
msgstr "КлаÑ"
-#: ipalib/plugins/dns.py:539
+#: ipalib/plugins/dns.py:945
msgid "DNS class"
msgstr "ÐšÐ»Ð°Ñ DNS"
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ запиÑів DNS з параметрами запиÑу.\n"
-" "
-
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
-msgstr ""
-"\n"
-" ОÑновний ÐºÐ»Ð°Ñ Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ/Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів з запиÑів реÑурÑів DNS.\n"
-" "
-
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
-msgstr ""
-"\n"
-" Додати запиÑи до реÑурÑу DNS.\n"
-" "
-
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
-msgstr ""
-"\n"
-" Додати новий Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS.\n"
-" "
-
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
-msgstr ""
-"примуÑово Ñтворити Ð·Ð°Ð¿Ð¸Ñ Ñервера назв, навіть Ñкщо відповідної назви вузла "
-"немає у DNS"
-
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, python-format
msgid ""
"Reverse zone for PTR record should be a sub-zone of one the following fully "
"qualified domains: %s"
-msgstr ""
-"Зворотна зона Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу PTR має бути підзоною одного з таких повноформатних"
-" доменів: %s"
+msgstr "Зворотна зона Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу PTR має бути підзоною одного з таких повноформатних доменів: %s"
-#: ipalib/plugins/dns.py:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr "Зворотна зона %s потребує точно %d компонентів IP-адреÑ, надано %d"
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
-msgstr "Ð—Ð°Ð¿Ð¸Ñ PTR «%s» Ñ” неповним (перевірте чи немає завершального «.»)"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
+msgstr "Додати новий Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS."
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ DNS.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "примуÑово Ñтворити Ð·Ð°Ð¿Ð¸Ñ Ñервера назв, навіть Ñкщо відповідної назви вузла немає у DNS"
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
+msgstr "Змінити Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS."
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr "Вилучено Ð·Ð°Ð¿Ð¸Ñ Â«%(value)s»"
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
+msgstr "Вилучити Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS."
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
msgid ""
"Neither --del-all nor options to delete a specific record provided.\n"
"Command help may be consulted for all supported record types."
-msgstr ""
-"Ðе надано ні --del-all, ні параметрів Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ запиÑу.\n"
-"Ð’ÑÑ– підтримувані типи запиÑів можна знайти у виводі команди help."
+msgstr "Ðе надано ні --del-all, ні параметрів Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ запиÑу.\nÐ’ÑÑ– підтримувані типи запиÑів можна знайти у виводі команди help."
-#: ipalib/plugins/dns.py:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr "Вилучити вÑÑ– пов’Ñзані запиÑи"
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… реÑурÑів не передбачено."
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr "Вилучити вÑе?"
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr "Поточний вміÑÑ‚ запиÑу DNS:\n"
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr "Вилучити %s «%s»?"
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr "ЗапиÑу %s зі значеннÑм %s не знайдено"
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
-msgstr ""
-"\n"
-" Показати реÑÑƒÑ€Ñ DNS.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
+msgstr "Показати реÑÑƒÑ€Ñ DNS."
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
-msgstr ""
-"\n"
-" Шукати реÑурÑи DNS.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
+msgstr "Шукати реÑурÑи DNS."
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
-msgstr ""
-"\n"
-" Визначити назву вузла у DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
+msgstr "Визначити назву вузла у DNS."
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr "Знайдено «%(value)s»"
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr "Ðазва вузла"
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr "Вузла «%(host)s» не знайдено"
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-"\n"
-" ПеревірÑÑ”, чи увімкнено на ÑкомуÑÑŒ Ñервері Ñлужбу DNS.\n"
-" "
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -3071,262 +2866,130 @@ msgid ""
"IMPORTED if you have used entitle-import.\n"
"\n"
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
-msgstr ""
-"\n"
-"ІменуваннÑ\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñм клієнтÑьких комп’ютерів\n"
-"\n"
-"ІменуваннÑми можна керувати реєÑтрацією за допомогою Ñервера іменувань\n"
-"на оÑнові імені кориÑтувача Ñ– Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð±Ð¾ ручним імпортуваннÑм іменуваннÑ\n"
-"Ñертифікатів. Сертифікат Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñтить вбудовану інформацію,\n"
-"зокрема Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ, кількіÑÑ‚ÑŒ та дати чинноÑÑ‚Ñ–.\n"
-"\n"
-"Сервер Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÑ” кількіÑÑ‚ÑŽ доÑтупних іменувань.\n"
-"Ð”Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½ÑŒ викориÑтаними Ñервером IPA вам Ñлід вказати\n"
-"кількіÑÑ‚ÑŒ та позначити Ñк викориÑтані Ñервером іменуваннÑ.\n"
-"\n"
-" РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð·Ð° допомогою Ñервера іменувань:\n"
-" ipa entitle-register consumer\n"
-"\n"
-" Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката іменуваннÑ:\n"
-" ipa entitle-import /home/user/ipaclient.pem\n"
-"\n"
-" Показ поточних іменувань:\n"
-" ipa entitle-status\n"
-"\n"
-" ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð¸Ñ†ÑŒ щодо Ñертифікатів іменуваннÑ:\n"
-" ipa entitle-get\n"
-"\n"
-" ВикориÑтати декілька іменувань з Ñервера іменуваннÑ:\n"
-" ipa entitle-consume 50\n"
-"\n"
-"Ідентифікатором реєÑтрації Ñ” унікальний ідентифікатор (UUID). Ідентифікатор\n"
-"буде ІМПОРТОВÐÐО, Ñкщо ви ÑкориÑтаєтеÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñм іменувань.\n"
-"\n"
-"ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до /etc/rhsm/rhsm.conf потребує перезапуÑку Ñлужби httpd.\n"
+msgstr "\nІменуваннÑ\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñм клієнтÑьких комп’ютерів\n\nІменуваннÑми можна керувати реєÑтрацією за допомогою Ñервера іменувань\nна оÑнові імені кориÑтувача Ñ– Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð±Ð¾ ручним імпортуваннÑм іменуваннÑ\nÑертифікатів. Сертифікат Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñтить вбудовану інформацію,\nзокрема Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ, кількіÑÑ‚ÑŒ та дати чинноÑÑ‚Ñ–.\n\nСервер Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÑ” кількіÑÑ‚ÑŽ доÑтупних іменувань.\nÐ”Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½ÑŒ викориÑтаними Ñервером IPA вам Ñлід вказати\nкількіÑÑ‚ÑŒ та позначити Ñк викориÑтані Ñервером іменуваннÑ.\n\n РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð·Ð° допомогою Ñервера іменувань:\n ipa entitle-register consumer\n\n Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката іменуваннÑ:\n ipa entitle-import /home/user/ipaclient.pem\n\n Показ поточних іменувань:\n ipa entitle-status\n\n ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð¸Ñ†ÑŒ щодо Ñертифікатів іменуваннÑ:\n ipa entitle-get\n\n ВикориÑтати декілька іменувань з Ñервера іменуваннÑ:\n ipa entitle-consume 50\n\nІдентифікатором реєÑтрації Ñ” унікальний ідентифікатор (UUID). Ідентифікатор\nбуде ІМПОРТОВÐÐО, Ñкщо ви ÑкориÑтаєтеÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñм іменувань.\n\nВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до /etc/rhsm/rhsm.conf потребує перезапуÑку Ñлужби httpd.\n"
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
-msgstr ""
-"\n"
-" Отримати наше Ñховище іменувань. ПрипуÑкаєтьÑÑ, що Ñ–Ñнує лише одне Ñховище.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
+msgstr "іменуваннÑ"
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
-msgstr ""
-"\n"
-" Отримати наш UUID, Ñертифікат Ñ– ключ з LDAP.\n"
-"\n"
-" Окрім Ñтану помилки, за Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñових файлів відповідає Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ.\n"
-" "
-
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт іменуваннÑ\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
+msgstr "іменуваннÑ"
-#: ipalib/plugins/entitle.py:189
+#: ipalib/plugins/entitle.py:190
msgid "Entitlements"
msgstr "ІменуваннÑ"
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
-msgstr ""
-"\n"
-" Показати поточні іменуваннÑ\n"
-" "
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
+msgstr "ІменуваннÑ"
+
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
+msgstr "Показати поточні іменуваннÑ."
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr "UUID"
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr "Продукт"
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr "КількіÑÑ‚ÑŒ"
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr "ВикориÑтано"
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
-msgstr ""
-"\n"
-" ВикориÑтати іменуваннÑ\n"
-" "
+msgid "Consume an entitlement."
+msgstr "ВикориÑтати іменуваннÑ."
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr "ВикориÑтано %(value)s іменувань."
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-"\n"
-" Перевизначити це, щоб ми могли вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ð¼\n"
-" викориÑтаним іменуваннÑм.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
+msgstr "Отримати Ñертифікати іменуваннÑ."
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-"\n"
-" ÐŸÐ¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ñертифіката Ñ” не дуже цікавим. ЗаміÑÑ‚ÑŒ нього буде повернуто\n"
-" Ñтан іменуваннÑ.\n"
-" "
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-"\n"
-" Отримати Ñертифікати іменуваннÑ\n"
-" "
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr "Початок"
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr "Кінець"
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr "Серійний номер"
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr "Ðе Ñ” Ñертифікатом іменуваннÑ"
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
-msgstr ""
-"\n"
-" Шукати облікові запиÑи іменуваннÑ.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
+msgstr "Шукати облікові запиÑи іменуваннÑ."
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
-msgstr ""
-"\n"
-" ЗареєÑтрувати ÑиÑтему іменуваннÑ\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
+msgstr "ЗареєÑтрувати ÑиÑтему іменуваннÑ."
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr "ЗареєÑтровано Ñервер іменуваннÑ."
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr "КориÑтувач"
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr "UUID реєÑтрації"
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
-msgstr "Пароль"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
+msgstr "UUID реєÑтрації (не реалізовано)"
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr "Пароль реєÑтрації"
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
-msgstr ""
-"\n"
-" Імпортувати Ñертифікат іменуваннÑ.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
+msgstr "Імпортувати Ñертифікат іменуваннÑ."
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
-msgstr ""
-"\n"
-" Якщо ми додаємо перший запиÑ, Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ буде, отже EmptyModlist\n"
-" буде відкинуто. Ігноруємо.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
+msgstr "UUID реєÑтрації"
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
-msgstr ""
-"\n"
-" Виконати повторну Ñинхронізацію локального кешу Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· Ñервером іменуваннÑ\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
+msgstr "Виконати повторну Ñинхронізацію локального кешу Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· Ñервером іменуваннÑ."
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr "Ð†Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñинхронізовано."
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -3367,230 +3030,126 @@ msgid ""
"\n"
" Display information about a named group.\n"
" ipa group-show localadmins\n"
-msgstr ""
-"\n"
-"Групи кориÑтувачів\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ кориÑтувачів. Типово нові групи Ñ” групами POSIX. Ви можете\n"
-"додати параметр --nonposix до команди group-add з метою Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ—\n"
-"групи Ñк групи не-POSIX. Ви можете ÑкориÑтатиÑÑ Ñ‚Ð¸Ð¼ аргументом команди group-mod\n"
-"Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ не-POSIX на групу POSIX. Групи POSIX не можна\n"
-"перетворювати на групи не-POSIX.\n"
-"\n"
-"Кожна група повинна мати опиÑ.\n"
-"\n"
-"Групи POSIX повинні мати номер ідентифікатора групи (GID). Передбачено підтримку\n"
-"зміни GID, але Ñ†Ñ Ð·Ð¼Ñ–Ð½Ð° може вплинути на права доÑтупу до ваших файлів. ДлÑ\n"
-"ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ Ñлід вказати GID. IPA Ñтворить одну групу автоматично, Ñкщо\n"
-"таку не вказано.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи:\n"
-" ipa group-add --desc='local administrators' localadmins\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи не-POSIX:\n"
-" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
-"\n"
-" Перетворити групу не-POSIX на групу posix:\n"
-" ipa group-mod --posix remoteadmins\n"
-"\n"
-" Додати нову групу POSIX з вказаним ідентифікатором групи:\n"
-" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
-"\n"
-" Додати нову групу POSIX і надати IPA змогу призначити ідентифікатор:\n"
-" ipa group-add --desc='printer admins' printeradmins\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸:\n"
-" ipa group-del unixadmins\n"
-"\n"
-" Додати групу \"remoteadmins\" до групи \"localadmins\":\n"
-" ipa group-add-member --groups=remoteadmins localadmins\n"
-"\n"
-" Додати ÑпиÑок кориÑтувачів до групи \"localadmins\":\n"
-" ipa group-add-member --users=test1,test2 localadmins\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача з групи \"localadmins\":\n"
-" ipa group-remove-member --users=test2 localadmins\n"
-"\n"
-" Показати інформацію щодо іменованої групи.\n"
-" ipa group-show localadmins\n"
+msgstr "\nГрупи кориÑтувачів\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ кориÑтувачів. Типово нові групи Ñ” групами POSIX. Ви можете\nдодати параметр --nonposix до команди group-add з метою Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ—\nгрупи Ñк групи не-POSIX. Ви можете ÑкориÑтатиÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð¼ --posix команди group-mod\nÐ´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ не-POSIX на групу POSIX. Групи POSIX не можна\nперетворювати на групи не-POSIX.\n\nКожна група повинна мати опиÑ.\n\nГрупи POSIX повинні мати номер ідентифікатора групи (GID). Передбачено підтримку\nзміни GID, але Ñ†Ñ Ð·Ð¼Ñ–Ð½Ð° може вплинути на права доÑтупу до ваших файлів. ДлÑ\nÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ Ñлід вказати GID. IPA Ñтворить одну групу автоматично, Ñкщо\nтаку не вказано.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи:\n ipa group-add --desc='local administrators' localadmins\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи не-POSIX:\n ipa group-add --nonposix --desc='remote administrators' remoteadmins\n\n Перетворити групу не-POSIX на групу posix:\n ipa group-mod --posix remoteadmins\n\n Додати нову групу POSIX з вказаним ідентифікатором групи:\n ipa group-add --gid=500 --desc='unix admins' unixadmins\n\n Додати нову групу POSIX Ñ– надати IPA змогу призначити ідентифікатор:\n ipa group-add --desc='printer admins' printeradmins\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸:\n ipa group-del unixadmins\n\n Додати групу \"remoteadmins\" до групи \"localadmins\":\n ipa group-add-member --groups=remoteadmins localadmins\n\n Додати ÑпиÑок кориÑтувачів до групи \"localadmins\":\n ipa group-add-member --users=test1,test2 localadmins\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача з групи \"localadmins\":\n ipa group-remove-member --users=test2 localadmins\n\n Показати інформацію щодо іменованої групи.\n ipa group-show localadmins\n"
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт групи.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr "група"
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr "групи"
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "Групи кориÑтувачів"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr "Група кориÑтувачів"
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "Ðазва групи"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "ÐžÐ¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¸"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr "GID (за допомогою цього параметра можна вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ)"
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
-msgstr ""
-"\n"
-" Створити групу.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
+msgstr "Створити нову групу."
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "Додано групу «%(value)s»"
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr "Створити Ñк групу, що не відповідає POSIX"
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
+msgstr "Вилучити групу."
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "Вилучено групу «%(value)s»"
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
+msgstr "Змінити групу."
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "Змінено групу «%(value)s»"
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr "змінити на групу POSIX"
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
-msgstr ""
-"\n"
-" Шукати групи.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
+msgstr "Шукати групи."
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп"
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr "шукати закриті групи"
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо іменованої групи.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
+msgstr "Показати дані щодо іменованої групи."
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до групи.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
+msgstr "Додати учаÑників до групи."
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з групи.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
+msgstr "Вилучити учаÑників з групи."
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
-msgstr ""
-"\n"
-" Від’єднати керовану групу від кориÑтувача\n"
-" "
+msgid "Detach a managed group from a user."
+msgstr "Від’єднати керовану групу від кориÑтувача."
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Від’єднати групу «%(value)s» від кориÑтувача «%(value)s»"
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-"\n"
-" Ð¦Ñ Ð´Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… кориÑтувача Ñ– групи. Спочатку\n"
-" нам Ñлід перевірити, чи можна оновити дані кориÑтувача Ñ– групи,\n"
-" а потім перейти до Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Випадок, коли можливе\n"
-" Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… лише кориÑтувача або лише групи з наÑтупним\n"
-" помилковим Ñтаном ÑиÑтеми, Ñлід виключити.\n"
-" "
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr "заборонено змінювати запиÑи кориÑтувачів"
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr "заборонено змінювати запиÑи груп"
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr "Ðе Ñ” керованою групою"
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -3612,7 +3171,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -3620,7 +3179,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -3629,7 +3188,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -3638,372 +3197,214 @@ msgid ""
"\n"
" Remove a named HBAC rule:\n"
" ipa hbacrule-del allow_server\n"
-msgstr ""
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів\n"
-"\n"
-"Керуйте тим, хто з Ñких вузлів Ñ– звідки зможе отримувати доÑтуп\n"
-"до певних Ñлужб. Ви можете ÑкориÑтатиÑÑ HBAC Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ\n"
-"кориÑтувачів Ñ– груп на вузлі Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ зможе отримувати\n"
-"доÑтуп до певної Ñлужби або групи Ñлужб на вузлі призначеннÑ.\n"
-"\n"
-"Ви також можете визначити категорію кориÑтувачів, вузли призначеннÑ\n"
-"та вÑÑ– вузли походженнÑ. У поточній верÑÑ–Ñ— можливі варіанти\n"
-"обмежено варіантом \"all\", але перелік варіантів може бути\n"
-"розширено у майбутніх верÑÑ–ÑÑ….\n"
-"\n"
-"Вузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° вузли Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñƒ правилах HBAC мають бути\n"
-"вузлами, керованими IPA.\n"
-"\n"
-"ДоÑтупними Ñлужбами Ñ– групами Ñлужб Ñ” Ñлужби, керовані hbacsvc\n"
-"та додатками hbacsvcgroup, відповідно.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° \"test1\", Ñке надає вÑім кориÑтувачам доÑтуп\n"
-" до вузла \"server\" звідуÑюди:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
-" ipa hbacrule-add-host --hosts=server.example.com test1\n"
-"\n"
-" Показ влаÑтивоÑтей вказаного правила HBAC:\n"
-" ipa hbacrule-show test1\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— Ñлужби. Це правило надаÑÑ‚ÑŒ кориÑтувачу john\n"
-" доÑтуп до Ñлужби sshd у будь-Ñкій ÑиÑтемі звідуÑіль:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
-" ipa hbacrule-add-user --users=john john_sshd\n"
-" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ñ— групи Ñлужб. КориÑтувачу john\n"
-" надаєтьÑÑ Ð´Ð¾Ñтуп до Ñлужби FTP у будь-Ñкій ÑиÑтемі звідуÑіль:\n"
-" ipa hbacsvcgroup-add ftpers\n"
-" ipa hbacsvc-add sftp\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
-" ipa hbacrule-add-user --users=john john_ftp\n"
-" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
-"\n"
-" Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ правила HBAC:\n"
-" ipa hbacrule-disable test1\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ правила HBAC:\n"
-" ipa hbacrule-del allow_server\n"
+msgstr "\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів\n\nКеруйте тим, хто з Ñких вузлів Ñ– звідки зможе отримувати доÑтуп\nдо певних Ñлужб. Ви можете ÑкориÑтатиÑÑ HBAC Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ\nкориÑтувачів Ñ– груп на вузлі Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ зможе отримувати\nдоÑтуп до певної Ñлужби або групи Ñлужб на вузлі призначеннÑ.\n\nВи також можете визначити категорію кориÑтувачів, вузли призначеннÑ\nта вÑÑ– вузли походженнÑ. У поточній верÑÑ–Ñ— можливі варіанти\nобмежено варіантом \"all\", але перелік варіантів може бути\nрозширено у майбутніх верÑÑ–ÑÑ….\n\nВузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° вузли Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñƒ правилах HBAC мають бути\nвузлами, керованими IPA.\n\nДоÑтупними Ñлужбами Ñ– групами Ñлужб Ñ” Ñлужби, керовані hbacsvc\nта додатками hbacsvcgroup, відповідно.\n\nПРИКЛÐДИ:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° \"test1\", Ñке надає вÑім кориÑтувачам доÑтуп\n до вузла \"server\" звідуÑюди:\n ipa hbacrule-add --usercat=all --srchostcat=all test1\n ipa hbacrule-add-host --hosts=server.example.com test1\n\n Показ влаÑтивоÑтей вказаного правила HBAC:\n ipa hbacrule-show test1\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— Ñлужби. Це правило надаÑÑ‚ÑŒ кориÑтувачу john\n доÑтуп до Ñлужби sshd у будь-Ñкій ÑиÑтемі звідуÑіль:\n ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n ipa hbacrule-add-user --users=john john_sshd\n ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ñ— групи Ñлужб. КориÑтувачу john\n надаєтьÑÑ Ð´Ð¾Ñтуп до Ñлужби FTP у будь-Ñкій ÑиÑтемі звідуÑіль:\n ipa hbacsvcgroup-add ftpers\n ipa hbacsvc-add sftp\n ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n ipa hbacrule-add-user --users=john john_ftp\n ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n\n Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ правила HBAC:\n ipa hbacrule-disable test1\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ правила HBAC:\n ipa hbacrule-del allow_server\n"
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
-msgstr ""
-"\n"
-" Визначити, чи options[атрибут] у нижньому регіÑтрі, вÑÑ– у безпечний ÑпоÑіб.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
+msgstr "Команди ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів"
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr "Тип «deny» вважаєтьÑÑ Ð·Ð°Ñтарілим."
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr "Правило HBAC"
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr "правила HBAC"
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr "Правила HBAC"
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr "Правило HBAC"
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "Ðазва правила"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "Тип правила (дозволити (allow) чи заборонити (deny))"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr "Тип правила (allow)"
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr "Тип правила"
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð²ÑƒÐ·Ð»Ñ–Ð²"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð²ÑƒÐ·Ð»Ñ–Ð², до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð²ÑƒÐ·Ð»Ñ–Ð² вихідних даних"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð²ÑƒÐ·Ð»Ñ–Ð² вихідних даних, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ñлужб"
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ñлужб, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr "Увімкнено"
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "КориÑтувачі"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr "Групи"
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr "Вузли"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr "Групи вузлів"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr "Вузли вихідних даних"
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr "Групи вихідних вузлів"
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr "Служби"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr "Групи Ñлужб"
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Створити правило HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
+msgstr "Створити правило HBAC."
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr "Додано правило HBAC «%(value)s»"
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити правило HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
+msgstr "Вилучити правило HBAC."
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr "Вилучено правило HBAC «%(value)s»"
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Змінити правило HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
+msgstr "Змінити правило HBAC."
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr "Змінено правило HBAC «%(value)s»"
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
-msgstr ""
-"\n"
-" Шукати правила HBAC.\n"
-" "
-
#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
+msgstr "Шукати правила HBAC."
+
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правила HBAC"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил HBAC"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил HBAC"
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Показати влаÑтивоÑÑ‚Ñ– правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
+msgstr "Показати влаÑтивоÑÑ‚Ñ– правила HBAC."
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Увімкнути правило HBAC.\n"
-" "
+msgid "Enable an HBAC rule."
+msgstr "Увімкнути правило HBAC."
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr "Увімкнено правило HBAC «%(value)s»"
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути правило HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
+msgstr "Вимкнути правило HBAC."
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr "Вимкнено правило HBAC «%(value)s»"
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати Ñ‡Ð°Ñ Ð´Ð¾Ñтупу до правила HBAC.\n"
-" "
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "Ð§Ð°Ñ Ð´Ð¾Ñтупу"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ñ‡Ð°Ñ Ð´Ð¾Ñтупу з правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
+msgstr "Додати кориÑтувачів та групи до правила HBAC."
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати кориÑтувачів та групи до правила HBAC.\n"
-" "
-
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити кориÑтувачів Ñ– групи з правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
+msgstr "Вилучити кориÑтувачів Ñ– групи з правила HBAC."
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
-msgstr ""
-"\n"
-" Додати вузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів до правила HBAC\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
+msgstr "Додати вузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів до правила HBAC."
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів з правила HBAC\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
+msgstr "Вилучити вузли Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів з правила HBAC."
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати початкові вузли та групи вузлів з правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
+msgstr "Додати початкові вузли та групи вузлів з правила HBAC."
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вузли Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів з правила HBAC\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
+msgstr "Вилучити вузли Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° групи вузлів з правила HBAC."
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати Ñлужби до правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
+msgstr "Додати Ñлужби до правила HBAC."
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ñлужби та групи Ñлужб з правила HBAC.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
+msgstr "Вилучити Ñлужби та групи Ñлужб з правила HBAC."
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -4026,108 +3427,69 @@ msgid ""
" Delete an HBAC service:\n"
" ipa hbacsvc-del tftp\n"
"\n"
-msgstr ""
-"\n"
-"Служби HBAC\n"
-"\n"
-"Служби PAM, Ñкими може керувати HBAC. Ðазва, викориÑтана тут, має\n"
-"відповідати назві Ñлужби, з Ñкою працює PAM.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Додати нову Ñлужбу HBAC:\n"
-" ipa hbacsvc-add tftp\n"
-"\n"
-" Змінити вже Ñтворену Ñлужбу HBAC:\n"
-" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
-"\n"
-" Шукати Ñлужби HBAC. У нашому прикладі буде повернуто два результати\n"
-" Ñлужбу FTP Ñ– щойно додану Ñлужбу tftp:\n"
-" ipa hbacsvc-find ftp\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñлужби HBAC:\n"
-" ipa hbacsvc-del tftp\n"
-"\n"
+msgstr "\nСлужби HBAC\n\nСлужби PAM, Ñкими може керувати HBAC. Ðазва, викориÑтана тут, має\nвідповідати назві Ñлужби, з Ñкою працює PAM.\n\nПРИКЛÐДИ:\n\n Додати нову Ñлужбу HBAC:\n ipa hbacsvc-add tftp\n\n Змінити вже Ñтворену Ñлужбу HBAC:\n ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n\n Шукати Ñлужби HBAC. У нашому прикладі буде повернуто два результати\n Ñлужбу FTP Ñ– щойно додану Ñлужбу tftp:\n ipa hbacsvc-find ftp\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñлужби HBAC:\n ipa hbacsvc-del tftp\n\n"
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт Ñлужби HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
+msgstr "Команди ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів"
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr "Служба HBAC"
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr "Служби HBAC"
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "Ðазва Ñлужби"
+msgid "HBAC Services"
+msgstr "Служби HBAC"
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr "Служба HBAC"
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "Ðазва Ñлужби"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr "ÐžÐ¿Ð¸Ñ Ñлужби HBAC"
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову Ñлужбу HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
+msgstr "Додати нову Ñлужбу HBAC."
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr "Додано Ñлужбу HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вже Ñтворену Ñлужбу HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
+msgstr "Вилучити вже Ñтворену Ñлужбу HBAC."
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr "Вилучено Ñлужбу HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
-msgstr ""
-"\n"
-" Змінити Ñлужбу HBAC.\n"
-" "
-
#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
+msgstr "Змінити Ñлужбу HBAC."
+
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr "Змінено Ñлужбу HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
-msgstr ""
-"\n"
-" Шукати Ñлужби HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
+msgstr "Шукати Ñлужби HBAC."
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d Ñлужби HBAC"
@@ -4135,16 +3497,10 @@ msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ÑлужÐ
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d Ñлужб HBAC"
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо Ñлужби HBAC.\n"
-" "
+msgid "Display information about an HBAC service."
+msgstr "Показати дані щодо Ñлужби HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -4169,143 +3525,247 @@ msgid ""
"\n"
" Delete an HBAC service group:\n"
" ipa hbacsvcgroup-del login\n"
-msgstr ""
-"\n"
-"Групи Ñлужб HBAC\n"
-"\n"
-"Групи Ñлужб HBAC можуть міÑтити будь-Ñку кількіÑÑ‚ÑŒ окремих Ñлужб\n"
-"або «учаÑників». Кожна з груп повинна мати опиÑ.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи Ñлужб HBAC:\n"
-" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до групи Ñлужб HBAC:\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
-"\n"
-" Показ даних щодо вказаної групи:\n"
-" ipa hbacsvcgroup-show login\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи до групи \"login\":\n"
-" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ Ñлужб HBAC:\n"
-" ipa hbacsvcgroup-del login\n"
+msgstr "\nГрупи Ñлужб HBAC\n\nГрупи Ñлужб HBAC можуть міÑтити будь-Ñку кількіÑÑ‚ÑŒ окремих Ñлужб\nабо «учаÑників». Кожна з груп повинна мати опиÑ.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи Ñлужб HBAC:\n ipa hbacsvcgroup-add --desc=\"login services\" login\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до групи Ñлужб HBAC:\n ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n\n Показ даних щодо вказаної групи:\n ipa hbacsvcgroup-show login\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи до групи \"login\":\n ipa hbacsvcgroup-add --desc=\"switch users\" login\n ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ Ñлужб HBAC:\n ipa hbacsvcgroup-del login\n"
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт групи Ñлужб HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr "група Ñлужб HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr "Група Ñлужб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
-msgstr "Групи Ñлужб HBAC"
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr "Група Ñлужб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr "Група Ñлужб HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr "Ðазва групи Ñлужб"
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr "ÐžÐ¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¸ Ñлужб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову групу Ñлужб HBAC\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
+msgstr "Додати нову групу Ñлужб HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr "Додано групу Ñлужб HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу Ñлужб HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
+msgstr "Вилучити групу Ñлужб HBAC."
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr "Вилучено групу Ñлужб HBAC «%(value)s»"
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу Ñлужб HBAC\n"
-" "
+msgid "Modify an HBAC service group."
+msgstr "Змінити групу Ñлужб HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr "Змінено групу Ñлужб HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
-msgstr ""
-"\n"
-" Шукати групу Ñлужб HBAC.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
+msgstr "Шукати групу Ñлужб HBAC."
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи Ñлужб HBAC"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп Ñлужб HBAC"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп Ñлужб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:122
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
+msgstr "Показати дані щодо групи Ñлужб HBAC."
+
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr "Додати учаÑників до групи Ñлужб HBAC."
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr "Вилучити учаÑників з групи Ñлужб HBAC."
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Display information about an HBAC service group.\n"
-" "
-msgstr ""
+"Simulate use of Host-based access controls\n"
"\n"
-" Показати дані щодо групи Ñлужб HBAC\n"
-" "
-
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
+"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"
"\n"
-" Add members to an HBAC service group.\n"
-" "
-msgstr ""
+"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"
-" Додати учаÑників до групи Ñлужб HBAC.\n"
-" "
-
-#: ipalib/plugins/hbacsvcgroup.py:138
-msgid ""
+" Test user coming from source host to a service on a named host against\n"
+" existing enabled rules.\n"
"\n"
-" Remove members from an HBAC service group.\n"
-" "
-msgstr ""
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
"\n"
-" Вилучити учаÑників з групи Ñлужб HBAC\n"
-" "
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr "\nÐ†Ð¼Ñ–Ñ‚Ð°Ñ†Ñ–Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів (HBAC)\n\nПравила HBAC керують тим, хто може отримувати доÑтуп до певних Ñлужб на\nпевних вузлах та звідки він може це робити.\nВи можете ÑкориÑтатиÑÑ HBAC Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¼, Ñкі кориÑтувачі або групи\nна початковому вузлі можуть отримувати доÑтуп до Ñлужби або групи Ñлужб\nна вузлі призначеннÑ.\n\nОÑкільки заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» HBAC передбачає викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‡Ð¾Ð³Ð¾\nÑередовища, це додаток призначено Ð´Ð»Ñ Ñ–Ð¼Ñ–Ñ‚Ð°Ñ†Ñ–Ñ— обробки правил HBAC без\nдоÑтупу до реального Ñередовища.\n\n Перевірити відповідніÑÑ‚ÑŒ кориÑтувача з початкового вузла до Ñлужби на іменованому\n вузлі правилам ÑƒÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупу.\n\n ipa hbactest --user= --srchost= --host= --service=\n [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n\n --user, --srchost, --host, and --service Ñ” обов’Ñзковими, інші можна не вказувати.\n\n Якщо вказано --rules, імітувати Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… правил Ñ– перевірити\n можливіÑÑ‚ÑŒ входу кориÑтувача у разі викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ цих правил.\n\n Якщо вказано --enabled, додати вÑÑ– увімкнені правила HBAC до імітації\n\n Якщо вказано --disabled, додати вÑÑ– вимкнені правила HBAC до імітації\n\n Якщо вказано --nodetail, не повертати даних щодо відповідних Ñ– невідповідних\n правил.\n\n Якщо вказано одночаÑно --rules Ñ– --enabled, виконати імітацію --rules _Ñ–_\n вÑÑ–Ñ… увімкнених правил IPA.\n\n Якщо не вказано --rules, буде виконано імітацію вÑÑ–Ñ… увімкнених правил IPA.\n\nПРИКЛÐДИ:\n\n 1. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… увімкнених правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n --------------------\n Ðадано доÑтуп: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n відповідне: allow_all\n\n 2. Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½Ð¾Ð³Ð¾ резюме заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --nodetail\n --------------------\n Ðадано доÑтуп: Так\n --------------------\n\n 3. Перевірити Ñвно вказані правила HBAC:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule\n ---------------------\n Ðадано доÑтуп: ÐÑ–\n ---------------------\n невідповідне: my-second-rule\n невідповідне: myrule\n\n 4. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… увімкнених правил HBAC у базі даних IPA + Ñвно вказаних правил:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --enabled\n --------------------\n ДоÑтуп надано: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n відповідне: allow_all\n\n 5. Перевірка вÑÑ–Ñ… вимкнених правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --disabled\n ---------------------\n Ðадано доÑтуп: ÐÑ–\n ---------------------\n невідповідне: new-rule\n\n 6. Перевірка вÑÑ–Ñ… вимкнених правил HBAC у базі даних IPA + Ñвно вказані правила:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --rules=my-second-rule,myrule --disabled\n ---------------------\n Ðадано доÑтуп: ÐÑ–\n ---------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n\n 7. Перевірка вÑÑ–Ñ… (увімкнених Ñ– вимкнених) правил HBAC у базі даних IPA:\n $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --enabled --disabled\n --------------------\n Ðадано доÑтуп: Так\n --------------------\n невідповідне: my-second-rule\n невідповідне: my-third-rule\n невідповідне: myrule\n невідповідне: new-rule\n відповідне: allow_all\n\n"
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr "Імітувати викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів"
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr "Відповідні правила"
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr "Ðевідповідні правила"
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr "Ðекоректні правила або правила, Ñких не Ñ–Ñнує"
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr "Результат імітації"
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr "Вузол джерела"
+
+#: ipalib/plugins/hbactest.py:183
+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
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr "Правила Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸. Якщо не вказано, вважаєтьÑÑ, що викориÑтано --enabled."
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr "Приховати дані щодо того, Ñкі правила Ñ” відповідними, Ñкі не Ñ” відповідними Ñ– Ñкі Ñ” некоректними"
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr "Перевірити вÑÑ– увімкнені правила IPA [типова поведінка]"
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr "Перевірити вÑÑ– вимкнені правила IPA"
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr "Ðепридатні до обробки правила у --rules"
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr "Ðадано доÑтуп: %s"
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -4359,309 +3819,205 @@ msgid ""
"\n"
" Add a host that can manage this host's keytab and certificate:\n"
" ipa host-add-managedby --hosts=test2 test\n"
-msgstr ""
-"\n"
-"Вузли/Комп’ютери\n"
-"\n"
-"Одному вузлу відповідає один комп’ютер. Вузол може бути викориÑтано\n"
-"у декількох контекÑтах:\n"
-"- запиÑи Ñлужб, пов’Ñзані з вузлом;\n"
-"- на вузлі зберігаєтьÑÑ Ñ€ÐµÑ”Ñтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби вузла\n"
-"- вузол може бути викориÑтано у правилах Host-based Access Control (HBAC);\n"
-"- Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ зареєÑтрованого клієнта ÑтворюєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð°.\n"
-"\n"
-"РЕЄСТРÐЦІЯ:\n"
-"\n"
-"Передбачено три Ñценарії реєÑтрації нового клієнта:\n"
-"\n"
-"1. РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ†Ñ–Ð½Ð½Ð¾Ð³Ð¾ адмініÑтратора. Відповідний Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° може Ñ–Ñнувати\n"
-" або не Ñ–Ñнувати. Повноцінний адмініÑтратор Ñ” учаÑником ролі hostadmin або\n"
-" групи admins.\n"
-"2. РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾Ð³Ð¾ адмініÑтратора. Відповідний Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° вже має Ñ–Ñнувати\n"
-" Обмежений адмініÑтратор Ñ” учаÑником розі з правами реєÑтрації вузлів.\n"
-"3. Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу вузла з одноразовим паролем.\n"
-"\n"
-"РеєÑтрувати вузол можна лише один раз. Якщо клієнт було зареєÑтровано Ñ– виникла\n"
-"потреба у перереєÑтрації, Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° Ñлід вилучити Ñ– Ñтворити повторно.\n"
-"Зауважте, що повторне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу вузла призведе до вилученнÑ\n"
-"вÑÑ–Ñ… Ñлужб вузла та Ð²Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÑÑ–Ñ… Ñертифікатів SSL, пов’Ñзаних з цими\n"
-"Ñлужбами.\n"
-"\n"
-"У запиÑÑ– вузла додатково можуть зберігатиÑÑ Ð´Ð°Ð½Ñ– щодо його розташуваннÑ,\n"
-"вÑтановленої на ньому операційної ÑиÑтеми тощо.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла:\n"
-" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°:\n"
-" ipa host-del test.example.com\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла з одноразовим паролем:\n"
-" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла з випадковим одноразовим паролем:\n"
-" ipa host-add --os='Fedora 12' --random test.example.com\n"
-"\n"
-" Зміна даних щодо вузла:\n"
-" ipa host-mod --os='Fedora 12' test.example.com\n"
-"\n"
-" Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Kerberos вузла, Ñертифіката SSL та вÑÑ–Ñ… його Ñлужб:\n"
-" ipa host-disable test.example.com\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°, Ñкий може керувати таблицею ключів Ñ– Ñертифікатів\n"
-" цього вузла:\n"
-" ipa host-add-managedby --hosts=test2 test\n"
-
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-"\n"
-" Вимагати принаймні одну крапку у назві вузла (підтримка назв у форматі вузол.домен)\n"
-" "
+msgstr "\nВузли/Комп’ютери\n\nОдному вузлу відповідає один комп’ютер. Вузол може бути викориÑтано\nу декількох контекÑтах:\n- запиÑи Ñлужб, пов’Ñзані з вузлом;\n- на вузлі зберігаєтьÑÑ Ñ€ÐµÑ”Ñтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби вузла\n- вузол може бути викориÑтано у правилах Host-based Access Control (HBAC);\n- Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ зареєÑтрованого клієнта ÑтворюєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð°.\n\nРЕЄСТРÐЦІЯ:\n\nПередбачено три Ñценарії реєÑтрації нового клієнта:\n\n1. РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ†Ñ–Ð½Ð½Ð¾Ð³Ð¾ адмініÑтратора. Відповідний Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° може Ñ–Ñнувати\n або не Ñ–Ñнувати. Повноцінний адмініÑтратор Ñ” учаÑником ролі hostadmin або\n групи admins.\n2. РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾Ð³Ð¾ адмініÑтратора. Відповідний Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° вже має Ñ–Ñнувати\n Обмежений адмініÑтратор Ñ” учаÑником розі з правами реєÑтрації вузлів.\n3. Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу вузла з одноразовим паролем.\n\nРеєÑтрувати вузол можна лише один раз. Якщо клієнт було зареєÑтровано Ñ– виникла\nпотреба у перереєÑтрації, Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° Ñлід вилучити Ñ– Ñтворити повторно.\nЗауважте, що повторне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу вузла призведе до вилученнÑ\nвÑÑ–Ñ… Ñлужб вузла та Ð²Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÑÑ–Ñ… Ñертифікатів SSL, пов’Ñзаних з цими\nÑлужбами.\n\nУ запиÑÑ– вузла додатково можуть зберігатиÑÑ Ð´Ð°Ð½Ñ– щодо його розташуваннÑ,\nвÑтановленої на ньому операційної ÑиÑтеми тощо.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла:\n ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example.com\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°:\n ipa host-del test.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла з одноразовим паролем:\n ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вузла з випадковим одноразовим паролем:\n ipa host-add --os='Fedora 12' --random test.example.com\n\n Зміна даних щодо вузла:\n ipa host-mod --os='Fedora 12' test.example.com\n\n Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Kerberos вузла, Ñертифіката SSL та вÑÑ–Ñ… його Ñлужб:\n ipa host-disable test.example.com\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°, Ñкий може керувати таблицею ключів Ñ– Ñертифікатів\n цього вузла:\n ipa host-add-managedby --hosts=test2 test\n"
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Слід вказати назву вузла повніÑÑ‚ÑŽ"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr "Зворотної зони DNS Ð´Ð»Ñ IP-адреÑи %(addr)s не знайдено"
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð²"
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
-msgstr ""
-"\n"
-" Перевірити, з Ñкою адреÑою маємо Ñправу, IPv4 чи IPv6.\n"
-" "
-
-#: ipalib/plugins/host.py:189
+#: ipalib/plugins/host.py:207
msgid "invalid IP address"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ IP-адреÑи"
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт вузла.\n"
-" "
+#: ipalib/plugins/host.py:216
+msgid "host"
+msgstr "вузол"
+
+#: ipalib/plugins/host.py:217
+msgid "hosts"
+msgstr "вузли"
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr "Вузол"
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr "Ðазва вузла"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr "ÐžÐ¿Ð¸Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вузла"
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr "ÐдреÑа"
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "ÐдреÑа Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° (наприклад, «Київ, Україна»)"
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° (наприклад, «Lab 2»)"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "Платформа"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Ðпаратна платформа вузла (наприклад, «Lenovo T61»)"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "Операційна ÑиÑтема"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "Операційна ÑиÑтема вузла Ñ– Ñ—Ñ— верÑÑ–Ñ (наприклад, «Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "Пароль кориÑтувача"
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr "Пароль Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтраційними запиÑами"
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
-msgstr ""
-"Створити випадковий пароль, Ñкий буде викориÑтано Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ñ— реєÑтрації"
+msgstr "Створити випадковий пароль, Ñкий буде викориÑтано Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ñ— реєÑтрації"
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr "Випадковий пароль"
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr "Сертифікат Ñервера у кодуванні Base-64"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr "Ðазва реєÑтраційного запиÑу"
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
-msgstr ""
-"\n"
-" Додати новий Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð°.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
+msgstr "Додати новий Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð°."
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "Додано вузол «%(value)s»"
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr "примуÑове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ вузла, навіть Ñкщо назви немає у DNS"
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr "пропуÑтити зворотне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ DNS"
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr "Додати Ð·Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° до DNS з цією IP-адреÑою"
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr "IP-адреÑа"
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr "Зони DNS %(zone)s не знайдено"
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
-msgstr ""
-"Ð—Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° було додано, але Ñпроба Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ DNS зазнала невдачі: %(exc)s"
+msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð²ÑƒÐ·Ð»Ð° було додано, але Ñпроба Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ DNS зазнала невдачі: %(exc)s"
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вузол.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
+msgstr "Вилучити вузол."
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "Вилучено вузол «%(value)s»"
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr "Вилучити запиÑи з DNS"
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
-msgstr ""
-"\n"
-" Змінити дані щодо вузла.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
+msgstr "Змінити дані щодо вузла."
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "Змінено вузол «%(value)s»"
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr "Ðазва реєÑтраційного запиÑу Kerberos Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вузла"
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
-msgstr ""
-"\n"
-" Шукати вузли.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
+msgstr "Ðе можна визначати пароль Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° з визначеною роллю."
+
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr "Шукати вузли."
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d вузла"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d вузлів"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d вузлів"
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо вузла.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
+msgstr "Показати дані щодо вузла."
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr "файл, у Ñкому зберігатимутьÑÑ Ð´Ð°Ð½Ñ– Ñертифіката"
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr "Сертифікат збережено у файлі «%(file)s»"
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути ключ Kerberos, Ñертифікат SSL Ñ– вÑÑ– Ñлужби на вузлі.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
+msgstr "Вимкнути ключ Kerberos, Ñертифікат SSL Ñ– вÑÑ– Ñлужби на вузлі."
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr "Вимкнено вузол «%(value)s»"
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
-msgstr ""
-"\n"
-" Додати запиÑи вузлів, Ñкі можуть керувати цим вузлом.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
+msgstr "Додати запиÑи вузлів, Ñкі можуть керувати цим вузлом."
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити запиÑи вузлів, Ñкі можуть керувати цим вузлом.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
+msgstr "Вилучити запиÑи вузлів, Ñкі можуть керувати цим вузлом."
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -4691,1149 +4047,1158 @@ msgid ""
"\n"
" Delete a hostgroup:\n"
" ipa hostgroup-del baltimore\n"
-msgstr ""
-"\n"
-"Групи вузлів.\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ вузлів. КориÑні Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ\n"
-"до декількох вузлів на оÑнові заÑнованого на вузлах керуваннÑ\n"
-"доÑтупом (Host-based Access Control або HBAC).\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи вузлів:\n"
-" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи вузлів:\n"
-" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до групи вузлів:\n"
-" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ вузлів Ñк учаÑника іншої групи вузлів:\n"
-" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° з групи вузлів:\n"
-" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
-"\n"
-" Показ ÑпиÑку групи вузлів:\n"
-" ipa hostgroup-show baltimore\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ вузлів:\n"
-" ipa hostgroup-del baltimore\n"
+msgstr "\nГрупи вузлів.\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ вузлів. КориÑні Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ\nдо декількох вузлів на оÑнові заÑнованого на вузлах керуваннÑ\nдоÑтупом (Host-based Access Control або HBAC).\n\nПРИКЛÐДИ:\n\n Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи вузлів:\n ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи вузлів:\n ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до групи вузлів:\n ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ вузлів Ñк учаÑника іншої групи вузлів:\n ipa hostgroup-add-member --hostgroups=baltimore maryland\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° з групи вузлів:\n ipa hostgroup-remove-member --hosts=box2 baltimore\n\n Показ ÑпиÑку групи вузлів:\n ipa hostgroup-show baltimore\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ вузлів:\n ipa hostgroup-del baltimore\n"
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт групи вузлів.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr "група вузлів"
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
+msgstr "групи вузлів"
+
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr "Група вузлів"
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr "Група вузлів"
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr "Ðазва групи вузлів"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr "ÐžÐ¿Ð¸Ñ Ñ†Ñ–Ñ”Ñ— групи вузлів"
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову групу вузлів.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
+msgstr "Додати нову групу вузлів."
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr "Додано групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу вузлів.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr "Мережеву групу з назвою «%s» вже Ñтворено. Групи вузлів Ñ– мережеві групи мають Ñпільний проÑÑ‚Ñ–Ñ€ назв."
+
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr "Вилучити групу вузлів."
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Вилучено групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу вузлів.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
+msgstr "Змінити групу вузлів."
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr "Змінено групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
-msgstr ""
-"\n"
-" Шукати групи вузлів.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
+msgstr "Шукати групи вузлів."
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи вузлів"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп вузлів"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп вузлів"
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо групи вузлів.\n"
-" "
-
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Додати запиÑи до групи вузлів.\n"
-" "
-
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити запиÑи з групи вузлів.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
+msgstr "Показати дані щодо групи вузлів."
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-"\n"
-"БезпоÑередній доÑтуп до додатків через командний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾, внутрішнє викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´\n"
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
+msgstr "Додати запиÑи до групи вузлів."
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-"\n"
-" ЕкÑпортувати метадані додатка до вебінтерфейÑу.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
+msgstr "Вилучити запиÑи з групи вузлів."
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr "Ðазва об’єкта, Ñкий Ñлід екÑпортувати"
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr "Ðазва методу, Ñкий буде екÑпортовано"
-#: ipalib/plugins/internal.py:52
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
+msgstr "Ðазва команди Ð´Ð»Ñ ÐµÐºÑпортуваннÑ"
+
+#: ipalib/plugins/internal.py:64
msgid "Dict of JSON encoded IPA Objects"
msgstr "Словник закодованих JSON об’єктів IPA"
-#: ipalib/plugins/internal.py:53
+#: ipalib/plugins/internal.py:65
msgid "Dict of JSON encoded IPA Methods"
msgstr "Словник JSON-закодованих методів IPA"
-#: ipalib/plugins/internal.py:96
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
+msgstr "Словник закодованих JSON команд IPA"
+
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
+msgstr "Ваш квиток Kerberos втратив чинніÑÑ‚ÑŒ. Будь лаÑка, запуÑÑ‚Ñ–Ñ‚ÑŒ kinit and then click 'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/config/unauthorized.html'>follow these directions</a> to configure your browser."
+
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
+msgstr "Квиток Kerberos вже не є коректним."
+
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
+msgstr "Додати ${other_entity} запуÑк від імені до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
+msgstr "Додати групи запуÑку від імені до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
+msgstr "Додати ${other_entity}, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr "Додати ${other_entity} до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
+msgstr "Додано дозвіл ${other_entity} до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
+msgstr "Додано заборону ${other_entity} до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
+msgstr "Додати ${entity} ${primary_key} до ${other_entity}"
+
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
+msgstr "Додати ${other_entity} джерела до ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
+msgstr "БезпоÑÐµÑ€ÐµÐ´Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŒ"
+
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
+msgstr "ОпоÑередкована учаÑÑ‚ÑŒ"
+
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
+msgstr "Ðемає запиÑів."
+
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
+msgstr "Показано запиÑи від ${start} до ${end} з ${total} запиÑів."
+
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
+msgstr "Вилучити ${other_entity} запуÑку від імені з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
+msgstr "Вилучити групи запуÑку від імені з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
+msgstr "Вилучити ${other_entity}, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr "Вилучити ${other_entity} з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
+msgstr "Вилучити дозвіл ${other_entity} з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
+msgstr "Вилучити заборону ${other_entity} з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
+msgstr "Вилучити ${entity} ${primary_key} з ${other_entity}"
+
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
+msgstr "Вилучити ${other_entity} джерела з ${entity} ${primary_key}"
+
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
+msgstr "Показати результати"
+
+#: ipalib/plugins/internal.py:179
+msgid "Add"
+msgstr "Додати"
+
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
+msgstr "Додати і додати ще"
+
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
+msgstr "Додати і закрити"
+
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
+msgstr "Додати і змінити"
+
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
+msgstr "Додати багато"
+
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
+msgstr "СкаÑувати"
+
+#: ipalib/plugins/internal.py:185
+msgid "Close"
+msgstr "Закрити"
+
+#: ipalib/plugins/internal.py:186
+msgid "Find"
+msgstr "Знайти"
+
+#: ipalib/plugins/internal.py:187
+msgid "Get"
+msgstr "Отримати"
+
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
+msgstr "Створити"
+
+#: ipalib/plugins/internal.py:189
+msgid "OK"
+msgstr "Гаразд"
+
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
+msgstr "Вилучити"
+
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
+msgstr "Скинути"
+
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
+msgstr "Відновити"
+
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
+msgstr "Повторити"
+
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
+msgstr "Відкликати"
+
+#: ipalib/plugins/internal.py:195
+msgid "Update"
+msgstr "Оновити"
+
+#: ipalib/plugins/internal.py:196
+msgid "View"
+msgstr "ПереглÑд"
+
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
+msgstr "Згорнути вÑÑ–"
+
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
+msgstr "Розгорнути вÑÑ–"
+
+#: ipalib/plugins/internal.py:201
+msgid "General"
+msgstr "Загальне"
+
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
+msgstr "Параметри профілю"
+
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
+msgstr "Параметри ${primary_key} ${entity}"
+
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
+msgstr "ПовернутиÑÑ Ð´Ð¾ початку"
+
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
+msgstr "${entity} уÑпішно додано"
+
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
+msgstr "Додати ${entity}"
+
+#: ipalib/plugins/internal.py:209
+msgid "Available"
+msgstr "ДоÑтупний"
+
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
+msgstr "ДеÑкі з дій не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸."
+
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
+msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸"
+
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
+msgstr "ПідтвердженнÑ"
+
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
+msgstr "Ðа цій Ñторінці виÑвлено незбережені зміни. Будь лаÑка, збережіть зміни або ÑкаÑуйте Ñ—Ñ…."
+
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
+msgstr "Ðезбережені зміни"
+
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
+msgstr "Сховати подробиці"
+
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
+msgstr "Очікуваний"
+
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
+msgstr "ПереÑпрÑмуваннÑ"
+
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
+msgstr "Виберіть запиÑи, Ñкі Ñлід вилучити."
+
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
+msgstr "Вилучити ${entity}"
+
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
+msgstr "Показати подробиці"
+
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
+msgstr "Помилка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸"
+
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
+msgstr "У форму Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не введено деÑкі з даних або у формі міÑÑ‚ÑÑ‚ÑŒÑÑ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ñ– запиÑи."
+
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
+msgstr "Помилка HTTP"
+
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
+msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
+msgstr "Помилка IPA"
+
+#: ipalib/plugins/internal.py:229
+msgid "No response"
+msgstr "Ðемає відповіді"
+
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
+msgstr "Ðевідома помилка"
+
+#: ipalib/plugins/internal.py:231
+msgid "URL"
+msgstr "ÐдреÑа"
+
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
+msgstr "${primary_key} керуєтьÑÑ:"
+
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
+msgstr "УчаÑники ${primary_key}:"
+
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
+msgstr "${primary_key} міÑтитьÑÑ Ñƒ:"
+
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
+msgstr "Параметри"
+
+#: ipalib/plugins/internal.py:240
+msgid "Search"
+msgstr "Пошук"
+
+#: ipalib/plugins/internal.py:242
+msgid "False"
+msgstr "ÐÑ–"
+
+#: ipalib/plugins/internal.py:244
msgid "Logged In As"
msgstr "Вхід до ÑиÑтеми від імені"
-#: ipalib/plugins/internal.py:99
+#: ipalib/plugins/internal.py:248
msgid "Attribute"
msgstr "Ðтрибут"
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr "Додати Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
-
-#: ipalib/plugins/internal.py:103
+#: ipalib/plugins/internal.py:253
msgid "Automount Location Settings"
msgstr "Параметри запиÑу автомонтуваннÑ"
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
-msgstr "Додати карту автомонтуваннÑ"
-
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
-msgstr "Додати ключ автомонтуваннÑ"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
+msgstr "Тип карти"
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
-msgstr "Ðе вказано"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
+msgstr "БезпоÑередній"
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
-msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ ÐºÐ»ÑŽÑ‡Ð°"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
+msgstr "ОпоÑередкований"
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
-msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ CA"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
+msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ AA"
-#: ipalib/plugins/internal.py:115
+#: ipalib/plugins/internal.py:262
msgid "Affiliation Changed"
msgstr "Змінено міÑце роботи"
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
-msgstr "Замінено"
-
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
-msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ—"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
+msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ CA"
-#: ipalib/plugins/internal.py:118
+#: ipalib/plugins/internal.py:264
msgid "Certificate Hold"
msgstr "ВлаÑник Ñертифіката"
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
-msgstr "Вилучити з CRL"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
+msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ—"
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
-msgstr "Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
+msgstr "Звичайне ім'Ñ"
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
-msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ AA"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
+msgstr "Введіть Base64-закодований запит щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката нижче"
-#: ipalib/plugins/internal.py:122
-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:268
+msgid "Expires On"
+msgstr "Строк дії"
-#: ipalib/plugins/internal.py:124
-msgid "Note"
-msgstr "Ðотатка"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
+msgstr "Відбитки"
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
-msgstr "Причина відкликаннÑ"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr "Створити Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
-msgstr ""
-"Щоб підтвердити ваш намір відновити цей Ñертифікат, натиÑніть кнопку "
-"«Відновити»."
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
+msgstr "Видавець"
+
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
+msgstr "Видано"
-#: ipalib/plugins/internal.py:128
+#: ipalib/plugins/internal.py:273
msgid "Issued To"
msgstr "Видано длÑ"
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
-msgstr "Звичайне ім'Ñ"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
+msgstr "ÐšÐ¾Ð¼Ð¿Ñ€Ð¾Ð¼ÐµÑ‚Ð°Ñ†Ñ–Ñ ÐºÐ»ÑŽÑ‡Ð°"
+
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
+msgstr "Відбиток MD5"
-#: ipalib/plugins/internal.py:130
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
+msgstr "Ðемає чинних Ñертифікатів"
+
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
+msgstr "Ðовий Ñертифікат"
+
+#: ipalib/plugins/internal.py:278
+msgid "Note"
+msgstr "Ðотатка"
+
+#: ipalib/plugins/internal.py:279
msgid "Organization"
msgstr "УÑтанова"
-#: ipalib/plugins/internal.py:131
+#: ipalib/plugins/internal.py:280
msgid "Organizational Unit"
msgstr "Підрозділ уÑтанови"
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
-msgstr "Видавець"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
+msgstr "Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾"
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
-msgstr "КоректніÑÑ‚ÑŒ"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
+msgstr "Причина відкликаннÑ"
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
-msgstr "Видано"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
+msgstr "Вилучити з CRL"
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
-msgstr "Строк дії"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr "Відновити Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
-msgstr "Відбитки"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
+msgstr "Щоб підтвердити ваш намір відновити цей Ñертифікат, натиÑніть кнопку «Відновити»."
-#: ipalib/plugins/internal.py:138
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr "Відкликати Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
+
+#: ipalib/plugins/internal.py:287
+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
+msgid "Certificate Revoked"
+msgstr "Сертифікат відкликано"
+
+#: ipalib/plugins/internal.py:290
msgid "SHA1 Fingerprint"
msgstr "Відбиток SHA1"
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
-msgstr "Відбиток MD5"
+#: ipalib/plugins/internal.py:291
+msgid "Superseded"
+msgstr "Замінено"
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
-msgstr "Введіть Base64-закодований запит щодо підпиÑÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката нижче"
+#: ipalib/plugins/internal.py:292
+msgid "Unspecified"
+msgstr "Ðе вказано"
-#: ipalib/plugins/internal.py:141
+#: ipalib/plugins/internal.py:293
msgid "Valid Certificate Present"
msgstr "Є чинний Ñертифікат"
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
-msgstr "Ðовий Ñертифікат"
-
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
-msgstr "Сертифікат відкликано"
-
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
-msgstr "Ðемає чинних Ñертифікатів"
+#: ipalib/plugins/internal.py:294
+msgid "Validity"
+msgstr "КоректніÑÑ‚ÑŒ"
-#: ipalib/plugins/internal.py:145
+#: ipalib/plugins/internal.py:295
msgid "Certificate for ${entity} ${primary_key}"
msgstr "Сертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
-msgstr "Створити Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
+msgstr "Параметри групи"
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
-msgstr "Відкликати Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
+msgstr "Параметри пошуку"
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
-msgstr "Відновити Ñертифікат Ð´Ð»Ñ ${primary_key} ${entity}"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
+msgstr "Параметри кориÑтувача"
-#: ipalib/plugins/internal.py:152
-msgid "Name"
-msgstr "Ðазва"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "Дані"
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
-msgstr "Додати уповноваженнÑ"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
+msgstr "Ð—Ð°Ð¿Ð¸Ñ DNS було вилучено, оÑкільки у ньому не міÑтилоÑÑ Ð¶Ð¾Ð´Ð½Ð¸Ñ… даних."
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
-msgstr "Додати зону DNS"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
+msgstr "Інші типи запиÑів"
-#: ipalib/plugins/internal.py:159
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
+msgstr "Ð’Ð°Ñ Ð±ÑƒÐ´Ðµ переÑпрÑмовано до зони DNS."
+
+#: ipalib/plugins/internal.py:309
+msgid "Standard Record Types"
+msgstr "Стандартні типи запиÑів"
+
+#: ipalib/plugins/internal.py:310
+msgid "Records for DNS Zone"
+msgstr "ЗапиÑи зони DNS"
+
+#: ipalib/plugins/internal.py:311
+msgid "Record Type"
+msgstr "Тип запиÑу"
+
+#: ipalib/plugins/internal.py:314
msgid "DNS Zone Settings"
msgstr "Параметри зони DNS"
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
-msgstr "Додати Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÑурÑу DNS"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
+msgstr "Обліковий запиÑ"
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
-msgstr "РеÑурÑ"
+#: ipalib/plugins/internal.py:319
+msgid "Certificates"
+msgstr "Сертифікати"
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "Дані"
+#: ipalib/plugins/internal.py:320
+msgid "Consume"
+msgstr "ВикориÑтаннÑ"
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
-msgstr "ЗапиÑи зони DNS"
+#: ipalib/plugins/internal.py:321
+msgid "Consume Entitlement"
+msgstr "Ð†Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ"
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
-msgstr "Додати групу"
+#: ipalib/plugins/internal.py:323
+msgid "Download"
+msgstr "Звантажити"
-#: ipalib/plugins/internal.py:170
+#: ipalib/plugins/internal.py:324
+msgid "Download Certificate"
+msgstr "Звантажити Ñертифікат"
+
+#: ipalib/plugins/internal.py:326
+msgid "Import"
+msgstr "Імпортувати"
+
+#: ipalib/plugins/internal.py:327
+msgid "Import Certificate"
+msgstr "Імпортувати Ñертифікат"
+
+#: ipalib/plugins/internal.py:328
+msgid "Enter the Base64-encoded entitlement certificate below:"
+msgstr "Ðижче вкажіть закодований у Base64 Ñертифікат іменуваннÑ:"
+
+#: ipalib/plugins/internal.py:329
+msgid "Loading..."
+msgstr "ЗавантаженнÑ…"
+
+#: ipalib/plugins/internal.py:330
+msgid "No Certificate."
+msgstr "Без Ñертифіката."
+
+#: ipalib/plugins/internal.py:332
+msgid "Register"
+msgstr "ЗареєÑтруватиÑÑ"
+
+#: ipalib/plugins/internal.py:333
+msgid "Registration"
+msgstr "РеєÑтраціÑ"
+
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
+msgstr "Стан"
+
+#: ipalib/plugins/internal.py:338
msgid "Group Settings"
msgstr "Параметри групи"
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#: ipalib/plugins/internal.py:339
msgid "Is this a POSIX group?"
msgstr "Чи Ñ” Ñ†Ñ Ð³Ñ€ÑƒÐ¿Ð° групою POSIX?"
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
-msgstr "Додати правило HBAC"
-
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
msgid "Active"
msgstr "Ðктивний"
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
-msgstr "Дозволити"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
+msgstr "Будь-Ñкий вузол"
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
-msgstr "Відмовити"
+#: ipalib/plugins/internal.py:344
+msgid "Any Service"
+msgstr "Будь-Ñка Ñлужба"
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
+msgstr "Будь-хто"
+
+#: ipalib/plugins/internal.py:346
+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:179 ipalib/plugins/internal.py:296
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
msgid "Rule status"
msgstr "Стан правила"
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
-msgstr "Хто"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
+msgstr "Проміжна Ñлужба"
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
-msgstr "Будь-хто"
+#: ipalib/plugins/internal.py:350
+msgid "From"
+msgstr "Від"
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
+msgstr "Вказані вузли і групи"
+
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
+msgstr "Вказані Ñлужби Ñ– групи"
+
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
msgid "Specified Users and Groups"
msgstr "Вказані кориÑтувачі Ñ– групи"
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
-msgstr "ДоÑтуп"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
+msgstr "Хто"
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
-msgstr "Будь-Ñкий вузол"
+#: ipalib/plugins/internal.py:362
+msgid "Access Denied"
+msgstr "ДоÑтуп заборонено"
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
-msgstr "Вказані вузли і групи"
+#: ipalib/plugins/internal.py:363
+msgid "Access Granted"
+msgstr "Ðадано доÑтуп"
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
-msgstr "Проміжна Ñлужба"
+#: ipalib/plugins/internal.py:364
+msgid "Include Disabled"
+msgstr "Ð’ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
-msgstr "Будь-Ñка Ñлужба"
+#: ipalib/plugins/internal.py:365
+msgid "Include Enabled"
+msgstr "Ð’ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾"
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
-msgstr "Вказані Ñлужби Ñ– групи"
+#: ipalib/plugins/internal.py:366
+msgid "HBAC Test"
+msgstr "ТеÑÑ‚ HBAC"
-#: ipalib/plugins/internal.py:189
-msgid "From"
-msgstr "Від"
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr "Ð’Ñтановлено відповідніÑÑ‚ÑŒ"
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
-msgstr "Додати Ñлужбу HBAC"
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr "Ðовий текÑÑ‚"
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
-msgstr "Додати групу Ñлужб HBAC"
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
+msgstr "Правила"
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
-msgstr "Додати вузол"
+#: ipalib/plugins/internal.py:370
+msgid "Run Test"
+msgstr "ЗапуÑтити теÑт…"
-#: ipalib/plugins/internal.py:200
+#: ipalib/plugins/internal.py:371
+msgid "Specify external ${entity}"
+msgstr "Вкажіть зовнішній ${entity}"
+
+#: ipalib/plugins/internal.py:372
+msgid "Unmatched"
+msgstr "Ðевідповідний"
+
+#: ipalib/plugins/internal.py:375
msgid "Host Certificate"
msgstr "Сертифікат вузла"
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
msgid "Host Name"
msgstr "Ðазва вузла"
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
+msgstr "Вилучити ключ, ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ"
+
+#: ipalib/plugins/internal.py:378
msgid "Host Settings"
msgstr "Параметри вузла"
-#: ipalib/plugins/internal.py:203
+#: ipalib/plugins/internal.py:379
msgid "Enrolled?"
msgstr "ЗареєÑтровано?"
-#: ipalib/plugins/internal.py:204
+#: ipalib/plugins/internal.py:380
msgid "Enrollment"
msgstr "РеєÑтраціÑ"
-#: ipalib/plugins/internal.py:205
+#: ipalib/plugins/internal.py:381
msgid "Fully Qualified Host Name"
msgstr "Повна назва вузла"
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
-msgstr "Стан"
+#: ipalib/plugins/internal.py:382
+msgid "Kerberos Key"
+msgstr "Ключ Kerberos"
-#: ipalib/plugins/internal.py:208
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr "Ключа Kerberos немає"
+
+#: ipalib/plugins/internal.py:384
msgid "Kerberos Key Present, Host Provisioned"
msgstr "Маємо ключ Kerberos, вузол передбачено"
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
-msgstr "Вилучити ключ, ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ"
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
+msgstr "Одноразовий пароль"
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
-msgstr "Ключа Kerberos немає"
+#: ipalib/plugins/internal.py:386
+msgid "One-Time-Password Not Present"
+msgstr "Одноразового Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ¼Ð°Ñ”"
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
-msgstr "ЗареєÑтрувати за допомогою одноразового паролÑ"
+#: ipalib/plugins/internal.py:387
+msgid "One-Time-Password Present"
+msgstr "Є одноразовий пароль"
-#: ipalib/plugins/internal.py:212
+#: ipalib/plugins/internal.py:388
+msgid "Reset OTP"
+msgstr "Скинути ОП"
+
+#: ipalib/plugins/internal.py:389
+msgid "Reset One-Time-Password"
+msgstr "Скинути одноразовий пароль"
+
+#: ipalib/plugins/internal.py:390
msgid "Set OTP"
msgstr "Одноразовий пароль"
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
-msgstr "Було вÑтановлено одноразовий пароль."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
+msgstr "Ð’Ñтановити одноразовий пароль"
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
-msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ ${entity}"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
+msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ"
-#: ipalib/plugins/internal.py:215
+#: ipalib/plugins/internal.py:394
msgid "Are you sure you want to unprovision this host?"
msgstr "Ви Ñправді бажаєте ÑкаÑувати Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вузла?"
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
-msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ"
-
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
-msgstr "Додати групу вузлів"
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
+msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ ${entity}"
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:398
msgid "Host Group Settings"
msgstr "Параметри групи вузлів"
-#: ipalib/plugins/internal.py:223
+#: ipalib/plugins/internal.py:401
msgid "Kerberos ticket policy"
msgstr "Правила квитків Kerberos"
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
-msgstr "Додати мережеву групу"
-
-#: ipalib/plugins/internal.py:227
+#: ipalib/plugins/internal.py:404
msgid "Netgroup Settings"
msgstr "Параметри мережевої групи"
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
-msgstr "Додати права доÑтупу"
-
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
msgid "Identity"
msgstr "Профіль"
-#: ipalib/plugins/internal.py:233
-msgid "Target"
-msgstr "Ціль"
-
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
-msgstr "За підієрархією"
-
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
-msgstr "Цільова група"
-
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
-msgstr "Об’єкт за типом"
-
-#: ipalib/plugins/internal.py:238
+#: ipalib/plugins/internal.py:408
msgid "Permission with invalid target specification"
msgstr "Права доÑтупу з некоректним визначеннÑм призначеннÑ"
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
-msgstr "Додати уповноваженнÑ"
+#: ipalib/plugins/internal.py:410
+msgid "Target"
+msgstr "Ціль"
-#: ipalib/plugins/internal.py:242
+#: ipalib/plugins/internal.py:413
msgid "Privilege Settings"
msgstr "Параметри уповноваженнÑ"
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
-msgstr "Додати правила паролів"
-
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
msgid "Password Policy"
msgstr "Правила Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²"
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
-msgstr "Додати роль"
-
-#: ipalib/plugins/internal.py:250
+#: ipalib/plugins/internal.py:419
msgid "Role Settings"
msgstr "Параметри ролей"
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
-msgstr "Додати Ð°Ð²Ñ‚Ð¾Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñлужби"
-
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
-msgstr "Додати Ñлужбу"
-
-#: ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:424
msgid "Service Certificate"
msgstr "Сертифікат Ñлужби"
-#: ipalib/plugins/internal.py:258
+#: ipalib/plugins/internal.py:426
msgid "Service Settings"
msgstr "Параметри Ñлужби"
-#: ipalib/plugins/internal.py:260
+#: ipalib/plugins/internal.py:429
msgid "Provisioning"
msgstr "ПередбаченнÑ"
-#: ipalib/plugins/internal.py:261
-msgid "Service"
-msgstr "Служба"
-
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
-msgstr "Маємо ключ Kerberos, Ñлужбу передбачено"
-
-#: ipalib/plugins/internal.py:267
+#: ipalib/plugins/internal.py:433
msgid "Are you sure you want to unprovision this service?"
msgstr "Ви Ñправді бажаєте ÑкаÑувати Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñлужби?"
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
-msgstr "Додати команду sudo"
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Маємо ключ Kerberos, Ñлужбу передбачено"
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
-msgstr "Додати групу команд sudo"
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "Групи"
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
msgid "Commands"
msgstr "Команди"
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
-msgstr "Додати правило sudo"
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr "Дозволити"
-#: ipalib/plugins/internal.py:287
-msgid "Access this host"
-msgstr "ДоÑтуп до цього вузла"
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr "Будь-Ñка команда"
-#: ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr "Будь-Ñка група"
+
+#: ipalib/plugins/internal.py:450
msgid "Run Commands"
msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´"
-#: ipalib/plugins/internal.py:291
-msgid "Any Command"
-msgstr "Будь-Ñка команда"
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr "Відмовити"
-#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
-msgstr "Вказані команди і групи"
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr "Зовнішній"
-#: ipalib/plugins/internal.py:293
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr "ДоÑтуп до цього вузла"
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr "Параметри"
+
+#: ipalib/plugins/internal.py:457
msgid "As Whom"
msgstr "Від імені"
-#: ipalib/plugins/internal.py:294
-msgid "Any Group"
-msgstr "Будь-Ñка група"
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr "Вказані команди і групи"
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:459
msgid "Specified Groups"
msgstr "Вказані групи"
-#: ipalib/plugins/internal.py:297
-msgid "External"
-msgstr "Зовнішній"
-
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
-msgstr "Додати кориÑтувача"
-
-#: ipalib/plugins/internal.py:301
+#: ipalib/plugins/internal.py:465
msgid "Account Settings"
msgstr "Параметри облікового запиÑу"
-#: ipalib/plugins/internal.py:302
+#: ipalib/plugins/internal.py:466
+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."
+msgstr "Ви Ñправді бажаєте виконати щодо кориÑтувача дію «${action}»?<br/>Зміни буде внеÑено негайно."
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr "ÐатиÑніть, щоб ${action}"
+
+#: ipalib/plugins/internal.py:471
msgid "Contact Settings"
msgstr "Параметри контакту"
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr "ÐдреÑа ел. пошти"
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr "Вимкнути"
-#: ipalib/plugins/internal.py:304
+#: ipalib/plugins/internal.py:473
msgid "Employee Information"
msgstr "ВідомоÑÑ‚Ñ– щодо працівника"
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
-msgstr "Інша інформаціÑ"
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби зміни Ñтану облікового запиÑу"
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
-msgstr "ÐатиÑніть, щоб вимкнути"
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr "ÐдреÑа ел. пошти"
-#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
-msgstr "ÐатиÑніть, щоб задіÑти"
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr "Інша інформаціÑ"
-#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
-msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби зміни Ñтану облікового запиÑу"
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr "Поточний пароль"
-#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr "Скинути пароль"
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr "Слід вказати поточний пароль"
-#: ipalib/plugins/internal.py:312
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
msgid "New Password"
msgstr "Ðовий пароль"
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
-msgstr "Повторити пароль"
-
-#: ipalib/plugins/internal.py:314
+#: ipalib/plugins/internal.py:484
msgid "Password change complete"
msgstr "Зміну Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾"
-#: ipalib/plugins/internal.py:315
+#: ipalib/plugins/internal.py:485
msgid "Passwords must match"
msgstr "Паролі мають збігатиÑÑ"
-#: ipalib/plugins/internal.py:319
-msgid "Add"
-msgstr "Додати"
-
-#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
-msgstr "Додати і додати ще"
-
-#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr "Додати і змінити"
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
-msgstr "Додати і закрити"
-
-#: ipalib/plugins/internal.py:323
-msgid "Add Many"
-msgstr "Додати багато"
-
-#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr "ПовернутиÑÑ Ð´Ð¾ ÑпиÑку"
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
-msgstr "СкаÑувати"
-
-#: ipalib/plugins/internal.py:326
-msgid "Close"
-msgstr "Закрити"
-
-#: ipalib/plugins/internal.py:327
-msgid "Enroll"
-msgstr "ЗареєÑтрувати"
-
-#: ipalib/plugins/internal.py:328
-msgid "Find"
-msgstr "Знайти"
-
-#: ipalib/plugins/internal.py:329
-msgid "Get"
-msgstr "Отримати"
-
-#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr "Створити"
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
-msgstr "Гаразд"
-
-#: ipalib/plugins/internal.py:332
-msgid "Reset"
-msgstr "Скинути"
-
-#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr "Вилучити"
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr "Відновити"
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr "Повторити"
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr "Відкликати"
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
-msgstr "Оновити"
-
-#: ipalib/plugins/internal.py:338
-msgid "View"
-msgstr "ПереглÑд"
-
-#: ipalib/plugins/internal.py:341
-msgid "Available"
-msgstr "ДоÑтупний"
-
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
-msgstr ""
-"Ðа цій Ñторінці виÑвлено незбережені зміни. Будь лаÑка, збережіть зміни або "
-"ÑкаÑуйте Ñ—Ñ…."
-
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
-msgstr "Брудно"
-
-#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
-msgstr "Приховати вже зареєÑтровані."
-
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
-msgstr "Виберіть ${entity} Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ."
-
-#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
-msgstr "Вилучити ${entity}."
-
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
-msgstr "Очікуваний"
-
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
-msgstr "КеруєтьÑÑ"
-
-#: ipalib/plugins/internal.py:351
-msgid "Member"
-msgstr "УчаÑник"
-
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
-msgstr "ОпоÑередкований учаÑник"
-
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
-msgstr "УчаÑник"
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr "Скинути пароль"
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
-msgstr "ОпоÑередкований учаÑник"
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr "Повторіть пароль"
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
-msgstr "Параметри"
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr "Ви Ñправді бажаєте вилучити позначені запиÑи?"
-#: ipalib/plugins/internal.py:358
-msgid "Search"
-msgstr "Пошук"
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr "ДеÑкі з запиÑів не вилучено"
-#: ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:492
msgid "Quick Links"
msgstr "Швидкі поÑиланнÑ"
-#: ipalib/plugins/internal.py:363
+#: ipalib/plugins/internal.py:493
msgid "Select All"
msgstr "Вибрати вÑе"
-#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
-msgstr "СкаÑувати вибір вÑього"
-
-#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
-msgstr "Ви Ñправді бажаєте вилучити позначені запиÑи?"
-
-#: ipalib/plugins/internal.py:366
+#: ipalib/plugins/internal.py:494
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
-msgstr ""
-"За запитом повернуто більше за налаштоване макÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð²."
-" Показано лише перші ${counter} результатів."
+msgstr "За запитом повернуто більше за налаштоване макÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð². Показано лише перші ${counter} результатів."
-#: ipalib/plugins/internal.py:370
-msgid "General"
-msgstr "Загальне"
-
-#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
-msgstr "Параметри профілю"
-
-#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
-msgstr "Параметри ${primary_key} ${entity}"
-
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
-msgstr "ПовернутиÑÑ Ð´Ð¾ початку"
-
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
-msgstr "Правила"
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr "СкаÑувати вибір вÑього"
-#: ipalib/plugins/internal.py:378
+#: ipalib/plugins/internal.py:498
msgid "Audit"
msgstr "Ðудит"
-#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
-msgstr "Сервер IPA"
-
-#: ipalib/plugins/internal.py:380
-msgid "Sudo"
-msgstr "Sudo"
-
-#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
-msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів"
-
-#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
-msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові ролей"
-
-#: ipalib/plugins/internal.py:383
+#: ipalib/plugins/internal.py:499
msgid "Automount"
msgstr "Ðвтоматичне монтуваннÑ"
-#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
-msgstr "Додати ${other_entity} до ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
-#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
-msgstr "${other_entity} зареєÑтровано у ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові вузлів"
-#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
-msgstr "${entity} ${primary_key} зареєÑтровано у наÑтупному ${other_entity}"
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr "Сервер IPA"
-#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
-msgstr "Вилучити ${other_entity} з ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr "Правила"
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
-msgstr "ТекÑÑ‚ не відповідає шаблону полÑ"
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом на оÑнові ролей"
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
-msgstr ""
-"Ваш квиток Kerberos втратив чинніÑÑ‚ÑŒ. Будь лаÑка, запуÑÑ‚Ñ–Ñ‚ÑŒ kinit and then "
-"click 'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr "Sudo"
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
-msgstr "Словник перекладених повідомлень"
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr "Так"
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
-msgstr ""
-"\n"
-"Додаток Ñервера Ð´Ð»Ñ Kerberos.\n"
-"\n"
-"Є обгорткою до прив’Ñзок python-kerberos та python-krbV.\n"
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr "Далі"
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
-msgstr ""
-"\n"
-" Додаток Ñервера Kerberos.\n"
-"\n"
-" Цей додаток Ñ” інтерфейÑом до прив’Ñзок «krbV» (зокрема прив’Ñзок\n"
-" «kerberos»). Важливим Ñ” те, що цей додаток виправлÑÑ” ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–\n"
-" Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Unicode значень вхідних/вихідних прив’Ñзок.\n"
-" "
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr "Сторінка"
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
-msgstr ""
-"\n"
-" Повернути «krbV.CCache» Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ кешу реєÑтраційних даних.\n"
-" "
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr "Ðазад"
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
-msgstr ""
-"\n"
-" Повернути «krb5.Principal» Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ кешу реєÑтраційних даних.\n"
-" "
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr "ÑкаÑувати"
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
-msgstr ""
-"\n"
-" Повернути «krbV.CCache» Ð´Ð»Ñ ÐºÐµÑˆÑƒ реєÑтраційних даних «ccname».\n"
-" "
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr "ÑкаÑувати вÑÑ– дії"
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
-msgstr ""
-"\n"
-" Повернути «krb5/Principal» Ð´Ð»Ñ ÐºÐµÑˆÑƒ реєÑтраційних даних «ccname».\n"
-" "
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr "ТекÑÑ‚ не відповідає шаблону полÑ"
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
-msgstr ""
-"\n"
-" Повернути типову назву файла ccache.\n"
-"\n"
-" Буде повернуто дані у форматі «/tmp/krb5cc_500».\n"
-"\n"
-" Ðе поверне жодних кориÑних даних, Ñкщо викориÑтано на Ñервері\n"
-" під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ запиту.\n"
-" "
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr "Має бути цілим чиÑлом"
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
-msgstr ""
-"\n"
-" Повернути оÑновну назву у типовому кеші реєÑтраційних даних.\n"
-"\n"
-" Дані буде повернуто у форматі «admin@EXAMPLE.COM». Якщо кешу реєÑтраційних\n"
-" даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ кориÑтувача не Ñ–Ñнує, буде повернуто None.\n"
-"\n"
-" Ðе поверне жодних кориÑних даних, Ñкщо викориÑтано на Ñервері\n"
-" під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ запиту.\n"
-" "
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr "МакÑимальним Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ${value}"
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
-msgstr ""
-"\n"
-" Повернути облаÑÑ‚ÑŒ дії з типового кешу реєÑтраційних даних.\n"
-"\n"
-" Дані буде повернуто у форматі «EXAMPLE.COM». Якщо кешу реєÑтраційних\n"
-" даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ кориÑтувача не Ñ–Ñнує, буде повернуто None.\n"
-"\n"
-" Ðе поверне жодних кориÑних даних, Ñкщо викориÑтано на Ñервері\n"
-" під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ запиту.\n"
-" "
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr "Мінімальним Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ${value}"
-#: ipalib/plugins/kerberos.py:103
-msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
-msgstr ""
-"\n"
-" Повернути оÑновні дані з файла кешу реєÑтраційних даних у «ccname».\n"
-"\n"
-" Дані буде повернуто у форматі «admin@EXAMPLE.COM».\n"
-" "
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr "Обов’Ñзкове поле"
-#: ipalib/plugins/kerberos.py:111
-msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
-msgstr ""
-"\n"
-" Повернути облаÑÑ‚ÑŒ дії з файла кешу реєÑтраційних даних у «ccname».\n"
-"\n"
-" Дані буде повернуто у форматі «EXAMPLE.COM».\n"
-" "
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr "Словник перекладених повідомлень"
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -5871,115 +5236,49 @@ msgid ""
"\n"
" Modify per-user policy for user 'admin':\n"
" ipa krbtpolicy-mod admin --maxlife=3600\n"
-msgstr ""
-"\n"
-"Правила квитків Kerberos\n"
-"\n"
-"Передбачено єдині правила квитків Kerberos. Ці правила визначають\n"
-"макÑимальний Ñтрок дії квитка та макÑимальний вік оновленнÑ, період,\n"
-"протÑгом Ñкого квиток можна поновити.\n"
-"\n"
-"Крім того, ви можете Ñтворити правила Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… кориÑтувачів\n"
-"шлÑхом Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– кориÑтувача.\n"
-"\n"
-"Щоб зміни у загальних правилах набули чинноÑÑ‚Ñ–, Ñлід перезапуÑтити\n"
-"Ñлужбу KDC. Це можна зробити за допомогою такої команди:\n"
-"\n"
-"service krb5kdc restart\n"
-"\n"
-"Зміни у окремих правилах Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів набудуть чинноÑÑ‚Ñ– негайно\n"
-"Ð´Ð»Ñ ÐºÐ²Ð¸Ñ‚ÐºÑ–Ð² нових запитів (наприклад, у відповідь на наÑтупний\n"
-"запуÑк кориÑтувачем kinit).\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Показ поточних правил квитків Kerberos:\n"
-" ipa krbtpolicy-show\n"
-"\n"
-" Відновити типові правила:\n"
-" ipa krbtpolicy-reset\n"
-"\n"
-" Зміна правил на 8-годинний Ñтрок дії, 1-денний Ñтрок поновленнÑ:\n"
-" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
-"\n"
-" Показ поточних правил квитків Kerberos Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n"
-" ipa krbtpolicy-show admin\n"
-"\n"
-" Відновити окремі правила Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n"
-" ipa krbtpolicy-reset admin\n"
-"\n"
-" Зміна окремих правил Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n"
-" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr "\nПравила квитків Kerberos\n\nПередбачено єдині правила квитків Kerberos. Ці правила визначають\nмакÑимальний Ñтрок дії квитка та макÑимальний вік оновленнÑ, період,\nпротÑгом Ñкого квиток можна поновити.\n\nКрім того, ви можете Ñтворити правила Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… кориÑтувачів\nшлÑхом Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– кориÑтувача.\n\nЩоб зміни у загальних правилах набули чинноÑÑ‚Ñ–, Ñлід перезапуÑтити\nÑлужбу KDC. Це можна зробити за допомогою такої команди:\n\nservice krb5kdc restart\n\nЗміни у окремих правилах Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів набудуть чинноÑÑ‚Ñ– негайно\nÐ´Ð»Ñ ÐºÐ²Ð¸Ñ‚ÐºÑ–Ð² нових запитів (наприклад, у відповідь на наÑтупний\nзапуÑк кориÑтувачем kinit).\n\nПРИКЛÐДИ:\n\n Показ поточних правил квитків Kerberos:\n ipa krbtpolicy-show\n\n Відновити типові правила:\n ipa krbtpolicy-reset\n\n Зміна правил на 8-годинний Ñтрок дії, 1-денний Ñтрок поновленнÑ:\n ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n\n Показ поточних правил квитків Kerberos Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n ipa krbtpolicy-show admin\n\n Відновити окремі правила Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n ipa krbtpolicy-reset admin\n\n Зміна окремих правил Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «admin»:\n ipa krbtpolicy-mod admin --maxlife=3600\n"
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт правила квитків Kerberos\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
+msgstr "параметри правил квитків kerberos"
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr "Правила квитків Kerberos"
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸ обробки квитків певного кориÑтувача"
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr "МакÑ. Ñтрок дії"
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr "МакÑимальний Ñтрок дії квитка (у Ñекундах)"
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr "МакÑ. вік поновленнÑ"
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr "МакÑимальний вік, протÑгом Ñкого можливе Ð¿Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ (у Ñекундах)"
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
-msgstr ""
-"\n"
-" Змінити правила квитків Kerberos.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
+msgstr "Змінити правила квитків Kerberos."
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
-msgstr ""
-"\n"
-" Показати поточні правила квитків Kerberos.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
+msgstr "Показати поточні правила квитків Kerberos."
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
-msgstr ""
-"\n"
-" Відновити типові правила квитків Kerberos.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
+msgstr "Відновити типові правила квитків Kerberos."
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -6020,276 +5319,227 @@ msgid ""
" 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"
-msgstr ""
-"\n"
-"Перехід на IPA\n"
-"\n"
-"ПеренеÑÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів Ñ– груп з Ñервера LDAP на IPA.\n"
-"\n"
-"Виконує запит LDAP до віддаленого Ñервера Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів\n"
-"кориÑтувачів та груп у контейнері. З метою перенеÑÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² вам\n"
-"Ñлід виконати прив’Ñзку від імені кориÑтувача, Ñкий може читати\n"
-"атрибут userPassword на віддаленому Ñервері. Коло таких кориÑтувачів\n"
-"зазвичай обмежене адмініÑтраторами найвищого рівнÑ, зокрема\n"
-"cn=Directory Manager у 389-ds (типовий кориÑтувач Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²â€™Ñзки).\n"
-"\n"
-"Типовим контейнером запиÑів кориÑтувачів Ñ” ou=People.\n"
-"\n"
-"Типовим контейнером запиÑів груп Ñ” ou=Groups.\n"
-"\n"
-"ЗапиÑи кориÑтувачів Ñ– груп, Ñкі вже Ñтворено на Ñервері IPA, буде\n"
-"проігноровано.\n"
"\n"
-"СпоÑіб Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів учаÑників груп визначаєтьÑÑ Ð´Ð²Ð¾Ð¼Ð° Ñхемами\n"
-"LDAP: RFC2307 та RFC2307bis. У Ñхемі RFC2307bis Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑ‡Ð°Ñників\n"
-"груп викориÑтовуютьÑÑ Ð¿Ð¾Ð»Ñ member та uniquemember, у Ñхемі RFC2307 —\n"
-"лише memberUid. Типовою Ñ” Ñхема RFC2307bis.\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"
+" 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"
"\n"
-"У перенеÑених запиÑів кориÑтувачів не буде реєÑтраційних запиÑів\n"
-"Kerberos, збережено буде лише пароль LDAP. Щоб завершити процеÑ\n"
-"переходу, кориÑтувачам Ñлід буде перейти за адреÑою\n"
-"http://ipa.example.com/ipa/migration Ñ– пройти Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°\n"
-"паролем LDAP з метою ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтраційного запиÑу Kerberos.\n"
-"\n"
-"Типово перехід вимкнено. СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ ipa config-mod,\n"
-"щоб увімкнути його:\n"
-"\n"
-" ipa config-mod --enable-migration=TRUE\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" ÐайпроÑтіший перехід з типовими параметрами:\n"
-" ipa migrate-ds ldap://ds.example.com:389\n"
-"\n"
-" Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð° запиÑів кориÑтувачів Ñ– груп. Можна ÑкориÑтатиÑÑ\n"
-" Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½ÐµÑÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… кориÑтувачів Ñ– груп з Ñервера IPA верÑÑ–Ñ— 1:\n"
-" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr "\nПерехід на IPA\n\nПеренеÑÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів Ñ– груп з Ñервера LDAP на IPA.\n\nÐадÑилає запит LDAP до віддаленого Ñервера з метою пошуку кориÑтувачів\nÑ– груп у контейнері. З метою перенеÑÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² вам Ñлід прив’ÑзатиÑÑ\nдо Ñервера від імені кориÑтувача, Ñкий може читати атрибут userPassword\nна Ñервері. Перелік таких кориÑтувачів зазвичай обмежено адмініÑтраторами\nвищого рівнÑ, зокрема cn=Directory Manager на 389-ds (типовий кориÑтувач\nbind).\n\nТиповим контейнером кориÑтувачів Ñ” ou=People.\n\nТиповим контейнером груп Ñ” ou=Groups.\n\nЗапиÑи кориÑтувачів Ñ– груп, Ñкі вже Ñтворено на Ñервері IPA буде\nпропущено.\n\nДві Ñхеми LDAP визначають ÑпоÑіб Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів учаÑників групи:\nRFC2307 Ñ– RFC2307bis. RFC2307bis викориÑтовує атрибути member Ñ–\nuniquemember Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑ‡Ð°Ñників групи, RFC2307 викориÑтовує\nmemberUid. Типовою Ñ” Ñхема RFC2307bis.\n\nПеренеÑені кориÑтувачі не матимуть реєÑтраційних запиÑів Kerberos,\nперенеÑено буде лише пароль LDAP. Щоб завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€ÐµÐ½ÐµÑеннÑ,\nкориÑтувачам Ñлід відкрити Ñторінку\nhttp://ipa.example.com/ipa/migration Ñ– пройти Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°\nдопомогою Ð¿Ð°Ñ€Ð¾Ð»Ñ LDAP з метою ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу реєÑтраційних даних\nKerberos.\n\nТипово перенеÑÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾. Ð”Ð»Ñ Ð¹Ð¾Ð³Ð¾ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\nipa config-mod:\n\n ipa config-mod --enable-migration=TRUE\n\nПРИКЛÐДИ:\n\n ÐайпроÑтіше перенеÑÐµÐ½Ð½Ñ Ð· типовими параметрами:\n ipa migrate-ds ldap://ds.example.com:389\n\n Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ñ–Ð² кориÑтувача Ñ– групи. Можна ÑкориÑтатиÑÑ Ð´Ð»Ñ\n перенеÑÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… кориÑтувача Ñ– групи з Ñервера IPA верÑÑ–Ñ— 1:\n ipa migrate-ds --user-container='cn=users,cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example.com:389\n\n ОÑкільки на Ñервері IPA верÑÑ–Ñ— 2 вже передбачено попередньо\n визначені групи, Ñкі можуть збігатиÑÑ Ð· групами, Ñкі переноÑÑÑ‚ÑŒÑÑ Ð·\n Ñервера (IPA верÑÑ–Ñ— 1), наприклад admins, ipausers, кориÑтувачів з\n таких груп може бути перенеÑено до невідомої (unknown) групи на\n новому Ñервері IPA верÑÑ–Ñ— 2.\n СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --group-overwrite-gid Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñу\n ідентифікатора групи вже Ñтворених груп Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ñ†Ñ–Ð¹\n незручноÑÑ‚Ñ–:\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\n"
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
-msgstr ""
-"РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Kerberos %s вже Ñ–Ñнує. СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa user-"
-"mod», щоб вÑтановити його параметри вручну."
+msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Kerberos %s вже Ñ–Ñнує. СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa user-mod», щоб вÑтановити його параметри вручну."
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
-msgstr ""
-"Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ кориÑтувача до типової групи. Додати кориÑтувача вручну "
-"можна за допомогою команди «ipa group-add-member»."
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ кориÑтувача до типової групи. Додати кориÑтувача вручну можна за допомогою команди «ipa group-add-member»."
+
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr "Підтримки перенеÑÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ LDAP не передбачено."
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ DN"
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
-msgstr ""
-"\n"
-" Перетворити імена кориÑтувачів у атрибути учаÑників Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
+msgstr ". Перевірте ідентифікатор вже Ñтвореної групи. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --group-overwrite-gid Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñу ідентифікатора групи"
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr "Ðекоректна адреÑа LDAP."
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
-msgstr ""
-"\n"
-" ПеренеÑти дані кориÑтувачів Ñ– груп з DS до IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
+msgstr "ПеренеÑти дані кориÑтувачів Ñ– груп з DS до IPA."
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr "URI LDAP"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr "URI LDAP Ñервера DS, з Ñкого здійÑнюватиметьÑÑ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ"
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr "пароль прив’Ñзки"
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr "DN Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзки"
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr "Контейнер кориÑтувачів"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr "RDN контейнера кориÑтувачів у DS"
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr "Контейнер груп"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr "RDN контейнера груп у DS"
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr "ÐšÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² кориÑтувача"
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
-msgstr ""
-"Відокремлений комами ÑпиÑок клаÑів об’єктів, викориÑтаних Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів"
-" кориÑтувачів у DS"
+msgstr "Відокремлений комами ÑпиÑок клаÑів об’єктів, викориÑтаних Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів кориÑтувачів у DS"
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr "ÐšÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² групи"
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
-msgstr ""
-"Відокремлений комами ÑпиÑок клаÑів об’єктів, викориÑтаних Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів"
-" груп у DS"
+msgstr "Відокремлений комами ÑпиÑок клаÑів об’єктів, викориÑтаних Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів груп у DS"
+
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr "Ігнорувати ÐºÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² кориÑтувача"
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr "Відокремлений комами ÑпиÑок клаÑів об’єктів, Ñкі буде проігноровано Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів у DS"
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr "Ігнорувати атрибут кориÑтувача"
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr "Відокремлений комами ÑпиÑок атрибути, Ñкі буде проігноровано Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів у DS"
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr "Ігнорувати ÐºÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² групи"
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr "Відокремлений комами ÑпиÑок клаÑів об’єктів, Ñкі буде проігноровано Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів груп у DS"
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr "Ігнорувати атрибут групи"
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr "Відокремлений комами ÑпиÑок атрибути, Ñкі буде проігноровано Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів груп у DS"
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr "ПерезапиÑати ідентифікатор групи"
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr "Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ½ÐµÑÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸, Ñку вже Ñтворено у домені IPA буде перезапиÑано ідентифікатор групи Ñ– повідомлено про уÑпіх"
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr "Схема LDAP"
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
-msgstr ""
-"Схема, викориÑтана на Ñервері LDAP. Підтримувані значеннÑ: RFC2307 Ñ– "
-"RFC2307bis. Типове значеннÑ: RFC2307bis"
+msgstr "Схема, викориÑтана на Ñервері LDAP. Підтримувані значеннÑ: RFC2307 Ñ– RFC2307bis. Типове значеннÑ: RFC2307bis"
+
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr "Продовжити"
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
-msgstr ""
-"Режим неперервної обробки. Програма повідомлÑÑ” про помилки, але продовжує "
-"обробку."
+msgstr "Режим неперервної обробки. Програма повідомлÑÑ” про помилки, але продовжує обробку."
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr "СпиÑки об’єктів, міграцію Ñких виконано; впорÑдкований за типами."
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
-msgstr ""
-"СпиÑки об’єктів, міграцію Ñких не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸; впорÑдкований за типами."
+msgstr "СпиÑки об’єктів, міграцію Ñких не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸; впорÑдкований за типами."
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr "False, Ñкщо режим міграції було вимкнено."
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
-msgstr ""
-"СпиÑок %s, відокремлених комами, Ñкі Ñлід виключити з процеÑу міграції"
+msgstr "СпиÑок %s, відокремлених комами, Ñкі Ñлід виключити з процеÑу міграції"
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
"migration process might be incomplete\n"
-msgstr ""
-"ÑпиÑок результатів пошуку об’єктів міграції\n"
-"було обрізано Ñервером; ймовірно,\n"
-"Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ— не завершено\n"
+msgstr "ÑпиÑок результатів пошуку об’єктів міграції\nбуло обрізано Ñервером; ймовірно,\nÐ¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ— не завершено\n"
-#: ipalib/plugins/migration.py:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
-msgstr ""
-"Режим міграції вимкнено. СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa config-mod», щоб "
-"увімкнути його."
+msgstr "Режим міграції вимкнено. СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa config-mod», щоб увімкнути його."
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
"with clear text passwords. All migrated users need to\n"
"login at https://your.domain/ipa/migration/ before they\n"
"can use their Kerberos accounts."
-msgstr ""
-"Міграцію запиÑів паролів здійÑнено у форматі до хешуваннÑ.\n"
-"IPA не вдаÑÑ‚ÑŒÑÑ Ñтворити ключі Kerberos, Ñкщо не буде\n"
-"надано текÑтових паролів. Ð’Ñім кориÑтувачам з перенеÑеними\n"
-"запиÑами, доведетьÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð°\n"
-"https://your.domain/ipa/migration/ до того, Ñк вони зможуть\n"
-"ÑкориÑтатиÑÑ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ð¼Ð¸ запиÑами Kerberos."
-
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-"\n"
-" Викликати get_options базового клаÑу Ñ– додати параметри «exclude»\n"
-" Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з типу об’єктів, Ñкі переноÑÑÑ‚ÑŒÑÑ.\n"
-" "
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-"\n"
-" Перетворити вÑÑ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «exclude» у нижній регіÑÑ‚Ñ€.\n"
-"\n"
-" Також порожні параметри List перетворюютьÑÑ Ð½Ð° None, але додаток\n"
-" перенеÑÐµÐ½Ð½Ñ Ð½Ðµ оброблÑÑ” таких даних — Ñ—Ñ… буде знову перетворено на порожні\n"
-" ÑпиÑки.\n"
-" "
+msgstr "Міграцію запиÑів паролів здійÑнено у форматі до хешуваннÑ.\nIPA не вдаÑÑ‚ÑŒÑÑ Ñтворити ключі Kerberos, Ñкщо не буде\nнадано текÑтових паролів. Ð’Ñім кориÑтувачам з перенеÑеними\nзапиÑами, доведетьÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð°\nhttps://your.domain/ipa/migration/ до того, Ñк вони зможуть\nÑкориÑтатиÑÑ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ð¼Ð¸ запиÑами Kerberos."
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-"\n"
-" ПеренеÑти об’єкти з DS до LDAP.\n"
-" "
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr "Контейнера Ð´Ð»Ñ %(container)s не знайдено"
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
-msgstr ""
-"\n"
-"Інші додатки\n"
+msgstr "\nІнші додатки\n"
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
-msgstr "Показати змінні Ñередовища"
+msgid "Show environment variables."
+msgstr "Показати змінні Ñередовища."
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr "%(count)d змінних"
#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
msgid ""
"retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-"отримати Ñ– вивеÑти вÑÑ– атрибути з Ñервера. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ виводу команд."
+msgstr "отримати Ñ– вивеÑти вÑÑ– атрибути з Ñервера. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ виводу команд."
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
@@ -6300,10 +5550,11 @@ msgid "Number of variables returned (<= total)"
msgstr "КількіÑÑ‚ÑŒ повернутих змінних (<= загальної)"
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
-msgstr "Показати ÑпиÑок завантажених додатків"
+msgid "Show all loaded plugins."
+msgstr "Показати ÑпиÑок завантажених додатків."
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "завантажено %(count)d додаток"
@@ -6314,7 +5565,7 @@ msgstr[2] "завантажено %(count)d додатків"
msgid "Number of plugins loaded"
msgstr "КількіÑÑ‚ÑŒ завантажених додатків"
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -6338,154 +5589,107 @@ msgid ""
"\n"
" Delete a netgroup:\n"
" ipa netgroup-del admins\n"
-msgstr ""
-"\n"
-"Мережеві групи\n"
-"\n"
-"Мережева група — група Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ прав доÑтупу. Може міÑтити значеннÑ\n"
-"кориÑтувачів та вузлів.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— мережевої групи:\n"
-" ipa netgroup-add --desc=\"NFS admins\" admins\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до мережевої групи:\n"
-" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача з мережевої групи:\n"
-" ipa netgroup-remove-member --users=tuser2 admins\n"
-"\n"
-" Показ даних щодо мережевої групи:\n"
-" ipa netgroup-show admins\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¾Ñ— групи:\n"
-" ipa netgroup-del admins\n"
+msgstr "\nМережеві групи\n\nМережева група — група Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ прав доÑтупу. Може міÑтити значеннÑ\nкориÑтувачів та вузлів.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— мережевої групи:\n ipa netgroup-add --desc=\"NFS admins\" admins\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñників до мережевої групи:\n ipa netgroup-add-member --users=tuser1,tuser2 admins\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача з мережевої групи:\n ipa netgroup-remove-member --users=tuser2 admins\n\n Показ даних щодо мережевої групи:\n ipa netgroup-show admins\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¾Ñ— групи:\n ipa netgroup-del admins\n"
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr "Вузол-учаÑник"
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт мережевої групи.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr "мережева група"
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr "мережеві групи"
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr "Мережеві групи"
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr "Мережева група"
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr "Ðазва мережевої групи"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr "ÐžÐ¿Ð¸Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¾Ñ— групи"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr "Ðазва домену NIS"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr "Унікальний ід. IPA"
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову групу у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
+msgstr "Додати нову мережеву групу."
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
-msgstr "Додано групу у мережі «%(value)s»"
+msgstr "Додано групу мережеву групу «%(value)s»"
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу у мережі.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr "Група вузлів з назвою «%s» вже Ñтворено. Групи вузлів Ñ– мережеві групи мають Ñпільний проÑÑ‚Ñ–Ñ€ назв."
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr "Вилучити мережеву групу."
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
-msgstr "Вилучено групу у мережі «%(value)s»"
+msgstr "Вилучено мережеву групу «%(value)s»"
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
+msgstr "Змінити мережеву групу."
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
-msgstr "Змінено групу у мережі «%(value)s»"
+msgstr "Змінено мережеву групу «%(value)s»"
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Знайти групу у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
+msgstr "Шукати мережеву групу."
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп"
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо групи у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
+msgstr "шукати керовані групи"
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до групи у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
+msgstr "Показати дані щодо мережевої групи."
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з групи у мережі.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
+msgstr "Додати учаÑників до мережевої групи."
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr "Вилучити учаÑників з мережевої групи."
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -6504,67 +5708,18 @@ msgid ""
"\n"
" To change another user's password:\n"
" ipa passwd tuser1\n"
-msgstr ""
-"\n"
-"Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача\n"
-"\n"
-"Якщо ÑкаÑÑŒ ÑÑ‚Ð¾Ñ€Ð¾Ð½Ð½Ñ Ð¾Ñоба змінює пароль кориÑтувача (наприклад його\n"
-"відновлює допоміжний перÑонал), новий пароль має бути змінено під\n"
-"Ñ‡Ð°Ñ Ð¹Ð¾Ð³Ð¾ першого викориÑтаннÑ. Метою такого ÑпоÑобу дій Ñ” забезпеченнÑ\n"
-"Ñитуації, коли пароль буде відомий лише тому, хто ним кориÑтуєтьÑÑ.\n"
-"\n"
-"Правила щодо паролів IPA керують чаÑтотою зміни паролÑ, вимогами щодо\n"
-"ÑкладноÑÑ‚Ñ– Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ‚Ð° об’ємом журналу зміни паролів.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Щоб Ñкинути ваш влаÑний пароль, виконайте команду:\n"
-" ipa passwd\n"
-"\n"
-" Щоб змінити пароль іншого кориÑтувача, виконайте команду:\n"
-" ipa passwd tuser1\n"
-
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-"\n"
-" Ð’Ñтановити пароль кориÑтувача\n"
-" "
+msgstr "\nÐ’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача\n\nЯкщо ÑкаÑÑŒ ÑÑ‚Ð¾Ñ€Ð¾Ð½Ð½Ñ Ð¾Ñоба змінює пароль кориÑтувача (наприклад його\nвідновлює допоміжний перÑонал), новий пароль має бути змінено під\nÑ‡Ð°Ñ Ð¹Ð¾Ð³Ð¾ першого викориÑтаннÑ. Метою такого ÑпоÑобу дій Ñ” забезпеченнÑ\nÑитуації, коли пароль буде відомий лише тому, хто ним кориÑтуєтьÑÑ.\n\nПравила щодо паролів IPA керують чаÑтотою зміни паролÑ, вимогами щодо\nÑкладноÑÑ‚Ñ– Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ‚Ð° об’ємом журналу зміни паролів.\n\nПРИКЛÐДИ:\n\n Щоб Ñкинути ваш влаÑний пароль, виконайте команду:\n ipa passwd\n\n Щоб змінити пароль іншого кориÑтувача, виконайте команду:\n ipa passwd tuser1\n"
#: ipalib/plugins/passwd.py:64
+msgid "Set a user's password."
+msgstr "Ð’Ñтановити пароль кориÑтувача."
+
+#: ipalib/plugins/passwd.py:88
+#, python-format
msgid "Changed password for \"%(value)s\""
msgstr "Змінити пароль «%(value)s»"
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
-msgstr ""
-"\n"
-" Виконати дію passwd.\n"
-"\n"
-" dn не Ñлід передавати Ñк аргумент ключового Ñлова піÑÐ»Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð¸\n"
-" цим методом.\n"
-"\n"
-" Повертає запиÑ\n"
-"\n"
-" :параметр principal: реєÑтраційне Ñ–Ð¼â€™Ñ Ð°Ð±Ð¾ оÑновні дані кориÑтувача;\n"
-" :параметр password: новий пароль.\n"
-" "
-
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -6618,230 +5773,104 @@ msgid ""
"\n"
" Add a permission that grants the ability to manage group membership:\n"
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
-msgstr ""
-"\n"
-"Права доÑтупу\n"
-"\n"
-"Права доÑтупу надають змогу точно налаштувати уповноваженнÑ. Права доÑтупу\n"
-"визначаютьÑÑ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ текÑтом у форматі правила ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом 389-ds\n"
-"або інÑтрукції (ACI). Права доÑтупу надають можливіÑÑ‚ÑŒ виконувати певне\n"
-"завданнÑ, зокрема Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача, внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑу\n"
-"групи.\n"
-"\n"
-"Права доÑтупу можуть міÑтити інші права доÑтупу.\n"
-"\n"
-"* Право доÑтупу надає доÑтуп до читаннÑ, запиÑу, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вилученнÑ.\n"
-"* Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑŽÑ‚ÑŒ у Ñобі подібні права доÑтупу (наприклад вÑÑ–\n"
-" права доÑтупу, потрібні Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача).\n"
-"* Роль надає кориÑтувачам, групам, вузлам або групам вузлів певний набір\n"
-" уповноважень.\n"
-"\n"
-"Право доÑтупу ÑкладаєтьÑÑ Ð· декількох різних чаÑтин:\n"
-"\n"
-"1. Ðазви права доÑтупу.\n"
-"2. ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу.\n"
-"3. Прав, Ñкі надаютьÑÑ.\n"
-"\n"
-"Права визначають набір дозволених дій Ñ– можуть ÑкладатиÑÑ Ð· одного або\n"
-"декількох таких запиÑів:\n"
-"1. write — Ð·Ð°Ð¿Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів\n"
-"2. read — Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів\n"
-"3. add — Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу до ієрархії\n"
-"4. delete — Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñтвореного запиÑу\n"
-"5. all — Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… прав доÑтупу\n"
-"\n"
-"Типово, право доÑтупу до Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ– атрибутів, отже\n"
-"право доÑтупу «read» не викориÑтовуватиметьÑÑ Ñ‡Ð°Ñто.\n"
-"\n"
-"Ð—Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ відмінноÑтей між атрибутами та запиÑами. Права доÑтупу\n"
-"Ñ” незалежними, отже можливіÑÑ‚ÑŒ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача не означає\n"
-"можливоÑÑ‚Ñ– вноÑити зміни до доданого запиÑу.\n"
-"\n"
-"Передбачено декілька можливих цілей:\n"
-"1. type: тип об’єкта (user, group тощо).\n"
-"2. memberof: учаÑник групи кориÑтувачів або вузлів\n"
-"3. filter: фільтр LDAP\n"
-"4. subtree: фільтр LDAP, що визначає чаÑтину DIT LDAP DIT. Ðадмножина\n"
-" цілі «type».\n"
-"5. targetgroup: надати доÑтуп до внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑу певної групи\n"
-" (зокрема до ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі)\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів:\n"
-" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до можливоÑÑ‚Ñ– ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі:\n"
-" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
+msgstr "\nПрава доÑтупу\n\nПрава доÑтупу надають змогу точно налаштувати уповноваженнÑ. Права доÑтупу\nвизначаютьÑÑ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ текÑтом у форматі правила ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом 389-ds\nабо інÑтрукції (ACI). Права доÑтупу надають можливіÑÑ‚ÑŒ виконувати певне\nзавданнÑ, зокрема Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача, внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑу\nгрупи.\n\nПрава доÑтупу можуть міÑтити інші права доÑтупу.\n\n* Право доÑтупу надає доÑтуп до читаннÑ, запиÑу, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вилученнÑ.\n* Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑŽÑ‚ÑŒ у Ñобі подібні права доÑтупу (наприклад вÑÑ–\n права доÑтупу, потрібні Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача).\n* Роль надає кориÑтувачам, групам, вузлам або групам вузлів певний набір\n уповноважень.\n\nПраво доÑтупу ÑкладаєтьÑÑ Ð· декількох різних чаÑтин:\n\n1. Ðазви права доÑтупу.\n2. ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу.\n3. Прав, Ñкі надаютьÑÑ.\n\nПрава визначають набір дозволених дій Ñ– можуть ÑкладатиÑÑ Ð· одного або\nдекількох таких запиÑів:\n1. write — Ð·Ð°Ð¿Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів\n2. read — Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох атрибутів\n3. add — Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу до ієрархії\n4. delete — Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñтвореного запиÑу\n5. all — Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… прав доÑтупу\n\nТипово, право доÑтупу до Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ– атрибутів, отже\nправо доÑтупу «read» не викориÑтовуватиметьÑÑ Ñ‡Ð°Ñто.\n\nÐ—Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ відмінноÑтей між атрибутами та запиÑами. Права доÑтупу\nÑ” незалежними, отже можливіÑÑ‚ÑŒ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача не означає\nможливоÑÑ‚Ñ– вноÑити зміни до доданого запиÑу.\n\nПередбачено декілька можливих цілей:\n1. type: тип об’єкта (user, group тощо).\n2. memberof: учаÑник групи кориÑтувачів або вузлів\n3. filter: фільтр LDAP\n4. subtree: фільтр LDAP, що визначає чаÑтину DIT LDAP DIT. Ðадмножина\n цілі «type».\n5. targetgroup: надати доÑтуп до внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑу певної групи\n (зокрема до ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі)\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів:\n ipa permission-add --type=user --permissions=add \"Add Users\"\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до можливоÑÑ‚Ñ– ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі:\n ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr "Тип прав доÑтупу"
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт прав доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr "права доÑтупу"
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
+msgstr "права доÑтупу"
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr "Ðазва прав доÑтупу"
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
-msgstr ""
-"Відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write, add,"
-" delete, all)"
+msgstr "Відокремлений комами ÑпиÑок прав доÑтупу, Ñкі Ñлід надати (read, write, add, delete, all)"
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
-msgstr ""
-"Тип об’єкта IPA (user (кориÑтувач), group (група), host (вузол), hostgroup "
-"(група вузлів), service (Ñлужба), netgroup (група у мережі), dns)"
+msgstr "Тип об’єкта IPA (user (кориÑтувач), group (група), host (вузол), hostgroup (група вузлів), service (Ñлужба), netgroup (мережева група), dns)"
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr "УчаÑник групи"
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr "Цільові учаÑники групи"
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr "Піддерево, до Ñкого буде заÑтоÑовано права доÑтупу"
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr "Група кориÑтувачів, до Ñкої буде заÑтоÑовано права доÑтупу"
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
-msgstr ""
-"\n"
-" Додати нові права доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
+msgstr "Додати нові права доÑтупу."
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr "Додано права доÑтупу «%(value)s»"
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити права доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
+msgstr "Вилучити права доÑтупу."
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr "Вилучено права доÑтупу «%(value)s»"
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
-msgstr ""
-"\n"
-" Змінити права доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
+msgstr "Змінити права доÑтупу."
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr "Змінено права доÑтупу «%(value)s»"
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
-msgstr ""
-"\n"
-" Знайти права доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
+msgstr "Знайти права доÑтупу."
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d запиÑу"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d запиÑів"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d запиÑів"
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо прав доÑтупу.\n"
-" "
-
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до запиÑу прав доÑтупу.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
+msgstr "Показати дані щодо прав доÑтупу."
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з запиÑу прав доÑтупу.\n"
-" "
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
-msgstr ""
-"\n"
-"Перевірити луна-імпульÑом (пінгом) віддалений Ñервер IPA\n"
+msgstr "\nПеревірити луна-імпульÑом (пінгом) віддалений Ñервер IPA\n"
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
-"\n"
-" Перевірити луна-імпульÑом (пінгом) віддалений Ñервер\n"
-" "
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-"\n"
-" Можливим покращеннÑм могло б бути Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ з\n"
-" наÑтупним його виведеннÑм, але зараз працює Ñ– фікÑоване значеннÑ.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
+msgstr "Перевірити луна-імпульÑом (пінгом) віддалений Ñервер."
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -6861,61 +5890,21 @@ msgid ""
"For more information on anonymous pkinit see:\n"
"\n"
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-msgstr ""
-"\n"
-"Параметри pkinit Kerberos\n"
-"\n"
-"Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit за допомогою реєÑтраційного\n"
-"запиÑу WELLKNOWN/ANONYMOUS@REALM. Має бути вÑтановлено Ñервер з\n"
-"підтримкою pkinit.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit:\n"
-" ipa pkinit-anonymous enable\n"
-"\n"
-" Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit:\n"
-" ipa pkinit-anonymous disable\n"
-"\n"
-"Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про анонімний pkinit відвідайте цю Ñторінку:\n"
-"\n"
-"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr "\nПараметри pkinit Kerberos\n\nÐ’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit за допомогою реєÑтраційного\nзапиÑу WELLKNOWN/ANONYMOUS@REALM. Має бути вÑтановлено Ñервер з\nпідтримкою pkinit.\n\nПРИКЛÐДИ:\n\n Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit:\n ipa pkinit-anonymous enable\n\n Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ pkinit:\n ipa pkinit-anonymous disable\n\nЩоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про анонімний pkinit відвідайте цю Ñторінку:\n\nhttp://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
-msgstr ""
-"\n"
-" Параметри PKINIT\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
+msgstr "pkinit"
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr "PKINIT"
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-"\n"
-" Приймає лише Enable/Disable.\n"
-" "
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
-msgstr ""
-"\n"
-" Увімкнути або вимкнути анонімний PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
+msgstr "Увімкнути або вимкнути анонімний PKINIT."
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -6936,42 +5925,25 @@ msgid ""
"A privilege may not contain other privileges.\n"
"\n"
"See role and permission for additional information.\n"
-msgstr ""
-"\n"
-"УповноваженнÑ\n"
-"\n"
-"Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑ” права доÑтупу у одне логічне завданнÑ. Право доÑтупу\n"
-"надає можливіÑÑ‚ÑŒ виконувати лише одне завданнÑ. У IPA Ñ” декілька дій,\n"
-"Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких потребує одразу декількох прав доÑтупу. Ð’ уповноваженні такі\n"
-"права доÑтупу поєднуютьÑÑ Ð· метою Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— дії.\n"
-"\n"
-"Ðаприклад, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача потребує таких прав доÑтупу:\n"
-" * право ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача;\n"
-" * право ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача;\n"
-" * право Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача до типової групи кориÑтувачів IPA.\n"
-"\n"
-"ÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… трьох низькорівневих завдань у виÑокорівневе Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ\n"
-"форматі ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð· назвою «Add User» полегшує ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð»Ñми.\n"
-"\n"
-"Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ може міÑтити інших уповноважень.\n"
-"\n"
-"Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ð· довідною щодо ролей та прав доÑтупу.\n"
+msgstr "\nУповноваженнÑ\n\nÐ£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑ” права доÑтупу у одне логічне завданнÑ. Право доÑтупу\nнадає можливіÑÑ‚ÑŒ виконувати лише одне завданнÑ. У IPA Ñ” декілька дій,\nÐ²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких потребує одразу декількох прав доÑтупу. Ð’ уповноваженні такі\nправа доÑтупу поєднуютьÑÑ Ð· метою Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— дії.\n\nÐаприклад, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача потребує таких прав доÑтупу:\n * право ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача;\n * право ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача;\n * право Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача до типової групи кориÑтувачів IPA.\n\nÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… трьох низькорівневих завдань у виÑокорівневе Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ\nформаті ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð· назвою «Add User» полегшує ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð»Ñми.\n\nÐ£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ може міÑтити інших уповноважень.\n\nЩоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ð· довідною щодо ролей та прав доÑтупу.\n"
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт уповноважень.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr "уповноваженнÑ"
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
+msgstr "уповноваженнÑ"
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr "УповноваженнÑ"
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr "УповноваженнÑ"
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr "Ðазва уповноваженнÑ"
@@ -6980,123 +5952,69 @@ msgid "Privilege description"
msgstr "ÐžÐ¿Ð¸Ñ ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ"
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
-msgstr ""
-"\n"
-" Додати нове уповноваженнÑ.\n"
-" "
+msgid "Add a new privilege."
+msgstr "Додати нове уповноваженнÑ."
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr "Додано ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
+msgstr "Вилучити уповноваженнÑ."
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr "Вилучено ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Змінити уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
+msgstr "Змінити уповноваженнÑ."
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr "Змінено ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
-msgstr ""
-"\n"
-" Знайти уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
+msgstr "Знайти уповноваженнÑ."
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноваженнÑ"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноваженнÑ"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d уповноважень"
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо уповноваженнÑ.\n"
-" "
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до запиÑу уповноваженнÑ\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
+msgstr "Показати дані щодо уповноваженнÑ."
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з запиÑу уповноваженнÑ\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
+msgstr "Додати учаÑників до запиÑу уповноваженнÑ."
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Додати права доÑтупу до уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
+msgstr "Додати права доÑтупу до уповноваженнÑ."
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr "КількіÑÑ‚ÑŒ доданих прав доÑтупу"
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити права доÑтупу з уповноваженнÑ.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
+msgstr "Вилучити права доÑтупу з уповноваженнÑ."
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr "КількіÑÑ‚ÑŒ вилучених запиÑів прав доÑтупу"
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -7139,237 +6057,146 @@ msgid ""
"\n"
" Modify a group password policy:\n"
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
-msgstr ""
-"\n"
-"Правила паролів\n"
-"\n"
-"Правила паролів вÑтановлюють Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² IPA,\n"
-"зокрема макÑимальний Ñтрок дії, мінімальний Ñтрок дії, кількіÑÑ‚ÑŒ паролів,\n"
-"Ñкі зберігатимутьÑÑ Ñƒ журналі, потрібна кількіÑÑ‚ÑŒ клаÑів Ñимволів (длÑ\n"
-"Ñкладних паролів) та мінімальну довжину паролÑ.\n"
-"\n"
-"Типово, визначено одні загальні правила Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів. Ви можете\n"
-"Ñтворити правило паролів, Ñке ÑтоÑуватиметьÑÑ Ð¾Ð´Ð½Ñ–Ñ”Ñ— групи. Ð”Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾\n"
-"кориÑтувача може бути викориÑтано лише один набір правил паролів: груповий\n"
-"або загальний. Групові правила паролів є незалежними, вони не є загальними\n"
-"правилами з додаваннÑм нетипових параметрів.\n"
-"\n"
-"Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ набору групових правил паролів має бути вÑтановлено окреме\n"
-"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ñƒ. Якщо кориÑтувач Ñ” учаÑником декількох груп, Ð´Ð»Ñ Ñких\n"
-"вÑтановлено правила паролів, пріоритет визначає, Ñкі з правил має бути\n"
-"заÑтоÑовано. Менші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ вищому пріоритету правил.\n"
-"\n"
-"Групові правила паролів автоматично вилучаютьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ\n"
-"відповідних груп.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до загальних правил:\n"
-" ipa pwpolicy-mod --minlength=10\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… групових правил паролів:\n"
-" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n"
-"\n"
-" Показ загальних правил паролів:\n"
-" ipa pwpolicy-show\n"
-"\n"
-" Показ групових правил паролів:\n"
-" ipa pwpolicy-show localadmins\n"
-"\n"
-" Показ правил, Ñкі має бути заÑтоÑовано до певного кориÑтувача:\n"
-" ipa pwpolicy-show --user=tuser1\n"
-"\n"
-" ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до групових правил паролів:\n"
-" ipa pwpolicy-mod --minclasses=2 localadmins\n"
-
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
-msgstr ""
-"\n"
-" ÐšÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Service, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²â€™Ñзки правил до груп\n"
-" "
+msgstr "\nПравила паролів\n\nПравила паролів вÑтановлюють Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² IPA,\nзокрема макÑимальний Ñтрок дії, мінімальний Ñтрок дії, кількіÑÑ‚ÑŒ паролів,\nÑкі зберігатимутьÑÑ Ñƒ журналі, потрібна кількіÑÑ‚ÑŒ клаÑів Ñимволів (длÑ\nÑкладних паролів) та мінімальну довжину паролÑ.\n\nТипово, визначено одні загальні правила Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів. Ви можете\nÑтворити правило паролів, Ñке ÑтоÑуватиметьÑÑ Ð¾Ð´Ð½Ñ–Ñ”Ñ— групи. Ð”Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾\nкориÑтувача може бути викориÑтано лише один набір правил паролів: груповий\nабо загальний. Групові правила паролів Ñ” незалежними, вони не Ñ” загальними\nправилами з додаваннÑм нетипових параметрів.\n\nÐ”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ набору групових правил паролів має бути вÑтановлено окреме\nÐ·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ñƒ. Якщо кориÑтувач Ñ” учаÑником декількох груп, Ð´Ð»Ñ Ñких\nвÑтановлено правила паролів, пріоритет визначає, Ñкі з правил має бути\nзаÑтоÑовано. Менші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ вищому пріоритету правил.\n\nГрупові правила паролів автоматично вилучаютьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ\nвідповідних груп.\n\nПРИКЛÐДИ:\n\n ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до загальних правил:\n ipa pwpolicy-mod --minlength=10\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… групових правил паролів:\n ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --minlength=8 --priority=10 localadmins\n\n Показ загальних правил паролів:\n ipa pwpolicy-show\n\n Показ групових правил паролів:\n ipa pwpolicy-show localadmins\n\n Показ правил, Ñкі має бути заÑтоÑовано до певного кориÑтувача:\n ipa pwpolicy-show --user=tuser1\n\n ВнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до групових правил паролів:\n ipa pwpolicy-mod --minclasses=2 localadmins\n"
-#: ipalib/plugins/pwpolicy.py:87
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
-msgstr ""
-"пріоритет повинен мати унікальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%(prio)d вже викориÑтано Ð´Ð»Ñ "
-"%(gname)s)"
+msgstr "пріоритет повинен мати унікальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%(prio)d вже викориÑтано Ð´Ð»Ñ %(gname)s)"
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²\n"
-" "
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
+msgstr "правила Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²"
+
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
+msgstr "правила щодо паролів"
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr "МакÑ. к-Ñ‚ÑŒ помилок"
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr "КількіÑÑ‚ÑŒ помилок Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr "Проміжок ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
-msgstr ""
-"Проміжок чаÑу, по завершенню Ñкого кількіÑÑ‚ÑŒ помилок буде Ñкинуто (у "
-"Ñекундах)"
+msgstr "Проміжок чаÑу, по завершенню Ñкого кількіÑÑ‚ÑŒ помилок буде Ñкинуто (у Ñекундах)"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr "ТриваліÑÑ‚ÑŒ блокуваннÑ"
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr "Проміжок чаÑу, протÑгом Ñкого діÑтиме Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (у Ñекундах)"
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr "Правила щодо паролів"
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr "Група"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸ обробки паролів Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— групи"
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr "МакÑ. Ñтрок дії (у днÑÑ…)"
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr "МакÑимальний Ñтрок дії Ð¿Ð°Ñ€Ð¾Ð»Ñ (у днÑÑ…)"
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr "Мін. Ñтрок дії (у годинах)"
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr "Мінімальний Ñтрок дії Ð¿Ð°Ñ€Ð¾Ð»Ñ (у годинах)"
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr "Розмір журналу"
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr "Розмір журналу паролів"
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr "КлаÑи Ñимволів"
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr "Мінімальна кількіÑÑ‚ÑŒ клаÑів Ñимволів"
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr "Мін. довжина"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr "Мінімальна довжина паролÑ"
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr "Пріоритет"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr "Пріоритет правил (більше чиÑло — нижчий пріоритет)"
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-"\n"
-" ПереконуємоÑÑ, що макÑимальний Ñтрок дії Ñ” більшим за мінімальний.\n"
-" Якщо мінімального Ñтроку не вÑтановлено, не повертаємо помилки.\n"
-" "
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
-msgstr ""
-"МакÑимальний Ñтрок дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¼Ð°Ñ” перевищувати мінімальний Ñтрок його дії."
+msgstr "МакÑимальний Ñтрок дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¼Ð°Ñ” перевищувати мінімальний Ñтрок його дії."
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð².\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
+msgstr "Додати нову групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð².\n"
-" "
+msgid "Delete a group password policy."
+msgstr "Вилучити групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð².\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
+msgstr "неможливо вилучити загальні правила паролів"
+
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
+msgstr "Змінити групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
-#: ipalib/plugins/pwpolicy.py:391
+#: ipalib/plugins/pwpolicy.py:397
msgid "priority cannot be set on global policy"
msgstr "Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… правил не може вÑтановлювати пріоритети"
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо групи правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð².\n"
-" "
-
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr "Показати дані щодо групи правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr "КориÑтувач"
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr "Показати поточні правила Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ кориÑтувача"
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
-msgstr ""
-"\n"
-" Знайти групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð².\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
+msgstr "Знайти групу правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -7404,59 +6231,21 @@ msgid ""
"\n"
" The result of this is that any users in the group 'useradmins' can\n"
" add users, reset passwords or add a user to the default IPA user group.\n"
-msgstr ""
-"\n"
-"Ролі\n"
-"\n"
-"Роль викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑƒÑ‚Ð¾Ñ‡Ð½ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу. Право доÑтупу\n"
-"надає можливіÑÑ‚ÑŒ виконувати деÑкі низькорівневі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу\n"
-"кориÑтувача, внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до групи тощо). Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑŽÑ‚ÑŒ одне або декілька\n"
-"прав доÑтупу у виÑокорівневу абÑтракцію, наприклад «адмініÑтратор кориÑтувачів»\n"
-"(useradmin). Такий useradmin зможе додавати, вилучати Ñ– вноÑити зміни до запиÑів\n"
-"кориÑтувачів.\n"
-"\n"
-"Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²â€™ÑзуютьÑÑ Ð· ролÑми.\n"
-"\n"
-"УчаÑниками ролі можуть бути кориÑтувачі, групи, вузли та групи вузлів.\n"
-"\n"
-"Ролі можуть міÑтити інші ролі.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— ролі:\n"
-" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½ÑŒ до ролі:\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"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів до ролі:\n"
-" ipa group-add --desc=\"User admins\" useradmins\n"
-" ipa role-add-member --groups=useradmins junioradmin\n"
-"\n"
-" Показ даних щодо ролі:\n"
-" ipa role-show junioradmin\n"
-"\n"
-" Результатом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ буде те, що вÑÑ– кориÑтувачі групи «useradmins»\n"
-" зможуть додавати запиÑи кориÑтувачів, Ñкидати паролі або додавати кориÑтувача\n"
-" до типової групи кориÑтувачів IPA.\n"
+msgstr "\nРолі\n\nРоль викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑƒÑ‚Ð¾Ñ‡Ð½ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу. Право доÑтупу\nнадає можливіÑÑ‚ÑŒ виконувати деÑкі низькорівневі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу\nкориÑтувача, внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до групи тощо). Ð£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ”Ð´Ð½ÑƒÑŽÑ‚ÑŒ одне або декілька\nправ доÑтупу у виÑокорівневу абÑтракцію, наприклад «адмініÑтратор кориÑтувачів»\n(useradmin). Такий useradmin зможе додавати, вилучати Ñ– вноÑити зміни до запиÑів\nкориÑтувачів.\n\nÐ£Ð¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²â€™ÑзуютьÑÑ Ð· ролÑми.\n\nУчаÑниками ролі можуть бути кориÑтувачі, групи, вузли та групи вузлів.\n\nРолі можуть міÑтити інші ролі.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— ролі:\n ipa role-add --desc=\"Junior-level admin\" junioradmin\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½ÑŒ до ролі:\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\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів до ролі:\n ipa group-add --desc=\"User admins\" useradmins\n ipa role-add-member --groups=useradmins junioradmin\n\n Показ даних щодо ролі:\n ipa role-show junioradmin\n\n Результатом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ буде те, що вÑÑ– кориÑтувачі групи «useradmins»\n зможуть додавати запиÑи кориÑтувачів, Ñкидати паролі або додавати кориÑтувача\n до типової групи кориÑтувачів IPA.\n"
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт ролі.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
+msgstr "роль"
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr "ролі"
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr "Роль"
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr "Ðазва ролі"
@@ -7465,123 +6254,73 @@ msgid "A description of this role-group"
msgstr "ÐžÐ¿Ð¸Ñ Ñ†Ñ–Ñ”Ñ— групи ролей"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову роль.\n"
-" "
+msgid "Add a new role."
+msgstr "Додати нову роль."
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr "Додано роль «%(value)s»"
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити роль.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
+msgstr "Вилучити роль."
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr "Вилучено роль «%(value)s»"
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
-msgstr ""
-"\n"
-" Змінити роль.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
+msgstr "Змінити роль."
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr "Змінено роль «%(value)s»"
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
-msgstr ""
-"\n"
-" Знайти ролі.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
+msgstr "Знайти ролі."
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ролі"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ролей"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ролей"
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо ролі.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
+msgstr "Показати дані щодо ролі."
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до запиÑу ролі.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
+msgstr "Додати учаÑників до запиÑу ролі."
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з запиÑу ролі.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
+msgstr "Вилучити учаÑників з запиÑу ролі."
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
-msgstr ""
-"\n"
-" Додати ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ запиÑу ролі.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
+msgstr "Додати ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ запиÑу ролі."
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr "КількіÑÑ‚ÑŒ доданих уповноважень"
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð· запиÑу ролі.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
+msgstr "Вилучити ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð· запиÑу ролі."
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr "КількіÑÑ‚ÑŒ вилучених уповноважень"
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -7607,143 +6346,77 @@ msgid ""
"\n"
" Delete a rule:\n"
" ipa selfservice-del \"Users manage their own address\"\n"
-msgstr ""
-"\n"
-"Права доÑтупу ÑамообÑлуговуваннÑ\n"
-"\n"
-"Права доÑтупу надають змогу точно налаштувати уповноваженнÑ. За допомогою\n"
-"правил ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом та інÑтрукцій (ACI) надаютьÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до\n"
-"Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… завдань, зокрема Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів,\n"
-"внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑів груп тощо.\n"
-"\n"
-"Права доÑтупу ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ права об’єкта на внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½\n"
-"до влаÑного запиÑу.\n"
-"\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами\n"
-" влаÑною адреÑою:\n"
-" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n"
-"\n"
-" Якщо ви керуєте ÑпиÑком атрибутів, вам Ñлід включити до ÑпиÑку вÑÑ– атрибути,\n"
-" зокрема вже Ñтворені. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ telephoneNumber до ÑпиÑку:\n"
-" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n"
-"\n"
-" Показ нашого оновленого правила:\n"
-" ipa selfservice-show \"Users manage their own address\"\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°:\n"
-" ipa selfservice-del \"Users manage their own address\"\n"
-
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-"\n"
-" Визначаємо, чи ACI належить до ACI ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– повідомлÑємо про виключеннÑ,\n"
-" Ñкщо це не так.\n"
-"\n"
-" Повертаємо результат, Ñкщо це ACI ÑамообÑлуговуваннÑ.\n"
-" "
+msgstr "\nПрава доÑтупу ÑамообÑлуговуваннÑ\n\nПрава доÑтупу надають змогу точно налаштувати уповноваженнÑ. За допомогою\nправил ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом та інÑтрукцій (ACI) надаютьÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупу до\nÐ²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… завдань, зокрема Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів кориÑтувачів,\nвнеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до запиÑів груп тощо.\n\nПрава доÑтупу ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ права об’єкта на внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½\nдо влаÑного запиÑу.\n\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами\n влаÑною адреÑою:\n ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st \"Users manage their own address\"\n\n Якщо ви керуєте ÑпиÑком атрибутів, вам Ñлід включити до ÑпиÑку вÑÑ– атрибути,\n зокрема вже Ñтворені. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ telephoneNumber до ÑпиÑку:\n ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber \"Users manage their own address\"\n\n Показ нашого оновленого правила:\n ipa selfservice-show \"Users manage their own address\"\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°:\n ipa selfservice-del \"Users manage their own address\"\n"
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr "Права доÑтупу ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(permission)s» не знайдено"
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт ÑамообÑлуговуваннÑ.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
+msgstr "права доÑтупу автоÑлужби"
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr "права доÑтупу до автоÑлужби"
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr "Права доÑтупу до ÑамообÑлуговуваннÑ"
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
+msgstr "Права доÑтупу автоÑлужби"
+
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
msgid "Self-service name"
msgstr "Ðазва ÑамообÑлуговуваннÑ"
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
-msgstr ""
-"\n"
-" Додати нові права доÑтупу ÑамообÑлуговуваннÑ.\n"
-" "
-
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr "Додати нові права доÑтупу автоÑлужби."
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr "Додано ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити права доÑтупу ÑамообÑлуговуваннÑ.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
+msgstr "Вилучити права доÑтупу автоÑлужби."
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr "Вилучено ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
-msgstr ""
-"\n"
-" Змінити права доÑтупу ÑамообÑлуговуваннÑ.\n"
-" "
+msgid "Modify a self-service permission."
+msgstr "Змінити права доÑтупу автоÑлужби."
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr "Змінено ÑамообÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«%(value)s»"
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
-msgstr ""
-"\n"
-" Шукати права доÑтупу ÑамообÑлуговуваннÑ.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
+msgstr "Шукати права доÑтупу автоÑлужби."
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ÑамообÑлуговуваннÑ"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ÑамообÑлуговуваннÑ"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d ÑамообÑлуговувань"
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо прав доÑтупу ÑамообÑлуговуваннÑ.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
+msgstr "Показати дані щодо прав доÑтупу автоÑлужби."
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -7794,211 +6467,85 @@ msgid ""
" Generate and retrieve a keytab for an IPA service:\n"
" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n"
"\n"
-msgstr ""
-"\n"
-"Служби\n"
-"\n"
-"Служба IPA — Ñлужба, Ñка виконуєтьÑÑ Ð½Ð° вузлі. Ð—Ð°Ð¿Ð¸Ñ Ñлужби IPA\n"
-"може зберігати реєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Kerberos, Ñертифікат SSL або те Ñ–\n"
-"і інше.\n"
-"\n"
-"Службою IPA можна керувати безпоÑередньо з певного комп’ютера, Ñкщо\n"
-"цьому комп’ютеру надано належні права доÑтупу. Таке ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð°\n"
-"виконувати навіть з комп’ютерів, не пов’Ñзаних з відповідною Ñлужбою.\n"
-"Ðаприклад, ви можете надіÑлати запит щодо Ñертифіката SSL за допомогою\n"
-"реєÑтраційних даних запиÑу Ñлужби вузла. Ð”Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñлужбою за\n"
-"допомогою реєÑтраційних даних вузла вам Ñлід запуÑтити kinit від імені\n"
-"відповідного вузла:\n"
-"\n"
-" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
-"\n"
-"Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñлужби IPA надає змогу пов’Ñзаній Ñлужбі надÑилати запити щодо\n"
-"Ñертифіката SSL або таблиці ключів, але це Ñлід виконувати Ñк окремий\n"
-"крок: доÑтуп до цих даних не Ñ” прÑмим результатом Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñлужби.\n"
-"\n"
-"У запиÑÑ– Ñлужби зберігаєтьÑÑ Ð»Ð¸ÑˆÐµ відкрита чаÑтина даних Ñертифіката;\n"
-"закритий ключ не зберігаєтьÑÑ.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— Ñлужби IPA:\n"
-" ipa service-add HTTP/web.example.com\n"
-"\n"
-" ÐÐ°Ð´Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ñƒ доÑтупу до ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифікатом Ñлужби IPA:\n"
-" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
-" ipa role-add-member --hosts=web.example.com certadmin\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñлужби IPA:\n"
-" ipa service-del HTTP/web.example.com\n"
-"\n"
-" Пошук вÑÑ–Ñ… Ñлужб IPA, пов’Ñзаних з вузлом:\n"
-" ipa service-find web.example.com\n"
-"\n"
-" Пошук вÑÑ–Ñ… Ñлужб HTTP:\n"
-" ipa service-find HTTP\n"
-"\n"
-" Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ñлужби Kerberos Ñ– Ñертифіката SSL:\n"
-" ipa service-disable HTTP/web.example.com\n"
-"\n"
-" ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ щодо Ñертифіката Ð´Ð»Ñ Ñлужби IPA:\n"
-" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ключів Ð´Ð»Ñ Ñлужби IPA:\n"
-" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n"
-"\n"
+msgstr "\nСлужби\n\nСлужба IPA — Ñлужба, Ñка виконуєтьÑÑ Ð½Ð° вузлі. Ð—Ð°Ð¿Ð¸Ñ Ñлужби IPA\nможе зберігати реєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Kerberos, Ñертифікат SSL або те Ñ–\nÑ– інше.\n\nСлужбою IPA можна керувати безпоÑередньо з певного комп’ютера, Ñкщо\nцьому комп’ютеру надано належні права доÑтупу. Таке ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð°\nвиконувати навіть з комп’ютерів, не пов’Ñзаних з відповідною Ñлужбою.\nÐаприклад, ви можете надіÑлати запит щодо Ñертифіката SSL за допомогою\nреєÑтраційних даних запиÑу Ñлужби вузла. Ð”Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñлужбою за\nдопомогою реєÑтраційних даних вузла вам Ñлід запуÑтити kinit від імені\nвідповідного вузла:\n\n # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n\nÐ”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñлужби IPA надає змогу пов’Ñзаній Ñлужбі надÑилати запити щодо\nÑертифіката SSL або таблиці ключів, але це Ñлід виконувати Ñк окремий\nкрок: доÑтуп до цих даних не Ñ” прÑмим результатом Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñлужби.\n\nУ запиÑÑ– Ñлужби зберігаєтьÑÑ Ð»Ð¸ÑˆÐµ відкрита чаÑтина даних Ñертифіката;\nзакритий ключ не зберігаєтьÑÑ.\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— Ñлужби IPA:\n ipa service-add HTTP/web.example.com\n\n ÐÐ°Ð´Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ñƒ доÑтупу до ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифікатом Ñлужби IPA:\n ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n ipa role-add-member --hosts=web.example.com certadmin\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñлужби IPA:\n ipa service-del HTTP/web.example.com\n\n Пошук вÑÑ–Ñ… Ñлужб IPA, пов’Ñзаних з вузлом:\n ipa service-find web.example.com\n\n Пошук вÑÑ–Ñ… Ñлужб HTTP:\n ipa service-find HTTP\n\n Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Ñлужби Kerberos Ñ– Ñертифіката SSL:\n ipa service-disable HTTP/web.example.com\n\n ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ щодо Ñертифіката Ð´Ð»Ñ Ñлужби IPA:\n ipa cert-request --principal=HTTP/web.example.com example.csr\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ключів Ð´Ð»Ñ Ñлужби IPA:\n ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/httpd.keytab\n\n"
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
-msgstr ""
-"\n"
-" У поточній верÑÑ–Ñ— проÑто перевірити, чи належним Ñ” ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ base64.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
+msgstr "Ñлужба"
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
-msgstr ""
-"\n"
-" Ð’Ñтановлюємо окремі атрибути з деÑких полів Ñертифіката.\n"
-"\n"
-" entry_attrs Ñ” Ñловником запиÑу\n"
-"\n"
-" нічого не повертаємо\n"
-" "
-
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт Ñлужби.\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
+msgstr "Ñлужби"
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби"
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
-msgstr ""
-"\n"
-" Додати нову Ñлужбу IPA.\n"
-" "
-
#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
+msgstr "Додати нову Ñлужбу IPA."
+
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr "Додано Ñлужбу «%(value)s»"
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
-msgstr ""
-"примуÑове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ реєÑтраційного запиÑу, навіть Ñкщо назви немає у "
-"DNS"
+msgstr "примуÑове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ реєÑтраційного запиÑу, навіть Ñкщо назви немає у DNS"
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ñлужбу IPA.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
+msgstr "Вилучити Ñлужбу IPA."
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr "Вилучено Ñлужбу «%(value)s»"
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
-msgstr ""
-"\n"
-" Змінити вже Ñтворену Ñлужбу IPA.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
+msgstr "Змінити вже Ñтворену Ñлужбу IPA."
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr "Змінено Ñлужбу «%(value)s»"
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
-msgstr ""
-"\n"
-" Знайти Ñлужби IPA.\n"
-" "
+msgid "Search for IPA services."
+msgstr "Знайти Ñлужби IPA."
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d Ñлужби"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d Ñлужб"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d Ñлужб"
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо Ñлужби IPA.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
+msgstr "Показати дані щодо Ñлужби IPA."
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
-msgstr ""
-"\n"
-" Додати вузли, Ñкі можуть керувати цією Ñлужбою.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
+msgstr "Додати вузли, Ñкі можуть керувати цією Ñлужбою."
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вузли, Ñкі можуть керувати цією Ñлужбою.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
+msgstr "Вилучити вузли, Ñкі можуть керувати цією Ñлужбою."
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути ключ Kerberos Ñ– Ñертифікат SSL Ñлужби.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
+msgstr "Вимкнути ключ Kerberos Ñ– Ñертифікат SSL Ñлужби."
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr "Вимкнено Ñлужбу «%(value)s»"
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -8013,269 +6560,182 @@ msgid ""
" Remove a command\n"
" ipa sudocmd-del /usr/bin/less\n"
"\n"
-msgstr ""
-"\n"
-"Команди sudo\n"
-"\n"
-"Команди, викориÑтані Ñк будівельні блоки Ð´Ð»Ñ sudo\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу команди\n"
-" ipa sudocmd-add --desc='Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² журналу' /usr/bin/less\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸\n"
-" ipa sudocmd-del /usr/bin/less\n"
-"\n"
+msgstr "\nКоманди sudo\n\nКоманди, викориÑтані Ñк будівельні блоки Ð´Ð»Ñ sudo\n\nПРИКЛÐДИ:\n\n Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу команди\n ipa sudocmd-add --desc='Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² журналу' /usr/bin/less\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸\n ipa sudocmd-del /usr/bin/less\n\n"
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт команд sudo.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr "команди ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñм sudo"
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr "команда sudo"
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr "команди sudo"
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr "Команди sudo"
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr "Команда sudo"
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr "ÐžÐ¿Ð¸Ñ Ñ†Ñ–Ñ”Ñ— команди"
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
-msgstr ""
-"\n"
-" Створити Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sudo.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
+msgstr "Створити Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sudo."
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr "Додано команду sudo «%(value)s»"
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sudo.\n"
-" "
+msgid "Delete Sudo Command."
+msgstr "Вилучити Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sudo."
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr "Вилучено команду sudo «%(value)s»"
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
-msgstr ""
-"\n"
-" Змінити команду.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
+msgstr "Змінити команду sudo."
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr "Змінено команду sudo «%(value)s»"
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
-msgstr ""
-"\n"
-" Знайти команди.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
+msgstr "Знайти команди sudo."
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
-msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d команди sudo"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d команд sudo"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d команд sudo"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d команд sudo"
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
-msgstr ""
-"\n"
-" Показати команду sudo.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
+msgstr "Показати команду sudo."
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
-" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
-"\n"
-" Remove a Sudo command group:\n"
-" ipa sudocmdgroup-del admincmds\n"
-"\n"
-" Manage Sudo command group membership, commands:\n"
-" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
-"\n"
-" Manage Sudo command group membership, commands:\n"
-" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
-"\n"
-" Show a Sudo command group:\n"
-" ipa group-show localadmins\n"
-msgstr ""
-"\n"
-"Групи команд Sudo\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ команд Sudo.\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи команд Sudo:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸ команд Sudo:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі команд Sudo, команди:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ у групі команд Sudo, команди:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Показ групи команд Sudo:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
+msgstr "\nГрупи команд sudo\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð°Ð¼Ð¸ команд sudo.\n\nПРИКЛÐДИ:\n\n Додати нову групу команд sudo:\n ipa sudocmdgroup-add --desc='administrators commands' admincmds\n\n Вилучити групу команд sudo:\n ipa sudocmdgroup-del admincmds\n\n ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ групи команд sudo, команди:\n ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n\n ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°ÑÑ‚ÑŽ групи команд sudo, команди:\n ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n\n Показ групи команд sudo:\n ipa group-show localadmins\n"
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт групи sudo.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr "група команд sudo"
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
+msgstr "групи команд sudo"
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr "Група команд sudo"
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
-msgstr ""
-"\n"
-" Створити групу команд sudo.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
+msgstr "Створити групу команд sudo."
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr "Додано групу команд sudo «%(value)s»"
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу команд sudo.\n"
-" "
+msgid "Delete Sudo Command Group."
+msgstr "Вилучити групу команд sudo."
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr "Вилучено групу команд sudo «%(value)s»"
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
-msgstr ""
-"\n"
-" Змінити групу.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
+msgstr "Змінити групу команд sudo."
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr "Змінено групу команд sudo «%(value)s»"
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
-msgstr ""
-"\n"
-" Шукати групи команд sudo.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
+msgstr "Шукати групи команд sudo."
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
-msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи команди sudo"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d групи команд sudo"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп команд sudo"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d груп команд sudo"
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
+msgstr "Показати групу команд sudo."
+
#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
-msgstr ""
-"\n"
-" Показати групу команд sudo.\n"
-" "
+msgid "Add members to Sudo Command Group."
+msgstr "Додати учаÑників до групи команд sudo."
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
-msgstr ""
-"\n"
-" Додати учаÑників до групи команд sudo.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
+msgstr "Вилучити учаÑників з групи команд sudo."
-#: ipalib/plugins/sudocmdgroup.py:152
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
-" Remove members from sudo command group.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити учаÑників з групи команд sudo.\n"
-" "
-
-#: ipalib/plugins/sudorule.py:19
-msgid ""
+"Sudo Rules\n"
"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -8283,300 +6743,245 @@ msgid ""
"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
"For more information, see the FreeIPA Documentation to Sudo.\n"
-msgstr ""
-"\n"
-"За допомогою sudo (su \"do\") адмініÑтратор ÑиÑтеми може надати\n"
-"ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ð¼ кориÑтувачам (або групам кориÑтувачів)\n"
-"можливіÑÑ‚ÑŒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´ÐµÑких (або вÑÑ–Ñ…) команд від імені root\n"
-"або іншого кориÑтувача з веденнÑм ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° командами та\n"
-"аргументами цих команд.\n"
-"\n"
-"У FreeIPA передбачено призначений binddn Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· sudo:\n"
-"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
-"\n"
-"Що уможливити binddn, віддайте таку команду зі вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ:\n"
-"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
-"\n"
-"Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ð· документацією FreeIPA щодо sudo.\n"
+msgstr "\nПравила sudo\n\nSudo (su \"do\") надає змогу адмініÑтраторові ÑиÑтеми уповноважити\nпевних кориÑтувачів (або групи кориÑтувачів) на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… (або\nвÑÑ–Ñ…) команд від імені адмініÑтратора або іншого кориÑтувача зі\nзбереженнÑм можливоÑÑ‚Ñ– Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· журналом команд Ñ– аргументів.\n\nУ FreeIPA передбачено можливіÑÑ‚ÑŒ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¾Ð¼Ð°Ð½Ñ–Ñ‚Ð½Ð¸Ñ… аÑпектів\nроботи sudo:\n КориÑтувачі: кориÑтувачі Ñ– групи, Ñким можна викориÑтовувати sudo.\n Вузли: вузли Ñ– групи вузлів, кориÑтувачам Ñких можна викориÑтовувати sudo.\n Дозволена команда: команда, Ñку можна виконувати за допомогою sudo.\n Заборонена команда: команда, Ñку не можна виконувати за допомогою sudo.\n КориÑтувач запуÑку: кориÑтувач або група кориÑтувачів, від імені Ñких виконуєтьÑÑ sudo.\n Група запуÑку: група, з ідентифікатором Ñкої буде запущено sudo.\n Параметри: різноманітні параметри sudoers, Ñкі можуть змінювати поведінку sudo.\n\nFreeIPA надає підпиÑаний binddn Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· sudo з адреÑою:\nuid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n\nЩоб увімкнути binddn, виконайте таку команду Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ:\nLDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n\nДокладніші відомоÑÑ‚Ñ– можна знайти у документації до FreeIPA з sudo.\n"
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
-msgstr ""
-"\n"
-" ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸ sudo\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr "Команди ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñм sudo"
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr "цей параметр вважаєтьÑÑ Ð·Ð°Ñтарілим."
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr "правило sudo"
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr "правила sudo"
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr "Правила Sudo"
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr "Правило sudo"
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´"
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
-msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені кориÑтувача"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
+msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені кориÑтувачів"
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
-msgstr ""
-"ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені кориÑтувача, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
+msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені кориÑтувачів, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені групи"
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку від імені групи, до Ñкої заÑтоÑовуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾"
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
-msgstr "Команди дозволу sudo"
+msgstr "Дозволені команди sudo"
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
-msgstr "Команди заборони sudo"
+msgstr "Заборонені команди sudo"
+
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
+msgstr "Групи дозволених команд sudo"
+
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
+msgstr "Групи заборонених команд sudo"
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr "КориÑтувачі запуÑку від імені"
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
msgstr "ЗапуÑк від кориÑтувача"
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
-msgstr "ЗапуÑк від групи"
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr "Групи кориÑтувачів запуÑку від імені"
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr "ЗапуÑкати від імені будь-Ñкого кориÑтувача вказаної групи"
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr "Зовнішній кориÑтувач"
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
-msgstr "Зовнішній кориÑтувача, до Ñкого буде заÑтоÑовано правило"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
+msgstr "Зовнішній кориÑтувач, до Ñкого заÑтоÑовуватиметьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ (лише sudorule-find)"
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr "Зовнішній кориÑтувач Ð´Ð»Ñ RunAs"
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
-msgstr "Зовнішній кориÑтувач, від імені Ñкого можна віддавати команди"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
+msgstr "Зовнішній кориÑтувач, від імені Ñкого можна віддавати команди (лише sudorule-find)"
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð³Ñ€ÑƒÐ¿Ð° Ð´Ð»Ñ RunAs"
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
-msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð³Ñ€ÑƒÐ¿Ð°, від імені Ñкої можна віддавати команди"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
+msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð³Ñ€ÑƒÐ¿Ð°, від імені Ñкої можна віддавати команди (лише sudorule-find)"
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Створити правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
+msgstr "Пункт sudo"
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
+msgstr "Групи запуÑку від імені"
+
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
+msgstr "ЗапуÑкати з ідентифікатором вказаної групи POSIX"
+
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
+msgstr "Створити правило sudo."
+
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr "Додано правило sudo «%(value)s»"
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
+msgstr "Вилучити правило sudo."
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Змінити правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
+msgstr "Вилучено правило sudo «%(value)s»"
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Знайти правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
+msgstr "Змінити правило sudo."
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Показати правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
+msgstr "Змінено правило sudo «%(value)s»"
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
-msgstr ""
-"\n"
-" Увімкнути правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
+msgstr "Знайти правило sudo."
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути правило sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правила sudo"
+msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил sudo"
+msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d правил sudo"
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати команди Ñ– групи команд sudo, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
+msgstr "Показати правило sudo."
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити команди Ñ– групи команд sudo, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
+msgstr "Увімкнути правило sudo."
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати запиÑи кориÑтувачів та груп, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
+msgstr "Увімкнено правило sudo «%s»"
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити запиÑи кориÑтувачів та груп, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
+msgstr "Вимкнути правило sudo."
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати вузли та групи вузлів, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
+msgstr "Вимкнено правило «%s»"
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити вузли та групи вузлів, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
+msgstr "Додати команди Ñ– групи команд sudo, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
-msgstr ""
-"\n"
-" Додати кориÑтувача, від імені Ñкого можна виконувати sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
+msgstr "Вилучити команди Ñ– групи команд sudo, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити кориÑтувача, від імені Ñкого можна виконувати sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
+msgstr "Додати запиÑи кориÑтувачів та груп, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
-msgstr ""
-"\n"
-" Додати групу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ запиÑу sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
+msgstr "Вилучити запиÑи кориÑтувачів та груп, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити групу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð· запиÑу sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
+msgstr "Додати вузли та групи вузлів, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
-msgstr ""
-"\n"
-" Додати пункт до правила sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr "Вилучити вузли та групи вузлів, Ñких ÑтоÑуєтьÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ sudo."
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
-msgstr "Пункт sudo"
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr "Додати кориÑтувачів та групи Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ sudo від їхнього імені."
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити пункт з правила sudo.\n"
-" "
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr "Вилучити кориÑтувачів та групи Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ sudo від їхнього імені."
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr "Додати групу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ запиÑу sudo."
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr "Вилучити групу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð· запиÑу sudo."
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr "Додати пункт до правила sudo."
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr "Додано пункт «%s» до правила sudo «%s»"
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr "Вилучити пункт з правила sudo."
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr "Вилучено пункт «%s» з правила sudo «%s»"
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -8615,310 +7020,216 @@ msgid ""
"\n"
" Delete a user:\n"
" ipa user-del tuser1\n"
-msgstr ""
-"\n"
-"КориÑтувачі\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñами кориÑтувачів. Ð’ÑÑ– кориÑтувачі Ñ” кориÑтувачами POSIX.\n"
-"\n"
-"У IPA передбачено підтримку широкого діапазону форматів імен\n"
-"кориÑтувачів, але вам Ñлід враховувати вÑÑ– обмеженнÑ, Ñкі накладаютьÑÑ\n"
-"вашим робочим Ñередовищем. Ðаприклад, імена, що починаютьÑÑ Ð· цифри, або\n"
-"занадто довгі імена можуть Ñпричинити проблеми у деÑких ÑиÑтемах UNIX.\n"
-"СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa config-mod» Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ формату імені\n"
-"кориÑтувача, Ñке дозволÑтиметьÑÑ Ñ–Ð½Ñтрументами IPA.\n"
-"\n"
-"Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу кориÑтувача лише заборонить отриманнÑ\n"
-"кориÑтувачами нових реєÑтраційних даних Kerberos. Ð’ÑÑ– вже отримані\n"
-"реєÑтраційні дані не втратÑÑ‚ÑŒ Ñвоєї чинноÑÑ‚Ñ–.\n"
-"\n"
-"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñми не Ñ” завданнÑм цього модулÑ. Докладніші дані щодо\n"
-"ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñми можна отримати у відповідь на команду ipa help passwd\n"
-"\n"
-"ПРИКЛÐДИ:\n"
-"\n"
-" Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ кориÑтувача:\n"
-" ipa user-add --first=Ivan --last=Ivanenko --password tuser1\n"
-"\n"
-" Пошук вÑÑ–Ñ… кориÑтувачів, чиї запиÑи міÑÑ‚ÑÑ‚ÑŒ Ñ€Ñдок «Ivan»:\n"
-" ipa user-find Ivan\n"
-"\n"
-" Пошук вÑÑ–Ñ… кориÑтувачів з іменем (не прізвищем) «Ivan»:\n"
-" ipa user-find --first=Ivan\n"
-"\n"
-" Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n"
-" ipa user-disable tuser1\n"
-"\n"
-" Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n"
-" ipa user-enable tuser1\n"
-"\n"
-" Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n"
-" ipa user-del tuser1\n"
+msgstr "\nКориÑтувачі\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñами кориÑтувачів. Ð’ÑÑ– кориÑтувачі Ñ” кориÑтувачами POSIX.\n\nУ IPA передбачено підтримку широкого діапазону форматів імен\nкориÑтувачів, але вам Ñлід враховувати вÑÑ– обмеженнÑ, Ñкі накладаютьÑÑ\nвашим робочим Ñередовищем. Ðаприклад, імена, що починаютьÑÑ Ð· цифри, або\nзанадто довгі імена можуть Ñпричинити проблеми у деÑких ÑиÑтемах UNIX.\nСкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «ipa config-mod» Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ формату імені\nкориÑтувача, Ñке дозволÑтиметьÑÑ Ñ–Ð½Ñтрументами IPA.\n\nÐ’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу кориÑтувача лише заборонить отриманнÑ\nкориÑтувачами нових реєÑтраційних даних Kerberos. Ð’ÑÑ– вже отримані\nреєÑтраційні дані не втратÑÑ‚ÑŒ Ñвоєї чинноÑÑ‚Ñ–.\n\nÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñми не Ñ” завданнÑм цього модулÑ. Докладніші дані щодо\nÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñми можна отримати у відповідь на команду ipa help passwd\n\nПРИКЛÐДИ:\n\n Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ кориÑтувача:\n ipa user-add --first=Ivan --last=Ivanenko --password tuser1\n\n Пошук вÑÑ–Ñ… кориÑтувачів, чиї запиÑи міÑÑ‚ÑÑ‚ÑŒ Ñ€Ñдок «Ivan»:\n ipa user-find Ivan\n\n Пошук вÑÑ–Ñ… кориÑтувачів з іменем (не прізвищем) «Ivan»:\n ipa user-find --first=Ivan\n\n Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n ipa user-disable tuser1\n\n Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n ipa user-enable tuser1\n\n Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу кориÑтувача:\n ipa user-del tuser1\n"
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
-msgstr ""
-"\n"
-" Об’єкт кориÑтувача.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr "ДоÑтупні ключі Kerberos"
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr "кориÑтувач"
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:141
+msgid "users"
+msgstr "кориÑтувачі"
+
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr "КориÑтувач"
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr "Ім'Ñ"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr "Прізвище"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr "Повне ім’Ñ"
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr "Екранне ім'Ñ"
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr "Ініціали"
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr "Домашній каталог"
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr "Поле GECOS"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr "Оболонка входу"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr "РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Kerberos"
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr "ÐдреÑа ел. пошти"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr "ÐадіÑлати запит щодо вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
-msgstr ""
-"Ідентифікаційний номер кориÑтувача (ÑиÑтема призначить його, Ñкщо не буде "
-"вказано)"
+msgstr "Ідентифікаційний номер кориÑтувача (ÑиÑтема призначить його, Ñкщо не буде вказано)"
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr "Ід. номер групи"
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr "Ð’ÑƒÐ»Ð¸Ñ†Ñ Ñ– будинок"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr "МіÑто"
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr "ОблаÑÑ‚ÑŒ/провінціÑ"
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr "ІндекÑ"
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr "Ðомер телефону"
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr "Ðомер мобільного телефону"
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr "Ðомер пейджера"
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr "Ðомер факÑу"
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr "Підрозділ"
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr "ПоÑада"
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr "Керівник"
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr "ВодійÑька ліцензіÑ"
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-"\n"
-" За вказаним ідентифікатором кориÑтувача перевірÑємо Ñ–ÑнуваннÑ\n"
-" запиÑу кориÑтувача Ñ– повертаємо dn.\n"
-" "
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr "ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ %(manager)s не знайдено"
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-"\n"
-" ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ dn ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° ідентифікатор кориÑтувача\n"
-" "
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
-msgstr ""
-"\n"
-" Додати нового кориÑтувача.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
+msgstr "Додати нового кориÑтувача."
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "Додано кориÑтувача «%(value)s»"
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr "Ðе Ñтворювати закриту групу кориÑтувача"
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr "не повинне перевищувати %(len)d Ñимволів у довжину"
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
-msgstr ""
-"\n"
-" Вилучити Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
+msgstr "Вилучити кориÑтувача."
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "Вилучено кориÑтувача «%(value)s»"
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
-msgstr ""
-"\n"
-" Змінити дані кориÑтувача.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
+msgstr "Змінити параметри кориÑтувача."
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "Змінено кориÑтувача «%(value)s»"
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
-msgstr ""
-"\n"
-" Знайти кориÑтувачів.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
+msgstr "Шукати кориÑтувачів."
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr "Self"
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
-msgstr ""
-"Показати Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ реєÑтраційного запиÑу Kerberos"
+msgstr "Показати Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ реєÑтраційного запиÑу Kerberos"
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d кориÑтувача"
msgstr[1] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d кориÑтувачів"
msgstr[2] "вÑтановлено відповідніÑÑ‚ÑŒ %(count)d кориÑтувачів"
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
-msgstr ""
-"\n"
-" Показати дані щодо кориÑтувача.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
+msgstr "Показати дані щодо кориÑтувача."
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
-msgstr ""
-"\n"
-" Вимкнути обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
+msgstr "Вимкнути обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача."
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr "Вимкнено обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «%(value)s»"
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
-msgstr ""
-"\n"
-" Увімкнути обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
+msgstr "Увімкнути обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача."
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr "Увімкнено обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача «%(value)s»"
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -8926,548 +7237,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-"\n"
-" Розблокувати обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача\n"
-"\n"
-" Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ðµ бути заблоковано, Ñкщо відповідно до правил безпеки\n"
-" кориÑтувач перевищить Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° кількіÑÑ‚ÑŒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… паролів\n"
-" протÑгом певного чаÑу. Ð—Ð°Ð¿Ð¸Ñ Ð±Ð»Ð¾ÐºÑƒÑ”Ñ‚ÑŒÑÑ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñово, його може бути\n"
-" розблоковано адмініÑтратором.\n"
-" "
+" an administrator."
+msgstr "\n Розблокувати обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача\n\n Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ðµ бути заблоковано, Ñкщо відповідно до правил безпеки\n кориÑтувач перевищить Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° кількіÑÑ‚ÑŒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… паролів\n протÑгом певного чаÑу. Ð—Ð°Ð¿Ð¸Ñ Ð±Ð»Ð¾ÐºÑƒÑ”Ñ‚ÑŒÑÑ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñово, його може бути\n розблоковано адмініÑтратором."
-#: ipalib/plugins/user.py:538
+#: ipalib/plugins/user.py:611
+#, python-format
msgid "Unlocked account \"%(value)s\""
msgstr "Розблоковано обліковий Ð·Ð°Ð¿Ð¸Ñ Â«%(value)s»"
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-"\n"
-"ОÑновні клаÑи Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² без Ñервера LDAP.\n"
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-"\n"
-" Команда, Ñка не викориÑтовує Ñервер LDAP, але бажає викориÑтовувати\n"
-" ÑиÑтему ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом LDAP Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¹Ð½ÑÑ‚Ñ‚Ñ Ñ€Ñ–ÑˆÐµÐ½ÑŒ щодо уповноваженнÑ.\n"
-"\n"
-" Ð”Ñ–Ñ Ð½Ð°Ð´ змінними клаÑу — атрибут commonName запиÑу, Ñкий має бути\n"
-" перевірено.\n"
-"\n"
-" Перед виконаннÑм вам Ñлід Ñтворити Ð·Ð°Ð¿Ð¸Ñ Ñƒ форматі:\n"
-" cn=<діÑ>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Приклад:\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-"\n"
-" Виконати запит до LDAP Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÐ¿Ð¾Ð²Ð½Ð¾Ð²Ð°Ð¶ÐµÐ½Ð½Ñ.\n"
-"\n"
-" Має бути виконано до вÑÑ–Ñ… інших дій.\n"
-" "
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-"\n"
-"КлієнтÑький додаток XML-RPC.\n"
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Введіть %(label)s ще раз Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸: "
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Паролі не збігаютьÑÑ!"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "СкаÑовано."
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr "Ðазва команди"
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr "Ðемає файла Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "Клієнт %(cver)s Ñ” неÑуміÑним з Ñервером %(sver)s на %(server)r"
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "%(server)s повідомлÑÑ” про невідому помилку %(code)d: %(error)s"
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "ÑталаÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "на Ñервері %(server)r ÑталаÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "невідома команда %(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "помилка на Ñервері %(server)r: %(error)s"
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "не вдалоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· %(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "некоректний запит JSON-RPC: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-"помилка під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ XML-RPC: %(error)s"
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Помилка Kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr "не отримано реєÑтраційних даних Kerberos"
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "У базі даних Kerberos не виÑвлено Ñлужби %(service)r"
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr "Ðе знайдено кешу реєÑтраційних даних"
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr "Сплив Ñтрок дії квитка"
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr "Помилкові права доÑтупу до кешу реєÑтраційних даних"
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr "Помилковий формат кешу реєÑтраційних даних"
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ KDC Ð´Ð»Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— облаÑÑ‚Ñ– (realm)"
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "ÐедоÑтатні права Ð´Ð»Ñ Ð´Ð¾Ñтупу: %(info)s"
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "команда %(name)r не приймає ніÑких аргументів"
-
-#: ipalib/errors.py:661
-#, 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] "команда %(name)r приймає не більше %(count)d аргументу"
-msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів"
-msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів"
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ñ– параметрів: %(names)r"
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "Слід вказати %(name)r"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "некоректне %(name)r: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api не надає такого проÑтору назв: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "Паролі не збігаютьÑÑ"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "Команду не реалізовано"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-"КлієнтÑьку чаÑтину не налаштовано. Віддайте команду ipa-client-install."
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#: ipalib/util.py:192
#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ Ñ–Ñнує"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
-msgstr "Щоб Ñтворити Ñлужбу вузла, вам Ñлід зареєÑтрувати вузол"
-
-#: ipalib/errors.py:858
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
-msgstr ""
-"РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ñлужби вказано у формі, відмінній від: Ñлужба/повна "
-"назва вузла: %(reason)s"
+msgid "Permission denied: %(file)s"
+msgstr "ДоÑтуп заборонено: %(file)s"
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-"ОблаÑÑ‚ÑŒ дії реєÑтраційного запиÑу не збігаєтьÑÑ Ð· облаÑÑ‚ÑŽ цього Ñервера IPA"
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— команди потрібні права доÑтупу кориÑтувача root"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "Вже є posix-групою"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-"РеєÑтраційний Ð·Ð°Ð¿Ð¸Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ у формі, відмінній від кориÑтувач@ОБЛÐСТЬ: "
-"%(principal)r"
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ увімкнено"
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ вимкнено"
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ можна вмикати або вимикати"
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr "Цього запиÑу немає Ñеред учаÑників"
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "Група не може бути елементом Ñамої Ñебе"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr "Цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¶Ðµ Ñ” Ñеред учаÑників"
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Помилка Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Base64: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "Групу не може бути додано Ñк елемент Ñамої Ñебе"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "Ðе можна вилучати типову групу кориÑтувачів"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr "Вузол не має відповідного запиÑу DNS A"
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐµÑ€Ð¾Ð²Ð°Ð½Ð¸Ñ… груп заборонено. Спочатку групу Ñлід від’єднати."
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
-msgstr "У керованої групи не може бути влаÑних правил Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
+msgstr "назва облікового запиÑу електронної пошти може ÑкладатиÑÑ Ð»Ð¸ÑˆÐµ з літер, цифр, Ñимволів «-», «_» Ñ– крапок. Ðе можна викориÑтовувати у назві поÑлідовноÑÑ‚Ñ– з Ñимволів «-», «_» та «.»."
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
-msgstr "«%(entry)s» не міÑтить Ñертифіката."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
+msgstr "не може бути довшим за 255 Ñимволів"
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
-msgstr "Ðе вдалоÑÑ Ñтворити закриту групу. Група «%(group)s» вже Ñ–Ñнує."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
+msgstr "занадто багато Ñимволів «@»"
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-"Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ виÑвлено проблему, вÑÑ– запиÑи учаÑників %(verb)s: %(exc)s"
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "не виÑвлено ні команди, ні запиÑу довідки %(topic)r"
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "зміна конфліктує з іншою внеÑеною зміною"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr "змін не внеÑено"
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr "%(desc)s: %(info)s"
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr "цим запитом перевищено обмеженнÑ"
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr "зміну оÑновного ключа заборонено"
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr "%(attr)s: можна викориÑтовувати лише одне значеннÑ."
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
+msgstr "назву домену Ð°Ð´Ñ€ÐµÑ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ неправильно («example.com» заміÑÑ‚ÑŒ «example»)"
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr "%(attr)s: некоректний ÑинтакÑиÑ."
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
+msgstr "назва домену має ÑкладатиÑÑ Ð»Ð¸ÑˆÐµ з літер, цифр Ñ– Ñимволів «-»"
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr "Помилковий фільтр пошуку %(info)s"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
+msgstr "назву вузла вказано не повніÑÑ‚ÑŽ"
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ дію з Ñертифікатом: %(error)s"
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Помилка Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката: %(error)s"
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr "Вже зареєÑтровано"
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr "Ще не зареєÑтровано"
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-"СпиÑок результатів обрізано. Спробуйте точніше визначити критерії пошуку."
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-"Отримати Ñ– вивеÑти вÑÑ– атрибути з Ñервера. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ виводу команд."
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-"ВивеÑти запиÑи у формі, у Ñкій вони зберігаютьÑÑ Ð½Ð° Ñервері. СтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ"
-" формату Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…."
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr "ПереÑпрÑмувати на Ñервер заміÑÑ‚ÑŒ локального виконаннÑ"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "Словник, що відповідає запиÑу LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "СпиÑок запиÑів LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… команд має призводити до ÑкогоÑÑŒ результату"
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "помилковий тип"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "Можна викориÑтовувати лише одне значеннÑ"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "має дорівнювати True або False"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "має бути цілим чиÑлом"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "має бути чиÑлом, не меншим за %(minvalue)d"
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "не може перевищувати %(maxvalue)d"
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "має бути деÑÑтковим чиÑлом"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "має бути чиÑлом, не меншим за %(minvalue)f"
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "не може перевищувати %(maxvalue)f"
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "має відповідати шаблону «%(pattern)s»"
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "має бути бінарними даними"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "має бути розміром, не менше за %(minlength)d байтів"
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "не повинне перевищувати за розміром %(maxlength)d байтів"
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "має бути розміром точно у %(length)d байтів"
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "має бути текÑтом у Unicode"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "має бути не меншим за %(minlength)d Ñимволів довжиною"
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "не повинне перевищувати %(maxlength)d Ñимволів у довжину"
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "має бути точно %(length)d Ñимволів у довжину"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
+msgstr "чаÑтини назви вузла мають ÑкладатиÑÑ Ð»Ð¸ÑˆÐµ з літер, цифр Ñ– Ñимволів «-» (Ñимвол «-» не повинен бути оÑтаннім)"
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr "Ðе можна викориÑтовувати Ñимвол «%(char)r»."
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "має бути одним зі таких значень: %(values)r"
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr "ДоÑтуп заборонено: %(file)s"
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð²Ð¸Ð´Ð°Ð²Ñ†Ñ Â«%(issuer)s» не відповідає очікуваному значенню видавцÑ"
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Ðе вдалоÑÑ Ð¾Ð±Ð¼Ñ–Ð½ÑтиÑÑ Ð´Ð°Ð½Ð¸Ð¼Ð¸ з CMS (%s)"
@@ -9488,14 +7312,17 @@ msgstr "Ðпаратна платформа вузла (наприклад, «Le
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "Операційна ÑиÑтема вузла Ñ– Ñ—Ñ— верÑÑ–Ñ (наприклад, «Fedora 9»)"
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr "ÐºÐ»Ð°Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² %s не знайдено"
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
-msgstr ""
-"Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від "
-"«%(subject_base)s»"
+msgstr "Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від «%(subject_base)s»"
#: ipaserver/plugins/selfsign.py:104
#, python-format
@@ -9514,293 +7341,297 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ наÑтупний Ñерійний
msgid "certutil failure"
msgstr "помилка certutil"
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл налаштувань %s\n"
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ функцією stat() файл Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s\n"
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr "не виÑтачає пам'ÑÑ‚Ñ–\n"
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr "помилка читаннÑ\n"
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr "Ðевдала Ñпроба ініціалізації контекÑту Kerberos\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr "Ðевдала Ñпроба ініціалізації контекÑту Kerberos: %s (%d)\n"
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
+msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ реєÑтраційний запиÑ: %s (%d)\n"
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr "Ðемає оÑновних ÑиÑтемних типів шифруваннÑ?!\n"
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ–!?\n"
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ–\n"
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr "ПопередженнÑ: невідомий тип шифруваннÑ: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr "ПопередженнÑ: невідомий тип Ñолі (salt): [%s]\n"
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr "Спроба порівнÑÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ типу ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі!\n"
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr "Ðе вдалоÑÑ Ñтворити випадковий ключ!\n"
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr "Ðе вдалоÑÑ Ñтворити ключ!\n"
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ–!\n"
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr "Помилковий або непідтримуваний тип Ñолі (salt) (%d)!\n"
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr "Жоден з ключів не прийнÑто KDC\n"
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ– \n"
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ–!\n"
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr "Ðе вдалоÑÑ Ñтворити керуваннÑ!\n"
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ бібліотеку ldap!\n"
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити LDAP_OPT_X_SASL_NOCANON\n"
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² ldap!\n"
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr "Ðевдала Ñпроба проÑтого прив’ÑзуваннÑ\n"
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr "Ðевдала Ñпроба прив’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ SASL!\n"
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr "Ðевдала Ñпроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ—! %s\n"
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr "Ðемає ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð´ÑŽ!\n"
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ber_init() зазнала невдачі. Ðекоректне керуваннÑ?!\n"
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ber_scanf() зазнала невдачі. Ðекоректне керуваннÑ?!\n"
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr "Ðовий пароль реєÑтраційного запиÑу"
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr "Перевірка Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ€ÐµÑ”Ñтраційного запиÑу"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr "Виводити мінімум даних"
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr "Виводити лише Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки"
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr "Ð’Ñтановити зв’Ñзок з вказаним Ñервером KDC"
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr "Ðазва Ñервера"
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
-msgstr ""
-"РеєÑтраційний запиÑ, Ð´Ð»Ñ Ñкого Ñлід отримати таблицю ключів (приклад: "
-"ftp/ftp.example.com@EXAMPLE.COM)"
+msgstr "РеєÑтраційний запиÑ, Ð´Ð»Ñ Ñкого Ñлід отримати таблицю ключів (приклад: ftp/ftp.example.com@EXAMPLE.COM)"
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr "Ðазва реєÑтраційного запиÑу Ñлужби Kerberos"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr "Файл, у Ñкому зберігатимутьÑÑ Ð´Ð°Ð½Ñ– таблиці ключів"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr "Ðазва файла таблиці ключів"
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr "Типи шифруваннÑ, запит щодо Ñких Ñлід надÑилати"
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr "СпиÑок типів шифруваннÑ, відокремлених комами"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr "Показати ÑпиÑок дозволених типів ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– завершити роботу"
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr "Дозволені типи шифруваннÑ"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
-msgstr ""
-"Запитати невипадковий пароль, Ñкий Ñлід викориÑтати Ð´Ð»Ñ Ñ€ÐµÑ”Ñтраційного "
-"запиÑу"
+msgstr "Запитати невипадковий пароль, Ñкий Ñлід викориÑтати Ð´Ð»Ñ Ñ€ÐµÑ”Ñтраційного запиÑу"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr "DN LDAP"
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
-msgstr ""
-"DN, до Ñкого Ñлід виконати прив’Ñзку, Ñкщо не викориÑтовуєтьÑÑ kerberos"
+msgstr "DN, до Ñкого Ñлід виконати прив’Ñзку, Ñкщо не викориÑтовуєтьÑÑ kerberos"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr "Пароль LDAP"
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr "пароль, Ñкий Ñлід викориÑтати, Ñкщо не викориÑтовуєтьÑÑ kerberos"
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Ðевдала Ñпроба ініціалізації контекÑту Kerberos\n"
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr "Підтримувані типи шифруваннÑ:\n"
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr "ПопередженнÑ: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ (â„–%d)\n"
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr "У разі викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð²â€™Ñзки DN Ñлід вказати пароль прив’Ñзки.\n"
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
-msgstr ""
-"ПопередженнÑ: Ð´Ð»Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¸Ñ… паролів типи Ñолі (salt) не мають Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-"(див. параметр -P)\n"
+msgstr "ПопередженнÑ: Ð´Ð»Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¸Ñ… паролів типи Ñолі (salt) не мають Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (див. параметр -P)\n"
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Ðекоректна назва реєÑтраційного запиÑу Ñлужби\n"
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
-msgstr ""
-"Ðе знайдено кешу реєÑтраційних даних Kerberos. Чи Ñ” у Ð²Ð°Ñ ÐºÐ²Ð¸Ñ‚Ð¾Ðº Kerberos?\n"
+msgstr "Ðе знайдено кешу реєÑтраційних даних Kerberos. Чи Ñ” у Ð²Ð°Ñ ÐºÐ²Ð¸Ñ‚Ð¾Ðº Kerberos?\n"
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
-msgstr ""
-"Ðе знайдено реєÑтраційного запиÑу кориÑтувача Kerberos. Ви маєте ви "
-"коректний кеш реєÑтраційних даних?\n"
+msgstr "Ðе знайдено реєÑтраційного запиÑу кориÑтувача Kerberos. Ви маєте ви коректний кеш реєÑтраційних даних?\n"
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ таблицю ключів\n"
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr "Ðе вдалоÑÑ Ñтворити вихідні дані Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð°\n"
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ ключ до таблиці ключів\n"
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr "Ðе вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ таблицю ключів\n"
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr "Таблицю ключів уÑпішно отримати Ñ– збережено до: %s\n"
@@ -9820,256 +7651,236 @@ msgstr "Ðемає дозволу на Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ файла таблиці
msgid "access() on %s failed: errno = %d\n"
msgstr "Ðевдала Ñпроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ access() Ð´Ð»Ñ %s: номер помилки = %d\n"
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr "Ðе виÑтачає пам'ÑÑ‚Ñ–!"
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñервером LDAP: %s"
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr "Ðе вдалоÑÑ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ SSL у LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr "Ðе вдалоÑÑ Ð²Ñтановити верÑÑ–ÑŽ LDAP\n"
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr "Ðевдала Ñпроба прив’Ñзки: %s\n"
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
-msgstr ""
-"Спроба пошуку %s у rootdse завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ з повідомленнÑм про помилку "
-"%d"
+msgstr "Спроба пошуку %s у rootdse завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ з повідомленнÑм про помилку %d"
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr "Ðемає значень %s"
-#: ipa-client/ipa-join.c:322
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-"Спроба пошуку ipaCertificateSubjectBase завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ з Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ "
-"про помилку %d"
+msgid "Search for IPA namingContext failed with error %d\n"
+msgstr "Спроба пошуку namingContext IPA завершилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ %d\n"
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine root DN of %s\n"
-msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кореневий DN %s\n"
+msgid "IPA namingContext not found\n"
+msgstr "namingContext IPA не знайдено\n"
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
-msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифіката %s\n"
-
-#: ipa-client/ipa-join.c:407
-#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
-msgstr "Ðе вдалоÑÑ Ñтворити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ LDAP з %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
+msgstr "Спроба пошуку ipaCertificateSubjectBase завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ з Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку %d"
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
-msgstr "Пошук на оÑнові %s у %s\n"
+msgid "Unable to determine root DN of %s\n"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кореневий DN %s\n"
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
-msgstr "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
+msgstr "Ðекоректний пароль.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
-msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ вузол «%s»\n"
+msgid "Unable to determine certificate subject of %s\n"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñертифіката %s\n"
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
-msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ binddn Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° «%s»\n"
+msgid "Enrollment failed. %s\n"
+msgstr "Помилка реєÑтруваннÑ. %s\n"
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
-msgstr "У вузла вже Ñ” реєÑтраційний запиÑ, повторна Ñпроба прив’Ñзки\n"
+msgid "principal not found in XML-RPC response\n"
+msgstr "реєÑтраційного запиÑу не знайдено у XML-RPC відповіді\n"
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr "Вузол вже приєднано.\n"
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr "Ðекоректний пароль.\n"
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr "у запиÑу вузла реєÑтраційного запиÑу не знайдено\n"
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr "реєÑтраційного запиÑу не знайдено у XML-RPC відповіді\n"
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñервер IPA з %s\n"
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr "Ðазву вузла Ñлід вказувати повніÑÑ‚ÑŽ: %s\n"
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
-msgstr ""
-"Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: невдала Ñпроба ініціалізації контекÑту Kerberos\n"
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: невдала Ñпроба ініціалізації контекÑту Kerberos\n"
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr "Помилка при визначенні Ð°Ð´Ñ€ÐµÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ключів: %s.\n"
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ— облаÑÑ‚Ñ– дії Kerberos: %s.\n"
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ «%s»: %s.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… реєÑтраційних даних: %s.\n"
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "Ðе вдалоÑÑ Ñтворити кеш реєÑтраційних даних Kerberos\n"
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтраційних даних у кеші: %s.\n"
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr "УÑпішне ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації.\n"
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr "Спроба ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації зазнала невдачі.\n"
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr "у відповіді XML-RPC не знайдено результату\n"
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
-msgstr ""
-"Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: не знайдено кешу реєÑтраційних даних Kerberos\n"
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: не знайдено кешу реєÑтраційних даних Kerberos\n"
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
-msgstr ""
-"Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: не знайдено реєÑтраційного запиÑу кориÑтувача "
-"Kerberos Ñ– не вказано Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²ÑƒÐ·Ð»Ð°.\n"
+msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ вузол: не знайдено реєÑтраційного запиÑу кориÑтувача Kerberos Ñ– не вказано Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²ÑƒÐ·Ð»Ð°.\n"
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr "невдала Ñпроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ fork()\n"
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr "Ðе знайдено ipa-getkeytab\n"
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr "Помилкові права доÑтупу до ipa-getkeytab?\n"
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr "Ñпроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ipa-getkeytab зазнала невдачі, номер помилки %d\n"
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr "дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð² роботу з повідомленнÑм %d\n"
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr "Базовий об’єкт Ñертифікації: %s\n"
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr "ВивеÑти дані XML-RPC без обробки у режимі GSSAPI"
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr "«Мовчазний» режим. Буде показано лише Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки."
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr "СкаÑувати реєÑтрацію цього вузла на Ñервері IPA"
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr "Ðазва вузла цього Ñервера"
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr "назва вузла"
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr "Сервер IPA, Ñкий Ñлід викориÑтовувати"
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr "Визначає, де Ñлід зберігати дані таблиці ключів."
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr "назва файла"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr "Пароль LDAP (Ñкщо не викориÑтовуєтьÑÑ Kerberos)"
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr "пароль"
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr "Базовий DN LDAP"
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr "Базовий DN"
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -10160,5 +7971,3 @@ msgstr "Спроба Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ключів зазнала
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr "krb5_kt_close %d: %s\n"
-
-
diff --git a/install/po/zh_CN.po b/install/po/zh_CN.po
index 1d4568ab5..925b0d6cd 100644
--- a/install/po/zh_CN.po
+++ b/install/po/zh_CN.po
@@ -2,162 +2,512 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Jake Li <gnozil@gmail.com>, 2010.
# jdennis <jdennis@redhat.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
-"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/fedora/team/zh_CN/)\n"
+"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/fedora/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "å†æ¬¡è¾“å…¥ %(label)s进行校验: "
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr "密ç ä¸åŒ¹é…ï¼"
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr "å·²å–消"
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr "å‘生了一个内部错误"
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "æœåŠ¡å™¨%(server)r上å‘生了一个内部错误"
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "未知的命令%(name)r"
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "无法连接到%(uri)r: %(error)s"
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "无效的JSON-RPC请求: %(error)s"
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "命令 %(name)rä¸éœ€è¦å‚æ•°"
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr "需è¦%(name)r"
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r无效: %(error)s"
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "API没有这个å字空间: %(name)r"
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr "密ç ä¸åŒ¹é…"
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr "命令没有实现"
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr "æ¡ç›®å·²ç»å­˜åœ¨"
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
+msgstr "该命令需è¦root访问æƒé™"
+
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr "这已ç»æ˜¯ä¸€ä¸ªposix组"
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr "一个组ä¸èƒ½æ˜¯è‡ªå·±çš„æˆå‘˜"
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Base64解ç å¤±è´¥: %(reason)s"
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr "一个组ä¸èƒ½æ˜¯è‡ªå·±çš„æˆå‘˜"
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr "默认的用户组ä¸æˆè¢«åˆ é™¤"
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
+msgstr ""
+
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr "修改冲çª"
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr "结果被截断,请å°è¯•æ›´æ˜Žç¡®çš„æœç´¢"
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr "ä¸æ­£ç¡®çš„类型"
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr "åªå…许一个值"
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr "必须是True或False"
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr "必须是一个整数"
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr "必须是一个å进制数"
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr "必须是二进制数æ®"
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr "必须是Unicode文本"
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -187,6 +537,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr "组 '%s' ä¸å­˜åœ¨"
@@ -195,20 +546,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -222,13 +565,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACIs"
@@ -237,221 +573,437 @@ msgstr "ACIs"
msgid "ACI name"
msgstr "ACIå称"
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr "用户组"
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr "æƒé™"
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr "属性"
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr "类型"
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr "组æˆå‘˜"
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr "过滤"
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr "å­æ ‘"
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr "目标组"
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr "æè¿°"
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -539,673 +1091,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
+msgstr ""
+
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr "ä½ç½®"
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
-msgstr "æè¿°"
-
-#: ipalib/plugins/automount.py:515
+#: ipalib/plugins/automount.py:530
msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr "æè¿°"
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr "挂载点"
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
-msgid "New mount information"
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:846
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
+msgstr "密ç "
+
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr "失败的æˆå‘˜"
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr "æˆå‘˜ç”¨æˆ·"
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr "æˆå‘˜ç»„"
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr "æˆå‘˜ä¸»æœº"
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr "主机组æˆå‘˜"
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr "主机组æˆå‘˜"
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr "外部主机"
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
-msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1267,155 +1726,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr "è¯ä¹¦"
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr "主题"
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr "åºåˆ—å·"
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr "请求å·"
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr "请求状æ€"
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr "撤消原因"
@@ -1428,189 +1838,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr "撤销"
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr "原因"
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr "撤消è¯ä¹¦çš„原因(0-10)"
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
+msgstr ""
+
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr "错误"
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr "主目录"
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr "默认shell"
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr "默认用户组"
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr "æœç´¢æ—¶é—´é™åˆ¶"
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr "用户æœç´¢å­—段"
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
-msgstr "è¿ç§»æ¨¡å¼"
-
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1618,40 +2010,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1665,129 +2069,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1800,6 +2181,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1809,11 +2198,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1839,7 +2231,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1868,357 +2260,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
-msgstr "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2255,183 +2854,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
-msgstr "密ç "
-
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2474,145 +3018,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:81
+msgid "groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr "用户组"
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr "组å"
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr "组æè¿°"
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr "已删除组\"%(value)s\""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr "已修改组\"%(value)s\""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2634,7 +3155,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2642,7 +3163,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2651,7 +3172,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2662,262 +3183,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr "规则å"
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
-msgstr "规则类型(å…许或ç¦æ­¢)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
+msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr "用户类别"
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr "主机类别"
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr "æºä¸»æœºç±»åˆ«"
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr "用户"
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr "用户组"
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr "主机"
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr "主机组"
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr "æœåŠ¡"
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr "访问时间"
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2942,82 +3411,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
-msgstr "æœåŠ¡å"
+msgid "HBAC Services"
+msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr "æœåŠ¡å"
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3044,92 +3507,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr "用户å"
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3185,217 +3799,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr "主机å"
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "主机地点(如\"Baltimore, MD\")"
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr "主机ä½ç½®(如\"Lab 2\")"
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr "å¹³å°"
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "ä¸»æœºç¡¬ä»¶å¹³å° (e.g. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr "æ“作系统"
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "主机æ“作系统åŠç‰ˆæœ¬(e.g. \"Fedora 9\")"
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr "用户密ç "
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr "Base-64 ç¼–ç æ ¼å¼çš„æœåŠ¡å™¨è¯ä¹¦"
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr "新增主机 \"%(value)s\""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr "已删除主机 \"%(value)s\""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr "已修改主机 \"%(value)s\""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3427,1016 +4025,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr "主机组"
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr "主机组å称"
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
-msgstr "æ•°æ®"
-
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:297
-msgid "External"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
-msgstr ""
+#: ipalib/plugins/internal.py:305
+msgid "Data"
+msgstr "æ•°æ®"
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
-msgstr ""
-
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr "用户组"
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr "DNS"
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4476,63 +5212,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr "用户å"
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4573,130 +5293,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr "用户容器"
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr "组容器"
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4705,46 +5490,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4762,10 +5524,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4774,7 +5537,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4800,104 +5563,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr "网络组"
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr "网络组å称"
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr "网络组æè¿°"
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr "NIS域å"
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4918,33 +5680,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -5000,135 +5745,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
+msgstr ""
+
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5150,32 +5860,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5198,18 +5895,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5218,94 +5920,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5350,164 +6025,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr "组"
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr "最å°é•¿åº¦"
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr "优先级"
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr "用户"
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5544,18 +6199,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5564,94 +6220,71 @@ msgid "A description of this role-group"
msgstr "该角色组的æè¿°"
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5679,88 +6312,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5813,117 +6431,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5940,187 +6522,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6130,223 +6701,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6387,234 +6976,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
+msgstr ""
+
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr "用户登录å"
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr "å"
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr "姓"
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr "GECOS字段"
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr "登录shell"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr "邮件地å€"
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr "è¡—é“地å€"
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr "新增用户\"%(value)s\""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr "已删除用户\"%(value)s\""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr "已修改用户\"%(value)s\""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6622,504 +7189,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "å†æ¬¡è¾“å…¥ %(label)s进行校验: "
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr "密ç ä¸åŒ¹é…ï¼"
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr "å·²å–消"
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr "å‘生了一个内部错误"
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "æœåŠ¡å™¨%(server)r上å‘生了一个内部错误"
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "未知的命令%(name)r"
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:405
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "无法连接到%(uri)r: %(error)s"
-
-#: ipalib/errors.py:423
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "无效的JSON-RPC请求: %(error)s"
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "命令 %(name)rä¸éœ€è¦å‚æ•°"
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr "需è¦%(name)r"
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r无效: %(error)s"
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "API没有这个å字空间: %(name)r"
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr "密ç ä¸åŒ¹é…"
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr "命令没有实现"
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr "æ¡ç›®å·²ç»å­˜åœ¨"
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr "该命令需è¦root访问æƒé™"
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr "这已ç»æ˜¯ä¸€ä¸ªposix组"
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
-msgstr ""
-
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr "一个组ä¸èƒ½æ˜¯è‡ªå·±çš„æˆå‘˜"
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
-msgstr ""
-
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Base64解ç å¤±è´¥: %(reason)s"
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr "一个组ä¸èƒ½æ˜¯è‡ªå·±çš„æˆå‘˜"
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr "默认的用户组ä¸æˆè¢«åˆ é™¤"
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
-msgstr "修改冲çª"
-
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
-msgstr ""
-
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
-msgstr ""
-
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1458
-msgid "Already registered"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr "结果被截断,请å°è¯•æ›´æ˜Žç¡®çš„æœç´¢"
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr "ä¸æ­£ç¡®çš„类型"
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr "åªå…许一个值"
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr "必须是True或False"
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr "必须是一个整数"
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr "必须是一个å进制数"
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr "必须是二进制数æ®"
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr "必须是Unicode文本"
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7140,6 +7264,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7164,283 +7293,297 @@ msgstr "无法得到下一个åºåˆ—å·"
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7460,248 +7603,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7792,5 +7923,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-
diff --git a/install/po/zh_TW.po b/install/po/zh_TW.po
index 8586c9bff..55ab065d0 100644
--- a/install/po/zh_TW.po
+++ b/install/po/zh_TW.po
@@ -2,13 +2,14 @@
# Copyright (C) YEAR Red Hat
# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Automatically generated, 2010.
msgid ""
msgstr ""
"Project-Id-Version: FreeIPA\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?product=freeIPA\n"
-"POT-Creation-Date: 2011-06-06 13:27-0400\n"
-"PO-Revision-Date: 2011-07-27 00:01+0000\n"
+"POT-Creation-Date: 2011-12-08 16:05-0500\n"
+"PO-Revision-Date: 2012-02-14 08:20+0000\n"
"Last-Translator: jdennis <jdennis@redhat.com>\n"
"Language-Team: Chinese (Taiwan) <trans-zh_TW@lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
@@ -17,146 +18,495 @@ msgstr ""
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ipalib/plugins/__init__.py:20
+#: ipalib/cli.py:583
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:592
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:753
+#, python-format
+msgid "Purpose: %s"
+msgstr ""
+
+#: ipalib/cli.py:770
+msgid "Usage: ipa [global-options] COMMAND ..."
+msgstr ""
+
+#: ipalib/cli.py:772
+msgid "Built-in commands:"
+msgstr ""
+
+#: ipalib/cli.py:774
+msgid "Help subtopics:"
+msgstr ""
+
+#: ipalib/cli.py:777
+msgid "Help topics:"
+msgstr ""
+
+#: ipalib/cli.py:782
+msgid "Try `ipa --help` for a list of global options."
+msgstr ""
+
+#: ipalib/cli.py:816
+msgid "Topic commands:"
+msgstr ""
+
+#: ipalib/cli.py:827
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1130
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:303
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:321
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:337
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:359
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:375
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:392 ipalib/errors.py:417
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:408
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:426
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:442
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:468
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:485
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:501
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:517
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:533
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:549
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:565
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:581
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:600
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:644
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:664
+#, 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] ""
+
+#: ipalib/errors.py:694
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:710
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:726 ipalib/errors.py:742
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:758
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:767
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:776
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:785
+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
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:829
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:845
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:861
+#, python-format
msgid ""
-"\n"
-"Sub-package containing all core plugins.\n"
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
msgstr ""
-#: ipalib/plugins/aci.py:20
+#: ipalib/errors.py:877
msgid ""
-"\n"
-"Directory Server Access Control Instructions (ACIs)\n"
-"\n"
-"ACIs are used to allow or deny access to information. This module is\n"
-"currently designed to allow, not deny, access.\n"
-"\n"
-"The aci commands are designed to grant permissions that allow updating\n"
-"existing entries or adding or deleting new ones. The goal of the ACIs\n"
-"that ship with IPA is to provide a set of low-level permissions that\n"
-"grant access to special groups called taskgroups. These low-level\n"
-"permissions can be combined into roles that grant broader access. These\n"
-"roles are another type of group, roles.\n"
-"\n"
-"For example, if you have taskgroups that allow adding and modifying users you\n"
-"could create a role, useradmin. You would assign users to the useradmin\n"
-"role to allow them to do the operations defined by the taskgroups.\n"
-"\n"
-"You can create ACIs that delegate permission so users in group A can write\n"
-"attributes on group B.\n"
-"\n"
-"The type option is a map that applies to all entries in the users, groups or\n"
-"host location. It is primarily designed to be used when granting add\n"
-"permissions (to write new entries).\n"
-"\n"
-"An ACI consists of three parts:\n"
-"1. target\n"
-"2. permissions\n"
-"3. bind rules\n"
-"\n"
-"The target is a set of rules that define which LDAP objects are being\n"
-"targeted. This can include a list of attributes, an area of that LDAP\n"
-"tree or an LDAP filter.\n"
-"\n"
-"The targets include:\n"
-"- attrs: list of attributes affected\n"
-"- type: an object type (user, group, host, service, etc)\n"
-"- memberof: members of a group\n"
-"- targetgroup: grant access to modify a specific group. This is primarily\n"
-" designed to enable users to add or remove members of a specific group.\n"
-"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
-"- subtree: Used to apply a rule across an entire set of objects. For example,\n"
-" to allow adding users you need to grant \"add\" permission to the subtree\n"
-" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
-" is a fail-safe for objects that may not be covered by the type option.\n"
-"\n"
-"The permissions define what the the ACI is allowed to do, and are one or\n"
-"more of:\n"
-"1. write - write one or more attributes\n"
-"2. read - read one or more attributes\n"
-"3. add - add a new entry to the tree\n"
-"4. delete - delete an existing entry\n"
-"5. all - all permissions are granted\n"
-"\n"
-"Note the distinction between attributes and entries. The permissions are\n"
-"independent, so being able to add a user does not mean that the user will\n"
-"be editable.\n"
-"\n"
-"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
-"allows this to be any valid LDAP entry but we encourage the use of\n"
-"taskgroups so that the rights can be easily shared through roles.\n"
-"\n"
-"For a more thorough description of access controls see\n"
-"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control.html\n"
-"\n"
-"EXAMPLES:\n"
-"\n"
-"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
-"demonstrate how the various options work but this is done via the permission\n"
-"command-line now (see last example).\n"
-"\n"
-" Add an ACI so that the group \"secretaries\" can update the address on any user:\n"
-" ipa group-add --desc=\"Office secretaries\" secretaries\n"
-" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries --permissions=write --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Show the new ACI:\n"
-" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
-"\n"
-" Add an ACI that allows members of the \"addusers\" permission to add new users:\n"
-" ipa aci-add --type=user --permission=addusers --permissions=add --prefix=none \"Add new users\"\n"
-"\n"
-" Add an ACI that allows members of the editors manage members of the admins group:\n"
-" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --group=editors --prefix=none \"Editors manage admins\"\n"
-"\n"
-" Add an ACI that allows members of the admin group to manage the street and zip code of those in the editors group:\n"
-" ipa aci-add --permissions=write --memberof=editors --group=admins --attrs=street,postalcode --prefix=none \"admins edit the address of editors\"\n"
-"\n"
-" Add an ACI that allows the admins group manage the street and zipcode of those who work for the boss:\n"
-" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode --filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --prefix=none \"Edit the address of those who work for the boss\"\n"
-"\n"
-" Add an entirely new kind of record to IPA that isn't covered by any of the --type options, creating a permission:\n"
-" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
-"\n"
-"\n"
-"The show command shows the raw 389-ds ACI.\n"
-"\n"
-"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
-"must include all existing attributes as well. When doing an aci-mod the\n"
-"targetattr REPLACES the current attributes, it does not add to them.\n"
-"\n"
+"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "A list of ACI values"
+#: ipalib/errors.py:893
+msgid "This command requires root access"
msgstr ""
-#: ipalib/plugins/aci.py:172
-msgid ""
-"\n"
-" Given a name and a prefix construct an ACI name.\n"
-" "
+#: ipalib/errors.py:909
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:925
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:941
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:957
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:973
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:989
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1005
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1021
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1037
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1069
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1085
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1101
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1116
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1131
+msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/plugins/aci.py:181
+#: ipalib/errors.py:1163
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1179
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1195
+#, python-format
msgid ""
-"\n"
-" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
-" and the actual ACI name.\n"
-" "
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1213
+#, python-format
+msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/plugins/aci.py:193
+#: ipalib/errors.py:1230
+#, python-format
msgid ""
-"\n"
-" Pull the group name out of a memberOf filter\n"
-" "
+"The search criteria was not specific enough. Expected 1 and found %(found)d."
+msgstr ""
+
+#: ipalib/errors.py:1254
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1278
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1294
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1310
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1326
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1341
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1356
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1372
+#, python-format
+msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/plugins/aci.py:204
+#: ipalib/errors.py:1388
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1404
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1429
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1445
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1496
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1512
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:408
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:821
msgid ""
-"\n"
-" Given a name and a set of keywords construct an ACI.\n"
-" "
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:827
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/frontend.py:967
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:358
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:361
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1023
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1124
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1176
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1186
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1227
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1250
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1260
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1327
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1345
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1361
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1371
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1381
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1403
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1436
+msgid "Leading and trailing spaces are not allowed"
+msgstr ""
+
+#: ipalib/parameters.py:1444
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1454
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1464
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1482
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1526
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
#: ipalib/plugins/aci.py:215
@@ -186,6 +536,7 @@ msgid "One of group, permission or self is required"
msgstr ""
#: ipalib/plugins/aci.py:251
+#, python-format
msgid "Group '%s' does not exist"
msgstr ""
@@ -194,20 +545,12 @@ msgid "empty filter"
msgstr ""
#: ipalib/plugins/aci.py:294
+#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:299
-msgid ""
-"Convert an ACI into its equivalent keywords.\n"
-"\n"
-" This is used for the modify operation so we can merge the\n"
-" incoming kw and existing ACI and pass the result to\n"
-" _make_aci().\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:379
+#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
@@ -221,13 +564,6 @@ msgid ""
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:407
-msgid ""
-"\n"
-" ACI object.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr ""
@@ -236,221 +572,437 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:422
+#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:424
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
-#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
-#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+#: 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
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:433
+#: ipalib/plugins/aci.py:436
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
-#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
+#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
-#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
+#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
-#: ipalib/plugins/permission.py:131
+#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:445
+#: ipalib/plugins/aci.py:452
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:450
+#: ipalib/plugins/aci.py:458
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:451
+#: ipalib/plugins/aci.py:459
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:461
+#: ipalib/plugins/aci.py:471
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:466
+#: ipalib/plugins/aci.py:477
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:482
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:483
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:478
-msgid ""
-"\n"
-" Create new ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
+#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:487
+#: ipalib/plugins/aci.py:500
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:551
+#, 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
+msgid "ACI"
+msgstr ""
+
+#: ipalib/plugins/aci.py:601
+#, python-format
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/aci.py:666
+#, python-format
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:891
+msgid "New ACI name"
+msgstr ""
+
+#: ipalib/plugins/aci.py:895
+#, python-format
+msgid "Renamed ACI to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:28
msgid ""
"\n"
-" Execute the aci-create operation.\n"
+"Auto Membership Rule.\n"
"\n"
-" Returns the entry as it will be created in LDAP.\n"
+"Bring clarity to the membership of hosts and users by configuring inclusive\n"
+"or exclusive regex paterns, you can automatically assign a new entries into\n"
+"a group or hostgroup based upon attribute information.\n"
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: Keyword arguments for the other LDAP attributes.\n"
-" "
+"A rule is directly associated with a group by name, so you cannot create\n"
+"a rule without an accompanying group or hostgroup\n"
+"\n"
+"A condition is a regular expression used by 389-ds to match a new incoming\n"
+"entry with an automember rule. If it matches an inclusive rule then the\n"
+"entry is added to the appropriate group or hostgroup.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create 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"
+" ipa automember-add --type=hostgroup webservers\n"
+" ipa automember-add --type=group devel\n"
+"\n"
+" Add a condition to the rule:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+" ipa automember-add-condition --key=manager --type=group --inclusive-regex=^uid=mscott devel\n"
+"\n"
+" Add an exclusive condition to the rule to prevent auto assignment:\n"
+" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-regex=^web5\\.example\\.com webservers\n"
+"\n"
+" Add a host:\n"
+" ipa host-add web1.example.com\n"
+"\n"
+" Add a user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n"
+"\n"
+" Verify automembership:\n"
+" ipa hostgroup-show webservers\n"
+" Host-group: webservers\n"
+" Description: Web Servers\n"
+" Member hosts: web1.example.com\n"
+"\n"
+" ipa group-show devel\n"
+" Group name: devel\n"
+" Description: Developers\n"
+" GID: 1004200000\n"
+" Member users: tuser\n"
+"\n"
+" Remove a condition from the rule:\n"
+" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-regex=^web[1-9]+\\.example\\.com webservers\n"
+"\n"
+" Modify the automember rule:\n"
+" ipa automember-mod\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-set --default-group=webservers --type=hostgroup\n"
+" ipa automember-default-group-set --default-group=ipausers --type=group\n"
+"\n"
+" Set the default target group:\n"
+" ipa automember-default-group-remove --type=hostgroup\n"
+" ipa automember-default-group-remove --type=group\n"
+"\n"
+" Show the default target group:\n"
+" ipa automember-default-group-show --type=hostgroup\n"
+" ipa automember-default-group-show --type=group\n"
+"\n"
+" Find all of the automember rules:\n"
+" ipa automember-find\n"
+"\n"
+" Display a automember rule:\n"
+" ipa automember-show --type=hostgroup webservers\n"
+" ipa automember-show --type=group devel\n"
+"\n"
+" Delete an automember rule:\n"
+" ipa automember-del --type=hostgroup webservers\n"
+" ipa automember-del --type=group devel\n"
+msgstr ""
+
+#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+msgid "Inclusive Regex"
msgstr ""
-#: ipalib/plugins/aci.py:533
+#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+msgid "Exclusive Regex"
+msgstr ""
+
+#: ipalib/plugins/automember.py:127
+msgid "Attribute Key"
+msgstr ""
+
+#: ipalib/plugins/automember.py:128
+msgid ""
+"Attribute to filter via regex. For example fqdn for a host, or manager for a"
+" user"
+msgstr ""
+
+#: ipalib/plugins/automember.py:135
+msgid "Grouping Type"
+msgstr ""
+
+#: ipalib/plugins/automember.py:136
+msgid "Grouping to which the rule applies"
+msgstr ""
+
+#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+msgid "Automember Rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:166
+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/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
+#: ipalib/plugins/host.py:263 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
+msgid "Description"
+msgstr ""
+
+#: ipalib/plugins/automember.py:172
+msgid "A description of this auto member rule"
+msgstr ""
+
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
+msgid "Default Group"
+msgstr ""
+
+#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
+#: ipalib/plugins/automember.py:188
+#, python-format
+msgid "Group: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:215
+#, python-format
+msgid "%s is not a valid attribute."
+msgstr ""
+
+#: ipalib/plugins/automember.py:228
msgid ""
"\n"
-" Delete ACI.\n"
+" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:538
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:233
+#, python-format
+msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:543
+#: ipalib/plugins/automember.py:239
+msgid "Auto Membership is not configured"
+msgstr ""
+
+#: ipalib/plugins/automember.py:252
msgid ""
"\n"
-" Execute the aci-delete operation.\n"
+" Add conditions to an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:257
+msgid "Failed to add"
+msgstr ""
+
+#: ipalib/plugins/automember.py:264
+#, python-format
+msgid "Added condition(s) to \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:273
+msgid "Conditions that could not be added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:277
+msgid "Number of conditions added"
+msgstr ""
+
+#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#, python-format
+msgid "Auto member rule: %s not found!"
+msgstr ""
+
+#: ipalib/plugins/automember.py:329
+msgid ""
"\n"
-" :param aciname: The name of the ACI being added.\n"
-" :param kw: unused\n"
+" Override this so we can add completed and failed to the return result.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:576
+#: ipalib/plugins/automember.py:345
msgid ""
"\n"
-" Modify ACI.\n"
+" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
-#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
-#: ipalib/plugins/selfservice.py:212
-msgid "ACI"
+#: ipalib/plugins/automember.py:350
+#, python-format
+msgid "Removed condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:588
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/automember.py:359
+msgid "Conditions that could not be removed"
+msgstr ""
+
+#: ipalib/plugins/automember.py:363
+msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/aci.py:633
+#: ipalib/plugins/automember.py:418
msgid ""
"\n"
-" Search for ACIs.\n"
-"\n"
-" Returns a list of ACIs\n"
-"\n"
-" EXAMPLES:\n"
+" Override this so we can set completed and failed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:434
+msgid ""
"\n"
-" To find all ACIs that apply directly to members of the group ipausers:\n"
-" ipa aci-find --memberof=ipausers\n"
+" Modify an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:439
+#, python-format
+msgid "Modified automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:450
+msgid ""
"\n"
-" To find all ACIs that grant add access:\n"
-" ipa aci-find --permissions=add\n"
+" Delete an automember rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automember.py:455
+#, python-format
+msgid "Deleted automember rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:466
+msgid ""
"\n"
-" Note that the find command only looks for the given text in the set of\n"
-" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
-" For example, searching on memberof=ipausers will find all ACIs that\n"
-" have ipausers as a memberof. There may be other ACIs that apply to\n"
-" members of that group indirectly.\n"
+" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:653
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
+#: ipalib/plugins/automember.py:473
+#, python-format
+msgid "%(count)d rules matched"
+msgid_plural "%(count)d rules matched"
msgstr[0] ""
-#: ipalib/plugins/aci.py:823
+#: ipalib/plugins/automember.py:486
msgid ""
"\n"
-" Display a single ACI given an ACI name.\n"
+" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:837
+#: ipalib/plugins/automember.py:502
msgid ""
"\n"
-" Execute the aci-show operation.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param uid: The login name of the user to retrieve.\n"
-" :param kw: unused\n"
-" "
+" Set default group for all unmatched entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:865
+#: ipalib/plugins/automember.py:514
+#, python-format
+msgid "Set default group for automember \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automember.py:531
msgid ""
"\n"
-" Rename an ACI.\n"
+" Remove default group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/aci.py:878
-msgid "New ACI name"
+#: ipalib/plugins/automember.py:536
+#, python-format
+msgid "Removed default group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:882
-msgid "Renamed ACI to \"%(value)s\""
+#: ipalib/plugins/automember.py:548
+msgid "No default group set"
+msgstr ""
+
+#: ipalib/plugins/automember.py:567
+msgid ""
+"\n"
+" Display information about the default automember groups.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:20
+#: ipalib/plugins/automount.py:29
msgid ""
"\n"
"Automount\n"
@@ -538,673 +1090,580 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:182
-msgid ""
-"\n"
-" Location container for automount maps.\n"
-" "
+#: ipalib/plugins/automount.py:191
+msgid "automount location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:192
+msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:190
+#: ipalib/plugins/automount.py:195
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+#: ipalib/plugins/automount.py:196
+msgid "Automount Location"
+msgstr ""
+
+#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:197
+#: ipalib/plugins/automount.py:202
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:206
-msgid ""
-"\n"
-" Create a new automount location.\n"
-" "
+#: ipalib/plugins/automount.py:211
+msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:221
-msgid ""
-"\n"
-" Delete an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:213
+#, python-format
+msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:229
-msgid ""
-"\n"
-" Display an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:232
+msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:237
-msgid ""
-"\n"
-" Search for an automount location.\n"
-" "
+#: ipalib/plugins/automount.py:234
+#, python-format
+msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:245
-msgid ""
-"\n"
-" Generate automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:240
+msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid ""
-"\n"
-" Import automount files for a specific location.\n"
-" "
+#: ipalib/plugins/automount.py:246
+msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:249
+#, python-format
+msgid "%(count)d automount location matched"
+msgid_plural "%(count)d automount locations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:257
+msgid "Generate automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:319
+msgid "Import automount files for a specific location."
+msgstr ""
+
+#: ipalib/plugins/automount.py:323
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:315
+#: ipalib/plugins/automount.py:324
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:331
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:334
+#: ipalib/plugins/automount.py:343
+#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:341
-msgid ""
-"\n"
-" The basic idea is to read the master file and create all the maps\n"
-" we need, then read each map file and add all the keys for the map.\n"
-" "
+#: ipalib/plugins/automount.py:512
+msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:492
-msgid ""
-"\n"
-" Automount map object.\n"
-" "
+#: ipalib/plugins/automount.py:513
+msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:520
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:506
+#: ipalib/plugins/automount.py:521
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
-#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
-#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
-#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
-#: ipalib/plugins/sudorule.py:78
-msgid "Description"
+#: ipalib/plugins/automount.py:530
+msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:515
-msgid "Automount Maps"
+#: ipalib/plugins/automount.py:531
+msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
-msgid ""
-"\n"
-" Create a new automount map.\n"
-" "
+#: ipalib/plugins/automount.py:537
+msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:529
-msgid ""
-"\n"
-" Delete an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:539
+#, python-format
+msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:548
-msgid ""
-"\n"
-" Modify an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:545
+msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:556
-msgid ""
-"\n"
-" Search for an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:547
+#, python-format
+msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:564
-msgid ""
-"\n"
-" Display an automount map.\n"
-" "
+#: ipalib/plugins/automount.py:565
+msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:572
-msgid ""
-"\n"
-" Automount key object.\n"
-" "
+#: ipalib/plugins/automount.py:567
+#, python-format
+msgid "Modified automount map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:573
+msgid "Search for an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:576
+#, python-format
+msgid "%(count)d automount map matched"
+msgid_plural "%(count)d automount maps matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:584
+msgid "Display an automount map."
+msgstr ""
+
+#: ipalib/plugins/automount.py:590
+msgid "Automount key object."
+msgstr ""
+
+#: ipalib/plugins/automount.py:594
+msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
-#: ipalib/plugins/automount.py:850
+#: ipalib/plugins/automount.py:595
+msgid "automount keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
+#: ipalib/plugins/automount.py:911
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
-#: ipalib/plugins/automount.py:851
+#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
+#: ipalib/plugins/automount.py:912
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
-#: ipalib/plugins/automount.py:855
+#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:916
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:597
+#: ipalib/plugins/automount.py:615
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:624
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:625
+msgid "Automount Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:626
+#, 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:608
+#: ipalib/plugins/automount.py:627
+#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:609
+#: ipalib/plugins/automount.py:628
+#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:659
+#: ipalib/plugins/automount.py:678
+#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:717
-msgid ""
-"\n"
-" Create a new automount key.\n"
-" "
+#: ipalib/plugins/automount.py:736
+msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:742
-msgid ""
-"\n"
-" Create a new indirect mount point.\n"
-" "
+#: ipalib/plugins/automount.py:738
+#, python-format
+msgid "Added automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:761
+msgid "Create a new indirect mount point."
+msgstr ""
+
+#: ipalib/plugins/automount.py:763
+#, python-format
+msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:748
+#: ipalib/plugins/automount.py:768
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:752
+#: ipalib/plugins/automount.py:772
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:753
+#: ipalib/plugins/automount.py:773
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:772
-msgid ""
-"\n"
-" Delete an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:797
+msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:803
-msgid ""
-"\n"
-" Modify an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:799
+#, python-format
+msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:839
+msgid "Modify an automount key."
+msgstr ""
+
+#: ipalib/plugins/automount.py:841
+#, python-format
+msgid "Modified automount key \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/automount.py:846
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:836
-msgid ""
-"\n"
-" Search for an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:895
+msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:844
-msgid ""
-"\n"
-" Display an automount key.\n"
-" "
+#: ipalib/plugins/automount.py:898
+#, python-format
+msgid "%(count)d automount key matched"
+msgid_plural "%(count)d automount keys matched"
+msgstr[0] ""
+
+#: ipalib/plugins/automount.py:906
+msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:19
-msgid ""
-"\n"
-"Base classes for LDAP plugins.\n"
+#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:39
+#: ipalib/plugins/baseldap.py:43
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:42
+#: ipalib/plugins/baseldap.py:46
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:45
+#: ipalib/plugins/baseldap.py:49
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:48
+#: ipalib/plugins/baseldap.py:52
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:51
+#: ipalib/plugins/baseldap.py:55
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:54
+#: ipalib/plugins/baseldap.py:58
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:57
+#: ipalib/plugins/baseldap.py:61
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:66
+#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
-#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
-#: ipalib/plugins/sudorule.py:143
+#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:75
+#: ipalib/plugins/baseldap.py:79
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:78
+#: ipalib/plugins/baseldap.py:82
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
+#: ipalib/plugins/baseldap.py:85
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:84
+#: ipalib/plugins/baseldap.py:88
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:87
+#: ipalib/plugins/baseldap.py:91
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:93
+#: ipalib/plugins/baseldap.py:97
+msgid "Member HBAC service"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:100
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:102
+#: ipalib/plugins/baseldap.py:109
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:105
+#: ipalib/plugins/baseldap.py:112
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:108
+#: ipalib/plugins/baseldap.py:115
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:111
+#: ipalib/plugins/baseldap.py:118
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:114
+#: ipalib/plugins/baseldap.py:121
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:117
+#: ipalib/plugins/baseldap.py:124
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:120
+#: ipalib/plugins/baseldap.py:127
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:123
+#: ipalib/plugins/baseldap.py:130
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:126
+#: ipalib/plugins/baseldap.py:133
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:141
+#: ipalib/plugins/baseldap.py:148
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:144
+#: ipalib/plugins/baseldap.py:151
+msgid "Failed source hosts/hostgroups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:154
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:147
+#: ipalib/plugins/baseldap.py:157
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
+#: ipalib/plugins/baseldap.py:160
+msgid "Failed service/service groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:163
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:153
+#: ipalib/plugins/baseldap.py:166
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:171
-msgid ""
-"\n"
-" Given a list of values in the form name=value, return a list of name.\n"
-" "
+#: ipalib/plugins/baseldap.py:306
+msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:197
-msgid ""
-"\n"
-" When adding or removing reverse members we are faking an update to\n"
-" object A by updating the member attribute in object B. The memberof\n"
-" plugin makes this work by adding or removing the memberof attribute\n"
-" to/from object A, it just takes a little bit of time.\n"
-"\n"
-" This will loop for 6+ seconds, retrieving object A so we can see\n"
-" if all the memberof attributes have been updated.\n"
-" "
+#: ipalib/plugins/baseldap.py:307
+msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:241
-msgid ""
-"\n"
-" Object representing a LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:281
+#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:283
+#: ipalib/plugins/baseldap.py:342
+#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:284
+#: ipalib/plugins/baseldap.py:343
+#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:285
+#: ipalib/plugins/baseldap.py:344
+#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:286
+#: ipalib/plugins/baseldap.py:345
+#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:415
-msgid ""
-"Add an attribute/value pair. Format is attr=value. The attribute must be "
-"part of the schema."
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:420
+#: ipalib/plugins/baseldap.py:632
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:444
-msgid ""
-"\n"
-" If the set of objectclasses is limited enforce that only those\n"
-" are updated in entry_attrs (plus dn)\n"
-"\n"
-" allow_only tells us what mode to check in:\n"
-"\n"
-" If True then we enforce that the attributes must be in the list of\n"
-" allowed.\n"
-"\n"
-" If False then those attributes are not allowed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:474
-msgid ""
-"\n"
-" Callback registration interface\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:561
-msgid ""
-"\n"
-" Create a new entry in LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:703
+#: ipalib/plugins/baseldap.py:638
msgid ""
-"\n"
-" Base class for commands that need to retrieve an existing entry.\n"
-" "
+"Add an attribute/value pair. Format is attr=value. The attribute\n"
+"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:727
+#: ipalib/plugins/baseldap.py:644
msgid ""
-"\n"
-" Base class for commands that need to retrieve one or more existing entries.\n"
-" "
+"Delete an attribute/value pair. The option will be evaluated\n"
+"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:733
+#: ipalib/plugins/baseldap.py:965
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:750
-msgid ""
-"\n"
-" Retrieve an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/internal.py:409
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:821
-msgid ""
-"\n"
-" Update an LDAP entry.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:837
+#: ipalib/plugins/baseldap.py:1072
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:838
+#: ipalib/plugins/baseldap.py:1073
+#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:957
+#: ipalib/plugins/baseldap.py:1165
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:988
-msgid ""
-"\n"
-" Delete an LDAP entry and all of its direct subentries.\n"
-" "
+#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#, python-format
+msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1078
-msgid ""
-"\n"
-" Base class for member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1302
+#, python-format
+msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1120
-msgid ""
-"\n"
-" Add other LDAP entries to members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#, python-format
+msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
-#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
+#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: 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:1135 ipalib/plugins/baseldap.py:1596
+#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1226
-msgid ""
-"\n"
-" Remove LDAP entries from members.\n"
-" "
+#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#, python-format
+msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
+#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
+#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1335
-msgid ""
-"\n"
-" Retrieve all LDAP entries matching the given criteria.\n"
-" "
+#: ipalib/plugins/baseldap.py:1548
+#, python-format
+msgid "Search for %s with these %s %s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1344
+#: ipalib/plugins/baseldap.py:1549
+#, python-format
+msgid "Search for %s without these %s %s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1557
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1345
+#: ipalib/plugins/baseldap.py:1558
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1351
+#: ipalib/plugins/baseldap.py:1564
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1352
+#: ipalib/plugins/baseldap.py:1565
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1552
-msgid ""
-"\n"
-" Base class for reverse member manipulation.\n"
-" "
+#: ipalib/plugins/baseldap.py:1586
+msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1574
-msgid ""
-"\n"
-" Add other LDAP entries to members in reverse.\n"
-"\n"
-" The call looks like \"add A to B\" but in fact executes\n"
-" add B to A to handle reverse membership.\n"
-" "
+#: ipalib/plugins/baseldap.py:1587
+#, python-format
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1654
+#: ipalib/plugins/baseldap.py:1881
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1687
-msgid ""
-"\n"
-" Remove other LDAP entries from members in reverse.\n"
-"\n"
-" The call looks like \"remove A from B\" but in fact executes\n"
-" remove B from A to handle reverse membership.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1767
+#: ipalib/plugins/baseldap.py:1994
msgid "removed"
msgstr ""
-#: ipalib/plugins/batch.py:21
-msgid ""
-"\n"
-"Plugin to make multiple ipa calls via one remote procedure call\n"
-"\n"
-"To run this code in the lite-server\n"
-"\n"
-"curl -H \"Content-Type:application/json\" -H \"Accept:application/json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /etc/ipa/ca.crt -d @batch_request.json -X POST http://localhost:8888/ipa/json\n"
-"\n"
-"where the contents of the file batch_request.json follow the below example\n"
-"\n"
-"{\"method\":\"batch\",\"params\":[[\n"
-" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
-" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all\":\"true\"}]},\n"
-" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
-" ],{}],\"id\":1}\n"
-"\n"
-"The format of the response is nested the same way. At the top you will see\n"
-" \"error\": null,\n"
-" \"id\": 1,\n"
-" \"result\": {\n"
-" \"count\": 3,\n"
-" \"results\": [\n"
-"\n"
-"\n"
-"And then a nested response for each IPA command method sent in the request\n"
-"\n"
-msgstr ""
-
-#: ipalib/plugins/batch.py:61
+#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
-msgid "Client version. Used to determine if server will accept request."
-msgstr ""
-
-#: ipalib/plugins/cert.py:22
+#: ipalib/plugins/cert.py:43
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1266,155 +1725,106 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:104
-msgid ""
-"\n"
-" Return the value of CN in the subject of the request or None\n"
-" "
-msgstr ""
-
#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:115
-msgid ""
-"\n"
-" Return the first value of the subject alt name, if any\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:128
-msgid ""
-"\n"
-" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
-" parser.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:139
+#: ipalib/plugins/cert.py:144
+#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:142
-msgid ""
-"\n"
-" Strip any leading and trailing cruft around the BEGIN/END block\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:162
-msgid ""
-"\n"
-" Convert a SN given in decimal or hexadecimal.\n"
-" Returns the number or None if conversion fails.\n"
-" "
+#: ipalib/plugins/cert.py:207
+msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:188
-msgid ""
-"\n"
-" Given a principal with or without a realm return the\n"
-" host portion.\n"
-" "
+#: ipalib/plugins/cert.py:211
+msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:202
-msgid ""
-"\n"
-" Submit a certificate signing request.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:217
+#: ipalib/plugins/cert.py:221
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:224
+#: ipalib/plugins/cert.py:228
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
-#: ipalib/plugins/service.py:232
+#: 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
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
+#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:396
-msgid ""
-"\n"
-" Check the status of a certificate signing request.\n"
-" "
+#: ipalib/plugins/cert.py:400
+msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:402
+#: ipalib/plugins/cert.py:404
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:410
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:428
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:431
-msgid ""
-"\n"
-" Retrieve an existing certificate.\n"
-" "
+#: ipalib/plugins/cert.py:433
+msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
-#: ipalib/plugins/service.py:114
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1427,189 +1837,171 @@ msgid "File to store the certificate in."
msgstr ""
#: ipalib/plugins/cert.py:518
-msgid ""
-"\n"
-" Revoke a certificate.\n"
-" "
+msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:526
+#: ipalib/plugins/cert.py:524
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:534
+#: ipalib/plugins/cert.py:532
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:533
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:562
-msgid ""
-"\n"
-" Take a revoked certificate off hold.\n"
-" "
+#: ipalib/plugins/cert.py:554
+msgid "7 is not a valid revocation reason"
+msgstr ""
+
+#: ipalib/plugins/cert.py:563
+msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:569
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:573
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:20
+#: ipalib/plugins/config.py:31
msgid ""
"\n"
-"Manage the IPA configuration\n"
+"Server configuration\n"
"\n"
"Manage the default values that IPA uses and some of its tuning parameters.\n"
"\n"
-" To show the current configuration:\n"
-" ipa config-show\n"
+"NOTES:\n"
"\n"
-" To modify the configuration:\n"
-" ipa config-mod --maxusername=99\n"
+"The password notification value (--pwdexpnotify) is stored here so it will\n"
+"be replicated. It is not currently used to notify users in advance of an\n"
+"expiring password.\n"
"\n"
-"The available options are:\n"
+"Some attributes are read-only, provided only for information purposes. These\n"
+"include:\n"
"\n"
-"User management options:\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
"\n"
-" --maxusername=INT Max. username length when creating/modifying a user\n"
-" --homedirectory=STR Default location of home directories (default /home)\n"
-" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
-" --defaultgroup=STR Default group for new users (default ipausers). The\n"
-" group must exist, or adding new users will fail.\n"
-" --emaildomain=STR Default e-mail domain for new users\n"
+"EXAMPLES:\n"
"\n"
-"Search tuning options. These impact how much data is searched through and\n"
-"how many records may be returned on a given search.\n"
+" Show basic server configuration:\n"
+" ipa config-show\n"
"\n"
-" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 for\n"
-" unlimited)\n"
-" --searchrecordslimit=INT Max. number of records to search (-1 is unlimited)\n"
+" Show all configuration options:\n"
+" ipa config-show --all\n"
"\n"
-"Server Configuration.\n"
+" Change maximum username length to 99 characters:\n"
+" ipa config-mod --maxusername=99\n"
"\n"
-" --enable-migration=BOOL Enable migration mode\n"
-" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+" Increase default time and size limits for maximum IPA server search:\n"
+" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n"
"\n"
-"The password notification value is stored here so it will be replicated.\n"
-"It is not currently used to notify users in advance of an expiring\n"
-"password.\n"
+" Set default user e-mail domain:\n"
+" ipa config-mod --emaildomain=example.com\n"
"\n"
-"Some attributes are read-only, provided only for information purposes. These\n"
-"include:\n"
-"\n"
-"Certificate Subject base: the configured certificate subject base,\n"
-" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
-"Password plug-in features: currently defines additional hashes that the\n"
-" password will generate (there may be other conditions).\n"
+" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
+" ipa config-mod --enable-migration=TRUE\n"
msgstr ""
-#: ipalib/plugins/config.py:76
+#: ipalib/plugins/config.py:73
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
#: ipalib/plugins/config.py:80
-msgid ""
-"\n"
-" IPA configuration object\n"
-" "
+msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
+#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:96
-msgid "Max. username length"
+#: ipalib/plugins/config.py:95
+msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:100
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:102
-msgid "Default location of home directories."
+#: ipalib/plugins/config.py:101
+msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:105
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:107
-msgid "Default shell for new users."
+#: ipalib/plugins/config.py:106
+msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:110
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:112
-msgid "Default group for new users."
-msgstr ""
-
-#: ipalib/plugins/config.py:116
-msgid "Default e-mail domain for new users"
+#: ipalib/plugins/config.py:111
+msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:117
-msgid "Default e-mail domain new users."
+#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:120
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:122
-msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
+#: ipalib/plugins/config.py:121
+msgid ""
+"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:126
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:128
-msgid "Max. number of records to search (-1 is unlimited)."
+#: ipalib/plugins/config.py:127
+msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:132
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:134
-msgid "A comma-separated list of fields to search when searching for users."
-msgstr ""
-
-#: ipalib/plugins/config.py:139
-msgid "A comma-separated list of fields to search when searching for groups."
+#: ipalib/plugins/config.py:133
+msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:143
-msgid "Migration mode"
+#: ipalib/plugins/config.py:138
+msgid ""
+"A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:144
-msgid "Enable migration mode."
+#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:147
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:149
-msgid "Base for certificate subjects (OU=Test,O=Example)."
+#: ipalib/plugins/config.py:148
+msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:153
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:155
-msgid "Default group objectclassses (comma-separated list)."
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses (comma-separated list)"
msgstr ""
#: ipalib/plugins/config.py:159
@@ -1617,40 +2009,52 @@ msgid "Default user objectclasses"
msgstr ""
#: ipalib/plugins/config.py:160
-msgid "Default user objectclassses (comma-separated list)."
+msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:164
-msgid "Password Expiration Notification"
+#: ipalib/plugins/config.py:165
+msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:165
-msgid "Number of days's notice of impending password expiration."
+#: ipalib/plugins/config.py:166
+msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:170
+#: ipalib/plugins/config.py:171
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:171
-msgid "Extra hashes to generate in password plug-in."
+#: ipalib/plugins/config.py:172
+msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:183
-msgid ""
-"\n"
-" Modify configuration options.\n"
-" "
+#: ipalib/plugins/config.py:184
+msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:220
-msgid ""
-"\n"
-" Show the current configuration.\n"
-" "
+#: ipalib/plugins/config.py:192
+msgid "The group doesn't exist"
+msgstr ""
+
+#: ipalib/plugins/config.py:207
+#, python-format
+msgid "attribute \"%s\" not allowed"
+msgstr ""
+
+#: ipalib/plugins/config.py:215
+msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/delegation.py:19
+#: ipalib/plugins/config.py:228
+#, python-format
+msgid "%s default attribute %s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:237
+msgid "Show the current configuration."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:28
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -1664,129 +2068,106 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a delegation rule to allow editors to edit admin's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=admins --group=editors 'editors edit admins street'\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"
"\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=admins --group=editors 'editors edit admins street'\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=managers --group=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
-" ipa delegation-show 'editors edit admins street'\n"
+" ipa delegation-show \"managers edit employees' street\"\n"
"\n"
" Delete a rule:\n"
-" ipa delegation-del 'editors edit admins street'\n"
+" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:56
-msgid ""
-"\n"
-" memberOf is in filter but we want to pull out the group for easier\n"
-" displaying.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
+#, python-format
msgid "Delegation '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:71
+#, python-format
msgid "Error retrieving member group %(group)s: %(error)s"
msgstr ""
-#: ipalib/plugins/delegation.py:79
-msgid ""
-"\n"
-" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a delegation ACI, adding a new attribute\n"
-" membergroup.\n"
-" "
+#: ipalib/plugins/delegation.py:101
+msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:95
-msgid ""
-"\n"
-" Delegation object.\n"
-" "
+#: ipalib/plugins/delegation.py:102
+msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:103
+msgid "Delegations"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:104
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is "
"write."
msgstr ""
-#: ipalib/plugins/delegation.py:125
+#: ipalib/plugins/delegation.py:129
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:126
+#: ipalib/plugins/delegation.py:130
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:152
-msgid ""
-"\n"
-" Add a new delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:156
+msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:158
+#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:176
-msgid ""
-"\n"
-" Delete a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:178
+msgid "Delete a delegation."
msgstr ""
#: ipalib/plugins/delegation.py:181
+#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
#: ipalib/plugins/delegation.py:197
-msgid ""
-"\n"
-" Modify a delegation.\n"
-" "
+msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:201
+#: ipalib/plugins/delegation.py:199
+#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:219
-msgid ""
-"\n"
-" Search for delegations.\n"
-" "
+#: ipalib/plugins/delegation.py:217
+msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:223
+#: ipalib/plugins/delegation.py:220
+#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
-#: ipalib/plugins/delegation.py:250
-msgid ""
-"\n"
-" Display information about a delegation.\n"
-" "
+#: ipalib/plugins/delegation.py:246
+msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:20
+#: ipalib/plugins/dns.py:35
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1799,6 +2180,14 @@ msgid ""
" 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"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM 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"
+"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
"\n"
@@ -1808,11 +2197,14 @@ msgid ""
" Delete previously added nameserver from 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 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"
"\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"
@@ -1838,7 +2230,7 @@ msgid ""
"\n"
" A record: 1.2.3.4, 11.22.33.44\n"
"\n"
-" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '1.2.3.4'? Yes/No (default No):\n"
" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
" Record name: www\n"
" A record: 1.2.3.4 (A record 11.22.33.44 has been deleted)\n"
@@ -1867,357 +2259,564 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:140
-msgid "Generate serial number for zones."
+#: ipalib/plugins/dns.py:173
+msgid "invalid IP address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:180
+msgid "invalid IP network format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:188
+msgid "format must be specified as \"priority weight port target\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:195
+msgid ""
+"format must be specified as \"priority weight port target\" (see RFC 2782 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:205
+msgid ""
+"format must be specified as \"priority mailserver\" (see RFC 1035 for "
+"details)"
msgstr ""
-#: ipalib/plugins/dns.py:189
-msgid "see RFC 2915 "
+#: ipalib/plugins/dns.py:211
+msgid "the value of priority must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:214
+msgid "the value of priority must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:223
+msgid ""
+"format must be specified as \"order preference flags service regexp "
+"replacement\" (see RFC 2915 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:230
+msgid "order and preference must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:233
+msgid "the value of order and preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:238
+msgid "flag must be a single character (quotation is allowed)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:240
+msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
#: ipalib/plugins/dns.py:249
-msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgid ""
+"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:254
+msgid "the value of subtype must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+msgid "the value of subtype must be between 0 and 65535"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:266
msgid ""
-"\n"
-" DNS Zone, container for resource records.\n"
-" "
+"format must be specified as \"type key_tag algorithm certificate_or_crl\" "
+"(see RFC 4398 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:284
-msgid "DNS"
+#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
+msgid "key_tag, algorithm and digest_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:277
+msgid "the value of type and key_tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
+msgid "the value of algorithm must be between 0 and 255"
+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"
+msgstr ""
+
+#: ipalib/plugins/dns.py:299
+#, python-format
+msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:309
+msgid ""
+"format must be specified as \"key_tag algorithm digest_type digest\" (see "
+"RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
+msgid "the value of flags must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:323
+msgid "the value of algorithm and digest_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
+msgid ""
+"format must be specified as \"flags protocol algorithm public_key\" (see RFC"
+" 2535 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
+msgid "flags, protocol and algorithm must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:346
+msgid "the value of protocol must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:367
+msgid ""
+"format must be specified as\n"
+" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n"
+" where:\n"
+" d1: [0 .. 90] (degrees latitude)\n"
+" d2: [0 .. 180] (degrees longitude)\n"
+" m1, m2: [0 .. 59] (minutes latitude/longitude)\n"
+" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n"
+" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n"
+" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n"
+" See RFC 1876 for details"
+msgstr ""
+
+#: ipalib/plugins/dns.py:384
+#, python-format
+msgid "%s must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "%s must be float"
+msgstr ""
+
+#: ipalib/plugins/dns.py:394
+msgid "d1 and d2 must be between 0 and 90"
+msgstr ""
+
+#: ipalib/plugins/dns.py:398
+msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+msgstr ""
+
+#: ipalib/plugins/dns.py:401
+msgid "alt must be between -100000.00 and 42849672.95"
+msgstr ""
+
+#: ipalib/plugins/dns.py:405
+msgid "siz, hp and vp must be between 0 and 90000000.00"
+msgstr ""
+
+#: ipalib/plugins/dns.py:414
+msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:423
+msgid ""
+"format must be specified as \"next_domain_name type1 [type2 [type3 [...]]]\""
+" (see RFC 4034 for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:430
+msgid "type must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"format must be specified as \"preference exchanger\" (see RFC 2230 for "
+"details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:445
+msgid "the value of preference must be integer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:448
+msgid "the value of preference must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+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)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:474
+msgid "type_covered must be one of "
+msgstr ""
+
+#: ipalib/plugins/dns.py:482
+msgid "algorithm, labels, original_ttl and key_tag must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:489
+msgid ""
+"signature_expiration and signature_inception must follow time format "
+"\"YYYYMMDDHHMMSS\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:493
+msgid "the value of algorithm and labels must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:496
+msgid "the value of original_ttl must be between 0 and 4294967295"
+msgstr ""
+
+#: ipalib/plugins/dns.py:499
+msgid "the value of tag must be between 0 and 65535"
+msgstr ""
+
+#: ipalib/plugins/dns.py:508
+msgid ""
+"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
+"for details)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:515
+msgid "algorithm and fp_type must be integers"
+msgstr ""
+
+#: ipalib/plugins/dns.py:518
+msgid "the value of algorithm and fp_type must be between 0 and 255"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527
+msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+msgstr ""
+
+#: ipalib/plugins/dns.py:611
+#, python-format
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:638
+msgid "DNS zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639
+msgid "DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:646
+msgid "DNS Zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:647
+msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:652
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:290
+#: ipalib/plugins/dns.py:653
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:659
+msgid "Reverse zone IP network"
+msgstr ""
+
+#: ipalib/plugins/dns.py:660
+msgid "IP network to create reverse zone name from"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:297
-msgid "Authoritative nameserver."
+#: ipalib/plugins/dns.py:666
+msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:308
+#: ipalib/plugins/dns.py:678
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:309
+#: ipalib/plugins/dns.py:679
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:316
+#: ipalib/plugins/dns.py:686
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:687
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:324
+#: ipalib/plugins/dns.py:694
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:325
+#: ipalib/plugins/dns.py:695
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:332
+#: ipalib/plugins/dns.py:702
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:333
+#: ipalib/plugins/dns.py:703
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:340
+#: ipalib/plugins/dns.py:710
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:341
+#: ipalib/plugins/dns.py:711
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:349
+#: ipalib/plugins/dns.py:719
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:350
+#: ipalib/plugins/dns.py:720
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:354
+#: ipalib/plugins/dns.py:724
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:355
+#: ipalib/plugins/dns.py:725
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
+#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:365
+#: ipalib/plugins/dns.py:735
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:366
+#: ipalib/plugins/dns.py:736
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:372
+#: ipalib/plugins/dns.py:742
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:373
+#: ipalib/plugins/dns.py:743
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:382
-msgid ""
-"\n"
-" Create new DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:754
+msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
-#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
+#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:388
+#: ipalib/plugins/dns.py:759
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:762
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:397
+#: ipalib/plugins/dns.py:775
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:431
-msgid ""
-"\n"
-" Delete DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:785
+msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"\n"
-" Modify DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:811
+msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:452
-msgid ""
-"\n"
-" Search for DNS zones (SOA records).\n"
-" "
+#: ipalib/plugins/dns.py:817
+msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:460
-msgid ""
-"\n"
-" Display information about a DNS zone (SOA record).\n"
-" "
+#: ipalib/plugins/dns.py:830
+msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:468
-msgid ""
-"\n"
-" Disable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:848
+msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:472
-msgid "Disabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:850
+msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:490
-msgid ""
-"\n"
-" Enable DNS Zone.\n"
-" "
+#: ipalib/plugins/dns.py:869
+msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:494
-msgid "Enabled DNS zone \"%(value)s\""
+#: ipalib/plugins/dns.py:875
+msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:512
-msgid ""
-"\n"
-" DNS record.\n"
-" "
+#: ipalib/plugins/dns.py:878
+#, python-format
+msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:522
-msgid "DNS resource record"
+#: ipalib/plugins/dns.py:896
+msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
-msgid "Record name"
+#: ipalib/plugins/dns.py:899
+#, python-format
+msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
-msgid "Time to live"
+#: ipalib/plugins/dns.py:922
+msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:538
-msgid "Class"
+#: ipalib/plugins/dns.py:923
+msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:539
-msgid "DNS class"
+#: ipalib/plugins/dns.py:927
+msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:566
-msgid ""
-"\n"
-" Base class for DNS record commands with record options.\n"
-" "
+#: ipalib/plugins/dns.py:928
+msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:610
-msgid ""
-"\n"
-" Base class for adding/removing records from DNS resource entries.\n"
-" "
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid ""
-"\n"
-" Add records to DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:690
-msgid ""
-"\n"
-" Add new DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:944
+msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:699
-msgid "force NS record creation even if its hostname is not in DNS"
+#: ipalib/plugins/dns.py:945
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:972
+#, 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:740
+#: ipalib/plugins/dns.py:977
+#, python-format
msgid "Reverse zone %s requires exactly %d IP address components, %d given"
msgstr ""
-#: ipalib/plugins/dns.py:746
-msgid "PTR record '%s' is not fully qualified (check traling '.')"
+#: ipalib/plugins/dns.py:1149
+msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:789
-msgid ""
-"\n"
-" Delete DNS record entry.\n"
-" "
+#: ipalib/plugins/dns.py:1157
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1210
+msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:1250
+#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:799
-msgid ""
-"\n"
-" Delete DNS resource record.\n"
-" "
+#: ipalib/plugins/dns.py:1257
+msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:802
+#: ipalib/plugins/dns.py:1259
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:807
+#: ipalib/plugins/dns.py:1264
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:834
+#: ipalib/plugins/dns.py:1291
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:835
+#: ipalib/plugins/dns.py:1292
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:845
+#: ipalib/plugins/dns.py:1302
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1316
+#, python-format
+msgid "Delete %s '%s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1331
+#, python-format
msgid "%s record with value %s not found"
msgstr ""
-#: ipalib/plugins/dns.py:889
-msgid ""
-"\n"
-" Display DNS resource.\n"
-" "
+#: ipalib/plugins/dns.py:1345
+msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:905
-msgid ""
-"\n"
-" Search for DNS resources.\n"
-" "
+#: ipalib/plugins/dns.py:1360
+msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:932
-msgid ""
-"\n"
-" Resolve a host name in DNS\n"
-" "
+#: ipalib/plugins/dns.py:1386
+msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1389
+#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1393
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:962
+#: ipalib/plugins/dns.py:1415
+#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:970
-msgid ""
-"\n"
-" Checks if any of the servers has the DNS service enabled.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:19
+#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
"Entitlements\n"
@@ -2254,183 +2853,128 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:106
-msgid ""
-"\n"
-" Get our entitlement pool. Assume there is only one pool.\n"
-" "
+#: ipalib/plugins/entitle.py:183
+msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:129
-msgid ""
-"\n"
-" Retrieve our UUID, certificate and key from LDAP.\n"
-"\n"
-" Except on error the caller is responsible for removing temporary files\n"
-" "
+#: ipalib/plugins/entitle.py:184
+msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:178
-msgid ""
-"\n"
-" Entitlement object\n"
-" "
+#: ipalib/plugins/entitle.py:190
+msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:189
-msgid "Entitlements"
+#: ipalib/plugins/entitle.py:191
+msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:206
-msgid ""
-"\n"
-" Display current entitlements\n"
-" "
+#: ipalib/plugins/entitle.py:208
+msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
-#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
-#: ipalib/plugins/entitle.py:690
+#: 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
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
-#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
-#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
+#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
-#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+#: 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
msgid "Consumed"
msgstr ""
#: ipalib/plugins/entitle.py:276
-msgid ""
-"\n"
-" Consume an entitlement\n"
-" "
+msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:282
+#: ipalib/plugins/entitle.py:280
+#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:314
-msgid ""
-"\n"
-" Override this so we can set value to the number of entitlements\n"
-" consumed.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
-msgid ""
-"\n"
-" Returning the certificates isn't very interesting. Return the\n"
-" status of entitlements instead.\n"
-" "
+#: ipalib/plugins/entitle.py:378
+msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:380
-msgid ""
-"\n"
-" Retrieve the entitlement certs\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:397
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
+#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
-#: ipalib/plugins/entitle.py:628
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
+#: ipalib/plugins/entitle.py:623
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:460
-msgid ""
-"\n"
-" Search for entitlement accounts.\n"
-" "
+#: ipalib/plugins/entitle.py:456
+msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:473
-msgid ""
-"\n"
-" Register to the entitlement system\n"
-" "
+#: ipalib/plugins/entitle.py:468
+msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:479
+#: ipalib/plugins/entitle.py:472
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:476
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
-msgid "Enrollment UUID"
-msgstr ""
-
-#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
-msgid "Password"
+#: ipalib/plugins/entitle.py:483
+msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:495
+#: ipalib/plugins/entitle.py:488
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:569
-msgid ""
-"\n"
-" Import an entitlement certificate.\n"
-" "
+#: ipalib/plugins/entitle.py:566
+msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:646
-msgid ""
-"\n"
-" If we are adding the first entry there are no updates so EmptyModlist\n"
-" will get thrown. Ignore it.\n"
-" "
+#: ipalib/plugins/entitle.py:598
+msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:667
-msgid ""
-"\n"
-" Re-sync the local entitlement cache with the entitlement server\n"
-" "
+#: ipalib/plugins/entitle.py:662
+msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:666
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:20
+#: ipalib/plugins/group.py:26
msgid ""
"\n"
"Groups of users\n"
"\n"
"Manage groups of users. By default, new groups are POSIX groups. You\n"
"can add the --nonposix option to the group-add command to mark a new group\n"
-"as non-POSIX, and you can use the same argument to the group-mod command\n"
-"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"as non-POSIX. You can use the --posix argument with the group-mod command\n"
+"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n"
"converted to non-POSIX groups.\n"
"\n"
"Every group must have a description.\n"
@@ -2473,145 +3017,122 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:76
-msgid ""
-"\n"
-" Group object.\n"
-" "
+#: ipalib/plugins/group.py:80
+msgid "group"
+msgstr ""
+
+#: ipalib/plugins/group.py:81
+msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
+#: ipalib/plugins/sudorule.py:144
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:108
+#: ipalib/plugins/group.py:101
+msgid "User Group"
+msgstr ""
+
+#: ipalib/plugins/group.py:109
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:120
+#: ipalib/plugins/group.py:121
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:128
-msgid ""
-"\n"
-" Create a new group.\n"
-" "
+#: ipalib/plugins/group.py:129
+msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:132
+#: ipalib/plugins/group.py:131
+#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:137
+#: ipalib/plugins/group.py:136
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:154
-msgid ""
-"\n"
-" Delete group.\n"
-" "
+#: ipalib/plugins/group.py:153
+msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:155
+#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:186
-msgid ""
-"\n"
-" Modify a group.\n"
-" "
+#: ipalib/plugins/group.py:183
+msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:189
+#: ipalib/plugins/group.py:185
+#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:194
+#: ipalib/plugins/group.py:190
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:215
-msgid ""
-"\n"
-" Search for groups.\n"
-" "
+#: ipalib/plugins/group.py:222
+msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:220
+#: ipalib/plugins/group.py:227
+#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
-#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:233
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:257
-msgid ""
-"\n"
-" Display information about a named group.\n"
-" "
+#: ipalib/plugins/group.py:263
+msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:265
-msgid ""
-"\n"
-" Add members to a group.\n"
-" "
+#: ipalib/plugins/group.py:269
+msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:273
-msgid ""
-"\n"
-" Remove members from a group.\n"
-" "
+#: ipalib/plugins/group.py:275
+msgid "Remove members from a group."
msgstr ""
#: ipalib/plugins/group.py:281
-msgid ""
-"\n"
-" Detach a managed group from a user\n"
-" "
+msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:285
+#: ipalib/plugins/group.py:284
+#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:288
-msgid ""
-"\n"
-" This requires updating both the user and the group. We first need to\n"
-" verify that both the user and group can be updated, then we go\n"
-" about our work. We don't want a situation where only the user or\n"
-" group can be modified and we're left in a bad state.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/group.py:306
+#: ipalib/plugins/group.py:305
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:312
+#: ipalib/plugins/group.py:311
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:331
+#: ipalib/plugins/group.py:330
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbacrule.py:19
+#: ipalib/plugins/hbacrule.py:25
msgid ""
"\n"
"Host-based access control\n"
@@ -2633,7 +3154,7 @@ msgid ""
"\n"
" Create a rule, \"test1\", that grants all users access to the host \"server\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -2641,7 +3162,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -2650,7 +3171,7 @@ msgid ""
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -2661,262 +3182,210 @@ msgid ""
" ipa hbacrule-del allow_server\n"
msgstr ""
-#: ipalib/plugins/hbacrule.py:91
-msgid ""
-"\n"
-" See if options[attribute] is lower-case 'all' in a safe way.\n"
-" "
+#: ipalib/plugins/hbacrule.py:89
+msgid "Host-based access control commands"
msgstr ""
-#: ipalib/plugins/hbacrule.py:103
-msgid ""
-"\n"
-" HBAC object.\n"
-" "
+#: ipalib/plugins/hbacrule.py:93
+msgid "The deny type has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:112
+msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:126
+#: ipalib/plugins/hbacrule.py:113
+msgid "HBAC rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131
+msgid "HBAC Rules"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:132
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:136
-msgid "Rule type (allow or deny)"
+#: ipalib/plugins/hbacrule.py:142
+msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137
+#: ipalib/plugins/hbacrule.py:143
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
-#: ipalib/plugins/sudorule.py:86
+#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/sudorule.py:111
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
-#: ipalib/plugins/sudorule.py:87
+#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/sudorule.py:112
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/sudorule.py:117
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/sudorule.py:118
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:155
+#: ipalib/plugins/hbacrule.py:165
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156
+#: ipalib/plugins/hbacrule.py:166
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:161
+#: ipalib/plugins/hbacrule.py:171
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162
+#: ipalib/plugins/hbacrule.py:172
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
+#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:108
+#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
+#: ipalib/plugins/user.py:168
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
-#: ipalib/plugins/sudorule.py:119
-msgid "Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
+#: ipalib/plugins/sudorule.py:148
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/sudorule.py:152
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:194
-msgid "Source hosts"
+#: ipalib/plugins/hbacrule.py:204
+msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:198
-msgid "Source host groups"
+#: ipalib/plugins/hbacrule.py:208
+msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:206
+#: ipalib/plugins/hbacrule.py:216
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215
-msgid ""
-"\n"
-" Create a new HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:225
+msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:227
+#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
-msgid ""
-"\n"
-" Delete an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:238
+msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:234
+#: ipalib/plugins/hbacrule.py:240
+#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
-msgid ""
-"\n"
-" Modify an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:246
+msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:244
+#: ipalib/plugins/hbacrule.py:248
+#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:266
-msgid ""
-"\n"
-" Search for HBAC rules.\n"
-" "
+#: ipalib/plugins/hbacrule.py:270
+msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:273
+#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
-#: ipalib/plugins/hbacrule.py:278
-msgid ""
-"\n"
-" Display the properties of an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:280
+msgid "Display the properties of an HBAC rule."
msgstr ""
#: ipalib/plugins/hbacrule.py:286
-msgid ""
-"\n"
-" Enable an HBAC rule.\n"
-" "
+msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:290
+#: ipalib/plugins/hbacrule.py:288
+#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
-msgid ""
-"\n"
-" Disable an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:313
+msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:319
+#: ipalib/plugins/hbacrule.py:315
+#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:344
-msgid ""
-"\n"
-" Add an access time to an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:385
-msgid ""
-"\n"
-" Remove access time to HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:421
+msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:425
-msgid ""
-"\n"
-" Add users and groups to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:440
+msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:442
-msgid ""
-"\n"
-" Remove users and groups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:449
+msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:452
-msgid ""
-"\n"
-" Add target hosts and hostgroups to an HBAC rule\n"
-" "
+#: ipalib/plugins/hbacrule.py:468
+msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:469
-msgid ""
-"\n"
-" Remove target hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:477
+msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
-msgid ""
-"\n"
-" Add source hosts and hostgroups from a HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:524
+msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid ""
-"\n"
-" Remove source hosts and hostgroups from an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:558
+msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:506
-msgid ""
-"\n"
-" Add services to an HBAC rule.\n"
-" "
+#: ipalib/plugins/hbacrule.py:577
+msgid "Remove service and service groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:523
-msgid ""
-"\n"
-" Remove service and service groups from an HBAC rule.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/hbacsvc.py:19
+#: ipalib/plugins/hbacsvc.py:27
msgid ""
"\n"
"HBAC Services\n"
@@ -2941,82 +3410,76 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:51
-msgid ""
-"\n"
-" HBAC Service object.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:50 ipalib/plugins/hbacsvcgroup.py:49
+msgid "Host based access control commands"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:61
-msgid "HBAC Services"
+#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73
+msgid "HBAC service"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:58
+msgid "HBAC services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "Service name"
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:67
-msgid "HBAC service"
+msgid "HBAC Service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:74
+#: ipalib/plugins/hbacsvc.py:72
+msgid "Service name"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:80
msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:82
-msgid ""
-"\n"
-" Add a new HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:88
+msgid "Add a new HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:85
+#: ipalib/plugins/hbacsvc.py:90
+#, python-format
msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:91
-msgid ""
-"\n"
-" Delete an existing HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:96
+msgid "Delete an existing HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:94
+#: ipalib/plugins/hbacsvc.py:98
+#, python-format
msgid "Deleted HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:100
-msgid ""
-"\n"
-" Modify an HBAC service.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modify an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:104
+#: ipalib/plugins/hbacsvc.py:106
+#, python-format
msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvc.py:110
-msgid ""
-"\n"
-" Search for HBAC services.\n"
-" "
+#: ipalib/plugins/hbacsvc.py:112
+msgid "Search for HBAC services."
msgstr ""
-#: ipalib/plugins/hbacsvc.py:114
+#: ipalib/plugins/hbacsvc.py:115
+#, python-format
msgid "%(count)d HBAC service matched"
msgid_plural "%(count)d HBAC services matched"
msgstr[0] ""
#: ipalib/plugins/hbacsvc.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service.\n"
-" "
+msgid "Display information about an HBAC service."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:19
+#: ipalib/plugins/hbacsvcgroup.py:24
msgid ""
"\n"
"HBAC Service Groups\n"
@@ -3043,92 +3506,243 @@ msgid ""
" ipa hbacsvcgroup-del login\n"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:51
-msgid ""
-"\n"
-" HBAC service group object.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:56
+msgid "HBAC service group"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:57
+msgid "HBAC service groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:65
+msgid "HBAC Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:64
-msgid "HBAC service Groups"
+#: ipalib/plugins/hbacsvcgroup.py:66
+msgid "HBAC Service Group"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:69
+#: ipalib/plugins/hbacsvcgroup.py:71
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:76
+#: ipalib/plugins/hbacsvcgroup.py:78
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:84
-msgid ""
-"\n"
-" Add a new HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:86
+msgid "Add a new HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:87
+#: ipalib/plugins/hbacsvcgroup.py:88
+#, python-format
msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:93
-msgid ""
-"\n"
-" Delete an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:94
+msgid "Delete an HBAC service group."
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:96
+#, python-format
msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
#: ipalib/plugins/hbacsvcgroup.py:102
-msgid ""
-"\n"
-" Modify an HBAC service group.\n"
-" "
+msgid "Modify an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:105
+#: ipalib/plugins/hbacsvcgroup.py:104
+#, python-format
msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:111
-msgid ""
-"\n"
-" Search for an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:110
+msgid "Search for an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:114
+#: ipalib/plugins/hbacsvcgroup.py:113
+#, python-format
msgid "%(count)d HBAC service group matched"
msgid_plural "%(count)d HBAC service groups matched"
msgstr[0] ""
-#: ipalib/plugins/hbacsvcgroup.py:122
-msgid ""
-"\n"
-" Display information about an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:120
+msgid "Display information about an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:130
-msgid ""
-"\n"
-" Add members to an HBAC service group.\n"
-" "
+#: ipalib/plugins/hbacsvcgroup.py:126
+msgid "Add members to an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:138
+#: ipalib/plugins/hbacsvcgroup.py:132
+msgid "Remove members from an HBAC service group."
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:27
msgid ""
"\n"
-" Remove members from an HBAC service group.\n"
-" "
+"Simulate use of Host-based access controls\n"
+"\n"
+"HBAC rules control who can access what services on what hosts and from where.\n"
+"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"
+"\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"
+" existing enabled rules.\n"
+"\n"
+" ipa hbactest --user= --srchost= --host= --service=\n"
+" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+"\n"
+" --user, --srchost, --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"
+"\n"
+" If --enabled is specified, all enabled HBAC rules will be added to simulation\n"
+"\n"
+" If --disabled is specified, all disabled HBAC rules will be added to simulation\n"
+"\n"
+" If --nodetail is specified, do not return information about rules matched/not matched.\n"
+"\n"
+" If both --rules and --enabled are specified, apply simulation to --rules _and_\n"
+" all IPA enabled rules.\n"
+"\n"
+" If no --rules specified, simulation is run against all IPA enabled rules.\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" --------------------\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: myrule\n"
+"\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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" 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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: new-rule\n"
+"\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"
+" ---------------------\n"
+" Access granted: False\n"
+" ---------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" 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"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" notmatched: my-second-rule\n"
+" notmatched: my-third-rule\n"
+" notmatched: myrule\n"
+" notmatched: new-rule\n"
+" matched: allow_all\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:161
+msgid "Simulate use of Host-based access controls"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:165
+msgid "Matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:166
+msgid "Not matched rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:167
+msgid "Non-existent or invalid rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:168
+msgid "Result of simulation"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/passwd.py:69
+msgid "User name"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:179
+msgid "Source host"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:183
+msgid "Target host"
msgstr ""
-#: ipalib/plugins/host.py:20
+#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
+#: ipalib/plugins/service.py:223
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:191
+msgid "Rules to test. If not specified, --enabled is assumed"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:196
+msgid "Hide details which rules are matched, not matched, or invalid"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:200
+msgid "Include all enabled IPA rules into test [default]"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:204
+msgid "Include all disabled IPA rules into test"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:266
+msgid "Unresolved rules in --rules"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:342
+#, python-format
+msgid "Access granted: %s"
+msgstr ""
+
+#: ipalib/plugins/host.py:42
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3184,217 +3798,201 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:97
-msgid ""
-"\n"
-" Require at least one dot in the hostname (to support localhost.localdomain)\n"
-" "
-msgstr ""
-
#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:142
+#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:185
-msgid ""
-"\n"
-" Verify that we have either an IPv4 or IPv6 address.\n"
-" "
+#: ipalib/plugins/host.py:207
+msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:189
-msgid "invalid IP address"
+#: ipalib/plugins/host.py:216
+msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:194
-msgid ""
-"\n"
-" Host object.\n"
-" "
+#: ipalib/plugins/host.py:217
+msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:249
+msgid "Host"
+msgstr ""
+
+#: ipalib/plugins/host.py:257
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:238
+#: ipalib/plugins/host.py:264
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:242
+#: ipalib/plugins/host.py:268
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:243
+#: ipalib/plugins/host.py:269
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:248
+#: ipalib/plugins/host.py:274
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:252
+#: ipalib/plugins/host.py:278
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:279
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:283
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:258
+#: ipalib/plugins/host.py:284
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:262
+#: ipalib/plugins/host.py:288
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:263
+#: ipalib/plugins/host.py:289
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:266
+#: ipalib/plugins/host.py:292
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:271
+#: ipalib/plugins/host.py:297
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:306
-msgid ""
-"\n"
-" Add a new host.\n"
-" "
+#: ipalib/plugins/host.py:366
+msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:369
+#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:316
+#: ipalib/plugins/host.py:374
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:319
+#: ipalib/plugins/host.py:377
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:322
+#: ipalib/plugins/host.py:380
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#: ipalib/plugins/host.py:381
+msgid "IP Address"
+msgstr ""
+
+#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:481
+#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:422
-msgid ""
-"\n"
-" Delete a host.\n"
-" "
+#: ipalib/plugins/host.py:499
+msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:426
+#: ipalib/plugins/host.py:501
+#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:431
+#: ipalib/plugins/host.py:506
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:537
-msgid ""
-"\n"
-" Modify information about a host.\n"
-" "
+#: ipalib/plugins/host.py:612
+msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:542
+#: ipalib/plugins/host.py:615
+#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:549
+#: ipalib/plugins/host.py:622
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:618
-msgid ""
-"\n"
-" Search for hosts.\n"
-" "
+#: ipalib/plugins/host.py:634
+msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:623
+#: ipalib/plugins/host.py:708
+msgid "Search for hosts."
+msgstr ""
+
+#: ipalib/plugins/host.py:712
+#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:643
-msgid ""
-"\n"
-" Display information about a host.\n"
-" "
+#: ipalib/plugins/host.py:742
+msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:684
-msgid ""
-"\n"
-" Disable the Kerberos key, SSL certificate and all services of a host.\n"
-" "
+#: ipalib/plugins/host.py:786
+msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:688
+#: ipalib/plugins/host.py:789
+#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:770
-msgid ""
-"\n"
-" Add hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:876
+msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:781
-msgid ""
-"\n"
-" Remove hosts that can manage this host.\n"
-" "
+#: ipalib/plugins/host.py:890
+msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:20
+#: ipalib/plugins/hostgroup.py:25
msgid ""
"\n"
"Groups of hosts.\n"
@@ -3426,1016 +4024,1154 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:55
-msgid ""
-"\n"
-" Hostgroup object.\n"
-" "
+#: ipalib/plugins/hostgroup.py:60
+msgid "host group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:61
+msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:78
+#: ipalib/plugins/hostgroup.py:75
+msgid "Host Group"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:80
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:79
+#: ipalib/plugins/hostgroup.py:81
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:86
+#: ipalib/plugins/hostgroup.py:88
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:94
-msgid ""
-"\n"
-" Add a new hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:114
+msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:98
+#: ipalib/plugins/hostgroup.py:116
+#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:104
+#: ipalib/plugins/hostgroup.py:131
+#, python-format
msgid ""
-"\n"
-" Delete a hostgroup.\n"
-" "
+"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:108
+#: ipalib/plugins/hostgroup.py:153
+msgid "Delete a hostgroup."
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:155
+#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
-msgid ""
-"\n"
-" Modify a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:161
+msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:118
+#: ipalib/plugins/hostgroup.py:163
+#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:124
-msgid ""
-"\n"
-" Search for hostgroups.\n"
-" "
+#: ipalib/plugins/hostgroup.py:173
+msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:128
+#: ipalib/plugins/hostgroup.py:177
+#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/hostgroup.py:136
-msgid ""
-"\n"
-" Display information about a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:191
+msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:144
-msgid ""
-"\n"
-" Add members to a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:201
+msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:152
-msgid ""
-"\n"
-" Remove members from a hostgroup.\n"
-" "
+#: ipalib/plugins/hostgroup.py:211
+msgid "Remove members from a hostgroup."
msgstr ""
-#: ipalib/plugins/internal.py:22
-msgid ""
-"\n"
-"Plugins not accessible directly through the CLI, commands used internally\n"
-msgstr ""
-
-#: ipalib/plugins/internal.py:36
-msgid ""
-"\n"
-" Export plugin meta-data for the webUI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
-#: ipalib/plugins/internal.py:47
+#: ipalib/plugins/internal.py:47 ipalib/plugins/internal.py:56
msgid "Name of method to export"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Dict of JSON encoded IPA Objects"
-msgstr ""
-
-#: ipalib/plugins/internal.py:53
-msgid "Dict of JSON encoded IPA Methods"
-msgstr ""
-
-#: ipalib/plugins/internal.py:96
-msgid "Logged In As"
-msgstr ""
-
-#: ipalib/plugins/internal.py:99
-msgid "Attribute"
-msgstr ""
-
-#: ipalib/plugins/internal.py:102
-msgid "Add Automount Location"
-msgstr ""
-
-#: ipalib/plugins/internal.py:103
-msgid "Automount Location Settings"
-msgstr ""
-
-#: ipalib/plugins/internal.py:106
-msgid "Add Automount Map"
+#: ipalib/plugins/internal.py:59
+msgid "Name of command to export"
msgstr ""
-#: ipalib/plugins/internal.py:109
-msgid "Add Automount Key"
+#: ipalib/plugins/internal.py:64
+msgid "Dict of JSON encoded IPA Objects"
msgstr ""
-#: ipalib/plugins/internal.py:112
-msgid "Unspecified"
+#: ipalib/plugins/internal.py:65
+msgid "Dict of JSON encoded IPA Methods"
msgstr ""
-#: ipalib/plugins/internal.py:113
-msgid "Key Compromise"
+#: ipalib/plugins/internal.py:66
+msgid "Dict of JSON encoded IPA Commands"
msgstr ""
-#: ipalib/plugins/internal.py:114
-msgid "CA Compromise"
+#: ipalib/plugins/internal.py:147
+msgid ""
+"Your Kerberos ticket is no longer valid. Please run kinit and then click "
+"'Retry'. If this is your first time running the IPA Web UI <a "
+"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
+"configure your browser."
msgstr ""
-#: ipalib/plugins/internal.py:115
-msgid "Affiliation Changed"
+#: ipalib/plugins/internal.py:148
+msgid "Kerberos ticket no longer valid."
msgstr ""
-#: ipalib/plugins/internal.py:116
-msgid "Superseded"
+#: ipalib/plugins/internal.py:153
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:117
-msgid "Cessation of Operation"
+#: ipalib/plugins/internal.py:154
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:118
-msgid "Certificate Hold"
+#: ipalib/plugins/internal.py:155
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:119
-msgid "Remove from CRL"
+#: ipalib/plugins/internal.py:156
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:120
-msgid "Privilege Withdrawn"
+#: ipalib/plugins/internal.py:157
+msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:121
-msgid "AA Compromise"
+#: ipalib/plugins/internal.py:158
+msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:122
-msgid ""
-"To confirm your intention to revoke this certificate, select a reason from "
-"the pull-down list, and click the \"Revoke\" button."
+#: ipalib/plugins/internal.py:159
+msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:124
-msgid "Note"
+#: ipalib/plugins/internal.py:160
+msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:125
-msgid "Reason for Revocation"
+#: ipalib/plugins/internal.py:162
+msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:126
-msgid ""
-"To confirm your intention to restore this certificate, click the \"Restore\""
-" button."
+#: ipalib/plugins/internal.py:163
+msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:128
-msgid "Issued To"
+#: ipalib/plugins/internal.py:164
+msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:129
-msgid "Common Name"
+#: ipalib/plugins/internal.py:165
+msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:130
-msgid "Organization"
+#: ipalib/plugins/internal.py:167
+msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:131
-msgid "Organizational Unit"
+#: ipalib/plugins/internal.py:168
+msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:133
-msgid "Issued By"
+#: ipalib/plugins/internal.py:169
+msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:134
-msgid "Validity"
+#: ipalib/plugins/internal.py:170
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:135
-msgid "Issued On"
+#: ipalib/plugins/internal.py:171
+msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:136
-msgid "Expires On"
+#: ipalib/plugins/internal.py:172
+msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:137
-msgid "Fingerprints"
+#: ipalib/plugins/internal.py:173
+msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:138
-msgid "SHA1 Fingerprint"
+#: ipalib/plugins/internal.py:174
+msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:139
-msgid "MD5 Fingerprint"
+#: ipalib/plugins/internal.py:176
+msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:140
-msgid "Enter the Base64-encoded CSR below"
+#: ipalib/plugins/internal.py:179
+msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:141
-msgid "Valid Certificate Present"
+#: ipalib/plugins/internal.py:180
+msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:142
-msgid "New Certificate"
+#: ipalib/plugins/internal.py:181
+msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:143
-msgid "Certificate Revoked"
+#: ipalib/plugins/internal.py:182
+msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:144
-msgid "No Valid Certificate"
+#: ipalib/plugins/internal.py:183
+msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:145
-msgid "Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:184
+msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:146
-msgid "Issue New Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:185
+msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:147
-msgid "Revoke Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:186
+msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Restore Certificate for ${entity} ${primary_key}"
+#: ipalib/plugins/internal.py:187
+msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:152
-msgid "Name"
+#: ipalib/plugins/internal.py:188
+msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:155
-msgid "Add Delegation"
+#: ipalib/plugins/internal.py:189
+msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:158
-msgid "Add DNS Zone"
+#: ipalib/plugins/internal.py:190
+msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:159
-msgid "DNS Zone Settings"
+#: ipalib/plugins/internal.py:191
+msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:162
-msgid "Add DNS Resource Record"
+#: ipalib/plugins/internal.py:192
+msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Resource"
+#: ipalib/plugins/internal.py:193
+msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:165
-msgid "Data"
+#: ipalib/plugins/internal.py:194
+msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:166
-msgid "Records for DNS Zone"
+#: ipalib/plugins/internal.py:195
+msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:169
-msgid "Add Group"
+#: ipalib/plugins/internal.py:196
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:170
-msgid "Group Settings"
+#: ipalib/plugins/internal.py:199
+msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
-msgid "Is this a POSIX group?"
+#: ipalib/plugins/internal.py:200
+msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:174
-msgid "Add HBAC Rule"
+#: ipalib/plugins/internal.py:201
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
-#: ipalib/plugins/internal.py:306
-msgid "Active"
+#: ipalib/plugins/internal.py:202
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
-msgid "Allow"
+#: ipalib/plugins/internal.py:203
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
-msgid "Deny"
+#: ipalib/plugins/internal.py:204
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
-#: ipalib/plugins/internal.py:308
-msgid "Inactive"
+#: ipalib/plugins/internal.py:207
+msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
-msgid "Rule status"
+#: ipalib/plugins/internal.py:208
+msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
-msgid "Who"
+#: ipalib/plugins/internal.py:209
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
-msgid "Anyone"
+#: ipalib/plugins/internal.py:210
+msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
-msgid "Specified Users and Groups"
+#: ipalib/plugins/internal.py:211
+msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:183
-msgid "Accessing"
+#: ipalib/plugins/internal.py:212
+msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
-msgid "Any Host"
+#: ipalib/plugins/internal.py:213
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
-msgid "Specified Hosts and Groups"
+#: ipalib/plugins/internal.py:214
+msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Via Service"
+#: ipalib/plugins/internal.py:215
+msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:187
-msgid "Any Service"
+#: ipalib/plugins/internal.py:216
+msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:188
-msgid "Specified Services and Groups"
+#: ipalib/plugins/internal.py:217
+msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "From"
+#: ipalib/plugins/internal.py:218
+msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:192
-msgid "Add HBAC Service"
+#: ipalib/plugins/internal.py:219
+msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:195
-msgid "Add HBAC Service Group"
+#: ipalib/plugins/internal.py:220
+msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:199
-msgid "Add Host"
+#: ipalib/plugins/internal.py:221
+msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:200
-msgid "Host Certificate"
+#: ipalib/plugins/internal.py:222
+msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
-msgid "Host Name"
+#: ipalib/plugins/internal.py:226
+msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:202
-msgid "Host Settings"
+#: ipalib/plugins/internal.py:227
+msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:203
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:228
+msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:204
-msgid "Enrollment"
+#: ipalib/plugins/internal.py:229
+msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:205
-msgid "Fully Qualified Host Name"
+#: ipalib/plugins/internal.py:230
+msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
-msgid "Status"
+#: ipalib/plugins/internal.py:231
+msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:208
-msgid "Kerberos Key Present, Host Provisioned"
+#: ipalib/plugins/internal.py:234
+msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
-msgid "Delete Key, Unprovision"
+#: ipalib/plugins/internal.py:235
+msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
-msgid "Kerberos Key Not Present"
+#: ipalib/plugins/internal.py:236
+msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:211
-msgid "Enroll via One-Time-Password"
+#: ipalib/plugins/internal.py:239
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:212
-msgid "Set OTP"
+#: ipalib/plugins/internal.py:240
+msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "One-Time-Password has been set."
+#: ipalib/plugins/internal.py:242
+msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
-msgid "Unprovisioning ${entity}"
+#: ipalib/plugins/internal.py:244
+msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:215
-msgid "Are you sure you want to unprovision this host?"
+#: ipalib/plugins/internal.py:248
+msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
-msgid "Unprovision"
+#: ipalib/plugins/internal.py:253
+msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
-msgid "Add Host Group"
+#: ipalib/plugins/internal.py:256
+msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:220
-msgid "Host Group Settings"
+#: ipalib/plugins/internal.py:257
+msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:223
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:258
+msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:226
-msgid "Add Netgroup"
+#: ipalib/plugins/internal.py:261
+msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:227
-msgid "Netgroup Settings"
+#: ipalib/plugins/internal.py:262
+msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:230
-msgid "Add Permission"
+#: ipalib/plugins/internal.py:263
+msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
-msgid "Identity"
+#: ipalib/plugins/internal.py:264
+msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:233
-msgid "Target"
+#: ipalib/plugins/internal.py:265
+msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:235
-msgid "By Subtree"
+#: ipalib/plugins/internal.py:266
+msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:236
-msgid "Target Group"
+#: ipalib/plugins/internal.py:267
+msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:237
-msgid "Object By Type"
+#: ipalib/plugins/internal.py:268
+msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:238
-msgid "Permission with invalid target specification"
+#: ipalib/plugins/internal.py:269
+msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:241
-msgid "Add Privilege"
+#: ipalib/plugins/internal.py:270
+msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:242
-msgid "Privilege Settings"
+#: ipalib/plugins/internal.py:271
+msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:245
-msgid "Add Password Policy"
+#: ipalib/plugins/internal.py:272
+msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
-msgid "Password Policy"
+#: ipalib/plugins/internal.py:273
+msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:249
-msgid "Add Role"
+#: ipalib/plugins/internal.py:274
+msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Role Settings"
+#: ipalib/plugins/internal.py:275
+msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Add Self Service Definition"
+#: ipalib/plugins/internal.py:276
+msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:256
-msgid "Add Service"
+#: ipalib/plugins/internal.py:277
+msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:257
-msgid "Service Certificate"
+#: ipalib/plugins/internal.py:278
+msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:258
-msgid "Service Settings"
+#: ipalib/plugins/internal.py:279
+msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:260
-msgid "Provisioning"
+#: ipalib/plugins/internal.py:280
+msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:261
-msgid "Service"
+#: ipalib/plugins/internal.py:281
+msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:263
-msgid "Kerberos Key Present, Service Provisioned"
+#: ipalib/plugins/internal.py:282
+msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Are you sure you want to unprovision this service?"
+#: ipalib/plugins/internal.py:283
+msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:271
-msgid "Add Sudo Command"
+#: ipalib/plugins/internal.py:284
+msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:275
-msgid "Add Sudo Command Group"
+#: ipalib/plugins/internal.py:285
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\""
+" button."
msgstr ""
-#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
-msgid "Commands"
+#: ipalib/plugins/internal.py:286
+msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:279
-msgid "Add Sudo Rule"
+#: ipalib/plugins/internal.py:287
+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:287
-msgid "Access this host"
+#: ipalib/plugins/internal.py:288
+msgid "Certificate Revoked"
msgstr ""
#: ipalib/plugins/internal.py:290
-msgid "Run Commands"
+msgid "SHA1 Fingerprint"
msgstr ""
#: ipalib/plugins/internal.py:291
-msgid "Any Command"
+msgid "Superseded"
msgstr ""
#: ipalib/plugins/internal.py:292
-msgid "Specified Commands and Groups"
+msgid "Unspecified"
msgstr ""
#: ipalib/plugins/internal.py:293
-msgid "As Whom"
+msgid "Valid Certificate Present"
msgstr ""
#: ipalib/plugins/internal.py:294
-msgid "Any Group"
+msgid "Validity"
msgstr ""
#: ipalib/plugins/internal.py:295
-msgid "Specified Groups"
-msgstr ""
-
-#: ipalib/plugins/internal.py:297
-msgid "External"
+msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:300
-msgid "Add User"
+#: ipalib/plugins/internal.py:298
+msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:301
-msgid "Account Settings"
+#: ipalib/plugins/internal.py:299
+msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:302
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:300
+msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:303
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:305
+msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:304
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:306
+msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:305
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:307
+msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:307
-msgid "Click to Deactivate"
+#: ipalib/plugins/internal.py:308
+msgid "You will be redirected to DNS Zone."
msgstr ""
#: ipalib/plugins/internal.py:309
-msgid "Click to Activate"
+msgid "Standard Record Types"
msgstr ""
#: ipalib/plugins/internal.py:310
-msgid "Error changing account status"
+msgid "Records for DNS Zone"
msgstr ""
#: ipalib/plugins/internal.py:311
-msgid "Reset Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:312
-msgid "New Password"
-msgstr ""
-
-#: ipalib/plugins/internal.py:313
-msgid "Repeat Password"
+msgid "Record Type"
msgstr ""
#: ipalib/plugins/internal.py:314
-msgid "Password change complete"
+msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:315
-msgid "Passwords must match"
+#: ipalib/plugins/internal.py:317
+msgid "Account"
msgstr ""
#: ipalib/plugins/internal.py:319
-msgid "Add"
+msgid "Certificates"
msgstr ""
#: ipalib/plugins/internal.py:320
-msgid "Add and Add Another"
+msgid "Consume"
msgstr ""
#: ipalib/plugins/internal.py:321
-msgid "Add and Edit"
-msgstr ""
-
-#: ipalib/plugins/internal.py:322
-msgid "Add and Close"
+msgid "Consume Entitlement"
msgstr ""
#: ipalib/plugins/internal.py:323
-msgid "Add Many"
+msgid "Download"
msgstr ""
#: ipalib/plugins/internal.py:324
-msgid "Back to List"
-msgstr ""
-
-#: ipalib/plugins/internal.py:325
-msgid "Cancel"
+msgid "Download Certificate"
msgstr ""
#: ipalib/plugins/internal.py:326
-msgid "Close"
+msgid "Import"
msgstr ""
#: ipalib/plugins/internal.py:327
-msgid "Enroll"
+msgid "Import Certificate"
msgstr ""
#: ipalib/plugins/internal.py:328
-msgid "Find"
+msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
#: ipalib/plugins/internal.py:329
-msgid "Get"
+msgid "Loading..."
msgstr ""
#: ipalib/plugins/internal.py:330
-msgid "Issue"
-msgstr ""
-
-#: ipalib/plugins/internal.py:331
-msgid "OK"
+msgid "No Certificate."
msgstr ""
#: ipalib/plugins/internal.py:332
-msgid "Reset"
+msgid "Register"
msgstr ""
#: ipalib/plugins/internal.py:333
-msgid "Delete"
-msgstr ""
-
-#: ipalib/plugins/internal.py:334
-msgid "Restore"
+msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335
-msgid "Retry"
-msgstr ""
-
-#: ipalib/plugins/internal.py:336
-msgid "Revoke"
-msgstr ""
-
-#: ipalib/plugins/internal.py:337
-msgid "Update"
+#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:431
+msgid "Status"
msgstr ""
#: ipalib/plugins/internal.py:338
-msgid "View"
+msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:341
-msgid "Available"
+#: ipalib/plugins/internal.py:339
+msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:342
-msgid "This page has unsaved changes. Please save or revert."
+#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:470
+msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:343
-msgid "Dirty"
+#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+msgid "Any Host"
msgstr ""
#: ipalib/plugins/internal.py:344
-msgid "Hide already enrolled."
+msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345
-msgid "Select ${entity} to be removed."
+#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+msgid "Anyone"
msgstr ""
#: ipalib/plugins/internal.py:346
-msgid "Remove ${entity}."
+msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347
-msgid "Prospective"
+#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:475
+msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:350
-msgid "Managed by"
+#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:351
-msgid "Member"
+#: ipalib/plugins/internal.py:349
+msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:352
-msgid "Indirect Member"
+#: ipalib/plugins/internal.py:350
+msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:353
-msgid "Member Of"
+#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354
-msgid "Indirect Member Of"
+#: ipalib/plugins/internal.py:352
+msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
-msgid "Settings"
+#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Search"
+#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+msgid "Who"
msgstr ""
#: ipalib/plugins/internal.py:362
-msgid "Quick Links"
+msgid "Access Denied"
msgstr ""
#: ipalib/plugins/internal.py:363
-msgid "Select All"
+msgid "Access Granted"
msgstr ""
#: ipalib/plugins/internal.py:364
-msgid "Unselect All"
+msgid "Include Disabled"
msgstr ""
#: ipalib/plugins/internal.py:365
-msgid "Are you sure you want to delete selected entries?"
+msgid "Include Enabled"
msgstr ""
#: ipalib/plugins/internal.py:366
-msgid ""
-"Query returned more results than the configured size limit. Displaying the "
-"first ${counter} results."
+msgid "HBAC Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:367
+msgid "Matched"
+msgstr ""
+
+#: ipalib/plugins/internal.py:368
+msgid "New Test"
+msgstr ""
+
+#: ipalib/plugins/internal.py:369
+msgid "Rules"
msgstr ""
#: ipalib/plugins/internal.py:370
-msgid "General"
+msgid "Run Test"
msgstr ""
#: ipalib/plugins/internal.py:371
-msgid "Identity Settings"
+msgid "Specify external ${entity}"
msgstr ""
#: ipalib/plugins/internal.py:372
-msgid "${entity} ${primary_key} Settings"
+msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:373
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:375
+msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:377
-msgid "Policy"
+#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+msgid "Delete Key, Unprovision"
msgstr ""
#: ipalib/plugins/internal.py:378
-msgid "Audit"
+msgid "Host Settings"
msgstr ""
#: ipalib/plugins/internal.py:379
-msgid "IPA Server"
+msgid "Enrolled?"
msgstr ""
#: ipalib/plugins/internal.py:380
-msgid "Sudo"
+msgid "Enrollment"
msgstr ""
#: ipalib/plugins/internal.py:381
-msgid "Host Based Access Control"
+msgid "Fully Qualified Host Name"
msgstr ""
#: ipalib/plugins/internal.py:382
-msgid "Role Based Access Control"
+msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383
-msgid "Automount"
+#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:384
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
+msgid "One-Time-Password"
msgstr ""
#: ipalib/plugins/internal.py:386
-msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgid "One-Time-Password Not Present"
msgstr ""
#: ipalib/plugins/internal.py:387
-msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgid "One-Time-Password Present"
msgstr ""
#: ipalib/plugins/internal.py:388
-msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgid "Reset OTP"
msgstr ""
#: ipalib/plugins/internal.py:389
-msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:392
-msgid "Text does not match field pattern"
+#: ipalib/plugins/internal.py:390
+msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:395
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a "
-"href='/ipa/config/unauthorized.html'>follow these directions</a> to "
-"configure your browser."
+#: ipalib/plugins/internal.py:391
+msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:399
-msgid "Dict of I18N messages"
+#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/kerberos.py:20
-msgid ""
-"\n"
-"Backend plugin for Kerberos.\n"
-"\n"
-"This wraps the python-kerberos and python-krbV bindings.\n"
+#: ipalib/plugins/internal.py:394
+msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/kerberos.py:35
-msgid ""
-"\n"
-" Kerberos backend plugin.\n"
-"\n"
-" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
-" bindings also). Importantly, this plugin does correct Unicode\n"
-" encoding/decoding of values going-to/coming-from the bindings.\n"
-" "
+#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/kerberos.py:44
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:398
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:50
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the default credential cache.\n"
-" "
+#: ipalib/plugins/internal.py:401
+msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/kerberos.py:56
-msgid ""
-"\n"
-" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:404
+msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/kerberos.py:62
-msgid ""
-"\n"
-" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
-" "
+#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+msgid "Identity"
msgstr ""
-#: ipalib/plugins/kerberos.py:68
-msgid ""
-"\n"
-" Return the default ccache file name.\n"
-"\n"
-" This will return something like '/tmp/krb5cc_500'.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:408
+msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/kerberos.py:79
-msgid ""
-"\n"
-" Return the principal name in default credential cache.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'. If no credential\n"
-" cache exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:410
+msgid "Target"
msgstr ""
-#: ipalib/plugins/kerberos.py:91
-msgid ""
-"\n"
-" Return the realm from the default credential cache.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'. If no credential cache\n"
-" exists for the invoking user, None is returned.\n"
-"\n"
-" This cannot return anything meaningful if used in the server as a\n"
-" request is processed.\n"
-" "
+#: ipalib/plugins/internal.py:413
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:419
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:424
+msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/kerberos.py:103
+#: ipalib/plugins/internal.py:426
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:429
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:433
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:438
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:445
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:446
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:447
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:450
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:451
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:452
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:453
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:456
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:457
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:458
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:465
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:466
+msgid "Account Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:467
+msgid "Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:468
msgid ""
-"\n"
-" Return the principal from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'admin@EXAMPLE.COM'.\n"
-" "
+"Are you sure you want to ${action} the user?<br/>The change will take effect"
+" immediately."
+msgstr ""
+
+#: ipalib/plugins/internal.py:469
+msgid "Click to ${action}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:471
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:472
+msgid "Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:473
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/kerberos.py:111
+#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+msgid "Current Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:482
+msgid "Current password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:484
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:486
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:487
+msgid "Verify Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:490
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:491
+msgid "Some entries were not deleted"
+msgstr ""
+
+#: ipalib/plugins/internal.py:492
+msgid "Quick Links"
+msgstr ""
+
+#: ipalib/plugins/internal.py:493
+msgid "Select All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:494
msgid ""
-"\n"
-" Return the realm from credential cache file at ``ccname``.\n"
-"\n"
-" This will return something like 'EXAMPLE.COM'.\n"
-" "
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:495
+msgid "Unselect All"
+msgstr ""
+
+#: ipalib/plugins/internal.py:498
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:499
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:500
+msgid "DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:501
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:503
+msgid "IPA Server"
+msgstr ""
+
+#: ipalib/plugins/internal.py:504
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:505
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:506
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:508
+msgid "True"
+msgstr ""
+
+#: ipalib/plugins/internal.py:510
+msgid "Next"
+msgstr ""
+
+#: ipalib/plugins/internal.py:511
+msgid "Page"
+msgstr ""
+
+#: ipalib/plugins/internal.py:512
+msgid "Prev"
+msgstr ""
+
+#: ipalib/plugins/internal.py:513
+msgid "undo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:514
+msgid "undo all"
+msgstr ""
+
+#: ipalib/plugins/internal.py:516
+msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:19
+#: ipalib/plugins/internal.py:517
+msgid "Must be an integer"
+msgstr ""
+
+#: ipalib/plugins/internal.py:518
+msgid "Maximum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:519
+msgid "Minimum value is ${value}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:520
+msgid "Required field"
+msgstr ""
+
+#: ipalib/plugins/internal.py:525
+msgid "Dict of I18N messages"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:25
msgid ""
"\n"
"Kerberos ticket policy\n"
@@ -4475,63 +5211,47 @@ msgid ""
" ipa krbtpolicy-mod admin --maxlife=3600\n"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
-msgid ""
-"\n"
-" Kerberos Ticket Policy object\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:75
+msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
-msgid "User name"
-msgstr ""
-
-#: ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:91
+#: ipalib/plugins/krbtpolicy.py:92
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:97
+#: ipalib/plugins/krbtpolicy.py:98
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:111
-msgid ""
-"\n"
-" Modify Kerberos ticket policy.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:112
+msgid "Modify Kerberos ticket policy."
msgstr ""
#: ipalib/plugins/krbtpolicy.py:125
-msgid ""
-"\n"
-" Display the current Kerberos ticket policy.\n"
-" "
+msgid "Display the current Kerberos ticket policy."
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:149
-msgid ""
-"\n"
-" Reset Kerberos ticket policy to the default values.\n"
-" "
+#: ipalib/plugins/krbtpolicy.py:148
+msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:19
+#: ipalib/plugins/migration.py:34
msgid ""
"\n"
"Migration to IPA\n"
@@ -4572,130 +5292,195 @@ msgid ""
" 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"
+"\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"
+" 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"
+"\n"
msgstr ""
-#: ipalib/plugins/migration.py:78
+#: ipalib/plugins/migration.py:86
+#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:79
+#: ipalib/plugins/migration.py:87
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:175
+#: ipalib/plugins/migration.py:88
+msgid "Migration of LDAP search reference is not supported."
+msgstr ""
+
+#: ipalib/plugins/migration.py:89
+msgid "Malformed DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:255
msgid ""
-"\n"
-" Convert usernames in member attributes to work in IPA.\n"
-" "
+". Check GID of the existing group. Use --group-overwrite-gid option to "
+"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:220
+#: ipalib/plugins/migration.py:270
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:225
-msgid ""
-"\n"
-" Migrate users and groups from DS to IPA.\n"
-" "
+#: ipalib/plugins/migration.py:275
+msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:266
+#: ipalib/plugins/migration.py:322
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:267
+#: ipalib/plugins/migration.py:323
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:329
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:336
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:342
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:343
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:349
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:350
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:356
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:357
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:364
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:365
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:372
+msgid "Ignore user object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:373
+msgid ""
+"Comma-separated list of objectclasses to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:380
+msgid "Ignore user attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:381
+msgid ""
+"Comma-separated list of attributes to be ignored for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:388
+msgid "Ignore group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:389
+msgid ""
+"Comma-separated list of objectclasses to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:396
+msgid "Ignore group attribute"
+msgstr ""
+
+#: ipalib/plugins/migration.py:397
+msgid ""
+"Comma-separated list of attributes to be ignored for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:404
+msgid "Overwrite GID"
+msgstr ""
+
+#: ipalib/plugins/migration.py:405
+msgid ""
+"When migrating a group already existing in IPA domain overwrite the group "
+"GID and report as success"
+msgstr ""
+
+#: ipalib/plugins/migration.py:410
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:314
+#: ipalib/plugins/migration.py:411
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:320
+#: ipalib/plugins/migration.py:417
+msgid "Continue"
+msgstr ""
+
+#: ipalib/plugins/migration.py:418
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:328
+#: ipalib/plugins/migration.py:426
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:332
+#: ipalib/plugins/migration.py:430
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:434
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:438
+#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:440
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:347
+#: ipalib/plugins/migration.py:445
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:448
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4704,46 +5489,23 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:358
-msgid ""
-"\n"
-" Call get_options of the baseclass and add \"exclude\" options\n"
-" for each type of object being migrated.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:375
-msgid ""
-"\n"
-" Convert all \"exclude\" option values to lower-case.\n"
-"\n"
-" Also, empty List parameters are converted to None, but the migration\n"
-" plugin doesn't like that - convert back to empty lists.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:399
-msgid ""
-"\n"
-" Migrate objects from DS to LDAP.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/migration.py:425
+#: ipalib/plugins/migration.py:523
+#, python-format
msgid "Container for %(container)s not found"
msgstr ""
-#: ipalib/plugins/misc.py:20
+#: ipalib/plugins/misc.py:25
msgid ""
"\n"
"Misc plug-ins\n"
msgstr ""
#: ipalib/plugins/misc.py:36
-msgid "Show environment variables"
+msgid "Show environment variables."
msgstr ""
#: ipalib/plugins/misc.py:38
+#, python-format
msgid "%(count)d variables"
msgstr ""
@@ -4761,10 +5523,11 @@ msgid "Number of variables returned (<= total)"
msgstr ""
#: ipalib/plugins/misc.py:106
-msgid "Show all loaded plugins"
+msgid "Show all loaded plugins."
msgstr ""
-#: ipalib/plugins/misc.py:108
+#: ipalib/plugins/misc.py:109
+#, python-format
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
@@ -4773,7 +5536,7 @@ msgstr[0] ""
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:20
+#: ipalib/plugins/netgroup.py:28
msgid ""
"\n"
"Netgroups\n"
@@ -4799,104 +5562,103 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:59
+#: ipalib/plugins/netgroup.py:60
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:67
-msgid ""
-"\n"
-" Netgroup object.\n"
-" "
+#: ipalib/plugins/netgroup.py:72
+msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:98
+#: ipalib/plugins/netgroup.py:73
+msgid "netgroups"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:99
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:103
+#: ipalib/plugins/netgroup.py:100
+msgid "Netgroup"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:105
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:110
+#: ipalib/plugins/netgroup.py:112
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:114
+#: ipalib/plugins/netgroup.py:116
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:119
+#: ipalib/plugins/netgroup.py:121
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:140
-msgid ""
-"\n"
-" Add a new netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:142
+msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:144
+#: ipalib/plugins/netgroup.py:145
+#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:153
+#: ipalib/plugins/netgroup.py:162
+#, python-format
msgid ""
-"\n"
-" Delete a netgroup.\n"
-" "
+"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
+"common namespace"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:174
+msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:156
+#: ipalib/plugins/netgroup.py:176
+#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
-msgid ""
-"\n"
-" Modify a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:182
+msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:166
+#: ipalib/plugins/netgroup.py:185
+#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:180
-msgid ""
-"\n"
-" Search for a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:199
+msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:204
+#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
-#: ipalib/plugins/netgroup.py:213
-msgid ""
-"\n"
-" Display information about a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:214
+msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:222
-msgid ""
-"\n"
-" Add members to a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:236
+msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:258
-msgid ""
-"\n"
-" Remove members from a netgroup.\n"
-" "
+#: ipalib/plugins/netgroup.py:244
+msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/passwd.py:19
+#: ipalib/plugins/netgroup.py:279
+msgid "Remove members from a netgroup."
+msgstr ""
+
+#: ipalib/plugins/passwd.py:28
msgid ""
"\n"
"Set a user's password\n"
@@ -4917,33 +5679,16 @@ msgid ""
" ipa passwd tuser1\n"
msgstr ""
-#: ipalib/plugins/passwd.py:46
-msgid ""
-"\n"
-" Set a user's password\n"
-" "
-msgstr ""
-
#: ipalib/plugins/passwd.py:64
-msgid "Changed password for \"%(value)s\""
+msgid "Set a user's password."
msgstr ""
-#: ipalib/plugins/passwd.py:67
-msgid ""
-"\n"
-" Execute the passwd operation.\n"
-"\n"
-" The dn should not be passed as a keyword argument as it is constructed\n"
-" by this method.\n"
-"\n"
-" Returns the entry\n"
-"\n"
-" :param principal: The login name or principal of the user\n"
-" :param password: the new password\n"
-" "
+#: ipalib/plugins/passwd.py:88
+#, python-format
+msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:19
+#: ipalib/plugins/permission.py:27
msgid ""
"\n"
"Permissions\n"
@@ -4999,135 +5744,100 @@ msgid ""
" ipa permission-add --attrs=member --permissions=write --type=group \"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:84
+#: ipalib/plugins/permission.py:85
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:89
-msgid ""
-"\n"
-" Permission object.\n"
-" "
+#: ipalib/plugins/permission.py:94
+msgid "permission"
+msgstr ""
+
+#: ipalib/plugins/permission.py:95
+msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:112
+#: ipalib/plugins/permission.py:114
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:119
+#: ipalib/plugins/permission.py:120
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:132
+#: ipalib/plugins/permission.py:135
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:141
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:139
+#: ipalib/plugins/permission.py:142
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:151
+#: ipalib/plugins/permission.py:154
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:160
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:177
-msgid ""
-"\n"
-" Add a new permission.\n"
-" "
+#: ipalib/plugins/permission.py:180
+msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:181
+#: ipalib/plugins/permission.py:182
+#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:236
-msgid ""
-"\n"
-" Delete a permission.\n"
-" "
+#: ipalib/plugins/permission.py:237
+msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:240
+#: ipalib/plugins/permission.py:239
+#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
-msgid ""
-"\n"
-" Modify a permission.\n"
-" "
+#: ipalib/plugins/permission.py:255
+msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:260
+#: ipalib/plugins/permission.py:257
+#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:352
-msgid ""
-"\n"
-" Search for permissions.\n"
-" "
+#: ipalib/plugins/permission.py:349
+msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:352
+#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
-#: ipalib/plugins/permission.py:405
-msgid ""
-"\n"
-" Display information about a permission.\n"
-" "
+#: ipalib/plugins/permission.py:402
+msgid "Display information about a permission."
msgstr ""
-#: ipalib/plugins/permission.py:428
-msgid ""
-"\n"
-" Add members to a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/permission.py:437
-msgid ""
-"\n"
-" Remove members from a permission.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/ping.py:19
+#: ipalib/plugins/ping.py:26
msgid ""
"\n"
"Ping the remote IPA server\n"
msgstr ""
-#: ipalib/plugins/ping.py:29
-msgid ""
-"\n"
-" ping a remote server\n"
-" "
+#: ipalib/plugins/ping.py:31
+msgid "Ping a remote server."
msgstr ""
-#: ipalib/plugins/ping.py:37
-msgid ""
-"\n"
-" A possible enhancement would be to take an argument and echo it\n"
-" back but a fixed value works for now.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pkinit.py:19
+#: ipalib/plugins/pkinit.py:25
msgid ""
"\n"
"Kerberos pkinit options\n"
@@ -5149,32 +5859,19 @@ msgid ""
"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
msgstr ""
-#: ipalib/plugins/pkinit.py:46
-msgid ""
-"\n"
-" PKINIT Options\n"
-" "
+#: ipalib/plugins/pkinit.py:49
+msgid "pkinit"
msgstr ""
#: ipalib/plugins/pkinit.py:51
msgid "PKINIT"
msgstr ""
-#: ipalib/plugins/pkinit.py:56
-msgid ""
-"\n"
-" Accepts only Enable/Disable.\n"
-" "
-msgstr ""
-
#: ipalib/plugins/pkinit.py:67
-msgid ""
-"\n"
-" Enable or Disable Anonymous PKINIT\n"
-" "
+msgid "Enable or Disable Anonymous PKINIT."
msgstr ""
-#: ipalib/plugins/privilege.py:19
+#: ipalib/plugins/privilege.py:23
msgid ""
"\n"
"Privileges\n"
@@ -5197,18 +5894,23 @@ msgid ""
"See role and permission for additional information.\n"
msgstr ""
-#: ipalib/plugins/privilege.py:45
-msgid ""
-"\n"
-" Privilege object.\n"
-" "
+#: ipalib/plugins/privilege.py:49
+msgid "privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:50
+msgid "privileges"
msgstr ""
#: ipalib/plugins/privilege.py:65
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:70
+#: ipalib/plugins/privilege.py:66
+msgid "Privilege"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:71
msgid "Privilege name"
msgstr ""
@@ -5217,94 +5919,67 @@ msgid "Privilege description"
msgstr ""
#: ipalib/plugins/privilege.py:85
-msgid ""
-"\n"
-" Add a new privilege.\n"
-" "
+msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:89
+#: ipalib/plugins/privilege.py:87
+#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:95
-msgid ""
-"\n"
-" Delete a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:93
+msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:99
+#: ipalib/plugins/privilege.py:95
+#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:105
-msgid ""
-"\n"
-" Modify a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:101
+msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:103
+#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:115
-msgid ""
-"\n"
-" Search for privileges.\n"
-" "
+#: ipalib/plugins/privilege.py:109
+msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:112
+#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
-#: ipalib/plugins/privilege.py:127
-msgid ""
-"\n"
-" Display information about a privilege.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/privilege.py:135
-msgid ""
-"\n"
-" Add members to a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:119
+msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:144
-msgid ""
-"\n"
-" Remove members from a privilege\n"
-" "
+#: ipalib/plugins/privilege.py:125
+msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:153
-msgid ""
-"\n"
-" Add permissions to a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:142
+msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:169
+#: ipalib/plugins/privilege.py:157
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:177
-msgid ""
-"\n"
-" Remove permissions from a privilege.\n"
-" "
+#: ipalib/plugins/privilege.py:165
+msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:195
+#: ipalib/plugins/privilege.py:182
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:20
+#: ipalib/plugins/pwpolicy.py:29
msgid ""
"\n"
"Password policy\n"
@@ -5349,164 +6024,144 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:72
-msgid ""
-"\n"
-" Class of Service object used for linking policies with groups\n"
-" "
+#: ipalib/plugins/pwpolicy.py:89
+#, python-format
+msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:87
-msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
+#: ipalib/plugins/pwpolicy.py:177
+msgid "password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:172
-msgid ""
-"\n"
-" Password Policy object\n"
-" "
+#: ipalib/plugins/pwpolicy.py:178
+msgid "password policies"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:201
+#: ipalib/plugins/pwpolicy.py:202
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:202
+#: ipalib/plugins/pwpolicy.py:203
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:208
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:208
+#: ipalib/plugins/pwpolicy.py:209
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:214
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:215
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:224
+#: ipalib/plugins/pwpolicy.py:220
+msgid "Password Policies"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:226
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:225
+#: ipalib/plugins/pwpolicy.py:227
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:230
+#: ipalib/plugins/pwpolicy.py:232
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:231
+#: ipalib/plugins/pwpolicy.py:233
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:236
+#: ipalib/plugins/pwpolicy.py:238
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:237
+#: ipalib/plugins/pwpolicy.py:239
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:242
+#: ipalib/plugins/pwpolicy.py:244
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:243
+#: ipalib/plugins/pwpolicy.py:245
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:248
+#: ipalib/plugins/pwpolicy.py:250
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:249
+#: ipalib/plugins/pwpolicy.py:251
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:255
+#: ipalib/plugins/pwpolicy.py:257
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:256
+#: ipalib/plugins/pwpolicy.py:258
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:261
+#: ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:262
+#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:294
-msgid ""
-"\n"
-" Ensure that the maximum lifetime is greater than the minimum.\n"
-" If there is no minimum lifetime set then don't return an error.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/pwpolicy.py:314
+#: ipalib/plugins/pwpolicy.py:317
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:333
-msgid ""
-"\n"
-" Add a new group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:336
+msgid "Add a new group password policy."
msgstr ""
#: ipalib/plugins/pwpolicy.py:361
-msgid ""
-"\n"
-" Delete a group password policy.\n"
-" "
+msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:380
-msgid ""
-"\n"
-" Modify a group password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:372
+msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:391
-msgid "priority cannot be set on global policy"
+#: ipalib/plugins/pwpolicy.py:387
+msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:423
-msgid ""
-"\n"
-" Display information about password policy.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:397
+msgid "priority cannot be set on global policy"
msgstr ""
#: ipalib/plugins/pwpolicy.py:428
+msgid "Display information about password policy."
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:429
+#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:452
-msgid ""
-"\n"
-" Search for group password policies.\n"
-" "
+#: ipalib/plugins/pwpolicy.py:456
+msgid "Search for group password policies."
msgstr ""
-#: ipalib/plugins/role.py:20
+#: ipalib/plugins/role.py:26
msgid ""
"\n"
"Roles\n"
@@ -5543,18 +6198,19 @@ msgid ""
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
-#: ipalib/plugins/role.py:62
-msgid ""
-"\n"
-" Role object.\n"
-" "
+#: ipalib/plugins/role.py:66
+msgid "role"
msgstr ""
-#: ipalib/plugins/role.py:81
+#: ipalib/plugins/role.py:67
+msgid "roles"
+msgstr ""
+
+#: ipalib/plugins/role.py:82
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:86
+#: ipalib/plugins/role.py:87
msgid "Role name"
msgstr ""
@@ -5563,94 +6219,71 @@ msgid "A description of this role-group"
msgstr ""
#: ipalib/plugins/role.py:101
-msgid ""
-"\n"
-" Add a new role.\n"
-" "
+msgid "Add a new role."
msgstr ""
-#: ipalib/plugins/role.py:105
+#: ipalib/plugins/role.py:103
+#, python-format
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:111
-msgid ""
-"\n"
-" Delete a role.\n"
-" "
+#: ipalib/plugins/role.py:109
+msgid "Delete a role."
msgstr ""
-#: ipalib/plugins/role.py:115
+#: ipalib/plugins/role.py:111
+#, python-format
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:121
-msgid ""
-"\n"
-" Modify a role.\n"
-" "
+#: ipalib/plugins/role.py:117
+msgid "Modify a role."
msgstr ""
-#: ipalib/plugins/role.py:125
+#: ipalib/plugins/role.py:119
+#, python-format
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:131
-msgid ""
-"\n"
-" Search for roles.\n"
-" "
+#: ipalib/plugins/role.py:125
+msgid "Search for roles."
msgstr ""
-#: ipalib/plugins/role.py:135
+#: ipalib/plugins/role.py:128
+#, python-format
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
-#: ipalib/plugins/role.py:143
-msgid ""
-"\n"
-" Display information about a role.\n"
-" "
+#: ipalib/plugins/role.py:135
+msgid "Display information about a role."
msgstr ""
-#: ipalib/plugins/role.py:151
-msgid ""
-"\n"
-" Add members to a role.\n"
-" "
+#: ipalib/plugins/role.py:141
+msgid "Add members to a role."
msgstr ""
-#: ipalib/plugins/role.py:159
-msgid ""
-"\n"
-" Remove members from a role.\n"
-" "
+#: ipalib/plugins/role.py:147
+msgid "Remove members from a role."
msgstr ""
-#: ipalib/plugins/role.py:167
-msgid ""
-"\n"
-" Add privileges to a role.\n"
-" "
+#: ipalib/plugins/role.py:153
+msgid "Add privileges to a role."
msgstr ""
-#: ipalib/plugins/role.py:183
+#: ipalib/plugins/role.py:168
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:191
-msgid ""
-"\n"
-" Remove privileges from a role.\n"
-" "
+#: ipalib/plugins/role.py:176
+msgid "Remove privileges from a role."
msgstr ""
-#: ipalib/plugins/role.py:207
+#: ipalib/plugins/role.py:191
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:19
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -5678,88 +6311,73 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:56
-msgid ""
-"\n"
-" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
-" isn't.\n"
-"\n"
-" Return the result if it is a self-service ACI.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:64
+#: ipalib/plugins/selfservice.py:65
+#, python-format
msgid "Self-service permission '%(permission)s' not found"
msgstr ""
-#: ipalib/plugins/selfservice.py:68
-msgid ""
-"\n"
-" Selfservice object.\n"
-" "
+#: ipalib/plugins/selfservice.py:74
+msgid "self service permission"
msgstr ""
#: ipalib/plugins/selfservice.py:75
+msgid "self service permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:76
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
-msgid "Self-service name"
+#: ipalib/plugins/selfservice.py:77
+msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:114
-msgid ""
-"\n"
-" Add a new self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+msgid "Self-service name"
msgstr ""
#: ipalib/plugins/selfservice.py:118
+msgid "Add a new self-service permission."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:120
+#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:137
-msgid ""
-"\n"
-" Delete a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:139
+msgid "Delete a self-service permission."
msgstr ""
#: ipalib/plugins/selfservice.py:142
+#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
#: ipalib/plugins/selfservice.py:158
-msgid ""
-"\n"
-" Modify a self-service permission.\n"
-" "
+msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:160
+#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:181
-msgid ""
-"\n"
-" Search for a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:179
+msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:185
+#: ipalib/plugins/selfservice.py:182
+#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/selfservice.py:207
-msgid ""
-"\n"
-" Display information about a self-service permission.\n"
-" "
+#: ipalib/plugins/selfservice.py:203
+msgid "Display information about a self-service permission."
msgstr ""
-#: ipalib/plugins/service.py:21
+#: ipalib/plugins/service.py:35
msgid ""
"\n"
"Services\n"
@@ -5812,117 +6430,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:162
-msgid ""
-"\n"
-" For now just verify that it is properly base64-encoded.\n"
-" "
+#: ipalib/plugins/service.py:204
+msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:175
-msgid ""
-"\n"
-" Set individual attributes from some values from a certificate.\n"
-"\n"
-" entry_attrs is a dict of an entry\n"
-"\n"
-" returns nothing\n"
-" "
+#: ipalib/plugins/service.py:205
+msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:199
-msgid ""
-"\n"
-" Service object.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:226
+#: ipalib/plugins/service.py:229
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:242
-msgid ""
-"\n"
-" Add a new IPA new service.\n"
-" "
+#: ipalib/plugins/service.py:245
+msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:247
+#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:251
+#: ipalib/plugins/service.py:253
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:284
-msgid ""
-"\n"
-" Delete an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:286
+msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:287
+#: ipalib/plugins/service.py:288
+#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:321
-msgid ""
-"\n"
-" Modify an existing IPA service.\n"
-" "
+#: ipalib/plugins/service.py:322
+msgid "Modify an existing IPA service."
msgstr ""
#: ipalib/plugins/service.py:324
+#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
#: ipalib/plugins/service.py:356
-msgid ""
-"\n"
-" Search for IPA services.\n"
-" "
+msgid "Search for IPA services."
msgstr ""
#: ipalib/plugins/service.py:359
+#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:394
-msgid ""
-"\n"
-" Display information about an IPA service.\n"
-" "
+#: ipalib/plugins/service.py:391
+msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:432
-msgid ""
-"\n"
-" Add hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:424
+msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
-msgid ""
-"\n"
-" Remove hosts that can manage this service.\n"
-" "
+#: ipalib/plugins/service.py:433
+msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:452
-msgid ""
-"\n"
-" Disable the Kerberos key and SSL certificate of a service.\n"
-" "
+#: ipalib/plugins/service.py:442
+msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:456
+#: ipalib/plugins/service.py:445
+#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:19
+#: ipalib/plugins/sudocmd.py:29
msgid ""
"\n"
"Sudo Commands\n"
@@ -5939,187 +6521,176 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/sudocmd.py:46
-msgid ""
-"\n"
-" Sudo Command object.\n"
-" "
+#: ipalib/plugins/sudocmd.py:44 ipalib/plugins/sudocmdgroup.py:48
+msgid "commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:51
+msgid "sudo command"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:52
+msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:64
+#: ipalib/plugins/sudocmd.py:65
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:69
+#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:75
+#: ipalib/plugins/sudocmd.py:77
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:98
-msgid ""
-"\n"
-" Create new sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:100
+msgid "Create new Sudo Command."
msgstr ""
#: ipalib/plugins/sudocmd.py:102
-msgid "Added sudo command \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmd.py:107
-msgid ""
-"\n"
-" Delete sudo command.\n"
-" "
+msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:111
-msgid "Deleted sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:109
+#, python-format
+msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
-msgid ""
-"\n"
-" Modify command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:114
+msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:120
-msgid "Modified sudo command \"%(value)s\""
+#: ipalib/plugins/sudocmd.py:116
+#, python-format
+msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:125
-msgid ""
-"\n"
-" Search for commands.\n"
-" "
+#: ipalib/plugins/sudocmd.py:121
+msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:129
-msgid "%(count)d sudo command matched"
-msgid_plural "%(count)d sudo command matched"
+#: ipalib/plugins/sudocmd.py:124
+#, python-format
+msgid "%(count)d Sudo Command matched"
+msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmd.py:136
-msgid ""
-"\n"
-" Display sudo command.\n"
-" "
+#: ipalib/plugins/sudocmd.py:130
+msgid "Display Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:19
+#: ipalib/plugins/sudocmdgroup.py:25
msgid ""
"\n"
-"Groups of Sudo commands\n"
+"Groups of Sudo Commands\n"
"\n"
-"Manage groups of Sudo commands.\n"
+"Manage groups of Sudo Commands.\n"
"\n"
"EXAMPLES:\n"
"\n"
-" Add a new Sudo command group:\n"
+" Add a new Sudo Command Group:\n"
" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
"\n"
-" Remove a Sudo command group:\n"
+" Remove a Sudo Command Group:\n"
" ipa sudocmdgroup-del admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim admincmds\n"
"\n"
-" Manage Sudo command group membership, commands:\n"
+" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
"\n"
-" Show a Sudo command group:\n"
+" Show a Sudo Command Group:\n"
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:50
-msgid ""
-"\n"
-" Sudo Group object.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:55
+msgid "sudo command group"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:56
+msgid "sudo command groups"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:70
+#: ipalib/plugins/sudocmdgroup.py:67 ipalib/plugins/sudocmdgroup.py:72
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:93
-msgid ""
-"\n"
-" Create new sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:95
+msgid "Create new Sudo Command Group."
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:97
-msgid "Added sudo command group \"%(value)s\""
+#, python-format
+msgid "Added Sudo Command Group \"%(value)s\""
msgstr ""
#: ipalib/plugins/sudocmdgroup.py:103
-msgid ""
-"\n"
-" Delete sudo command group.\n"
-" "
+msgid "Delete Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:107
-msgid "Deleted sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:105
+#, python-format
+msgid "Deleted Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:113
-msgid ""
-"\n"
-" Modify group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:111
+msgid "Modify Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:117
-msgid "Modified sudo command group \"%(value)s\""
+#: ipalib/plugins/sudocmdgroup.py:113
+#, python-format
+msgid "Modified Sudo Command Group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:123
-msgid ""
-"\n"
-" Search for sudo command groups.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:119
+msgid "Search for Sudo Command Groups."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:127
-msgid "%(count)d sudo command group matched"
-msgid_plural "%(count)d sudo command groups matched"
+#: ipalib/plugins/sudocmdgroup.py:122
+#, python-format
+msgid "%(count)d Sudo Command Group matched"
+msgid_plural "%(count)d Sudo Command Groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:136
-msgid ""
-"\n"
-" Display sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:130
+msgid "Display Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:144
-msgid ""
-"\n"
-" Add members to sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid "Add members to Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:152
-msgid ""
-"\n"
-" Remove members from sudo command group.\n"
-" "
+#: ipalib/plugins/sudocmdgroup.py:142
+msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:19
+#: ipalib/plugins/sudorule.py:25
msgid ""
"\n"
+"Sudo Rules\n"
+"\n"
"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
"give certain users (or groups of users) the ability to run some (or all)\n"
"commands as root or another user while providing an audit trail of the\n"
"commands and their arguments.\n"
"\n"
+"FreeIPA provides a means to configure the various aspects of Sudo:\n"
+" Users: The user(s)/group(s) allowed to envoke Sudo.\n"
+" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke Sudo.\n"
+" Allow Command: The specific command(s) permited to be run via Sudo.\n"
+" Deny Command: The specific command(s) prohibited to be run via Sudo.\n"
+" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be invoked with.\n"
+" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
+" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -6129,223 +6700,241 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:44
-msgid ""
-"\n"
-" Sudo Rule management\n"
-" "
+#: ipalib/plugins/sudorule.py:53
+msgid "Commands for controlling sudo configuration"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:56
+msgid "this option has been deprecated."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:72
+msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/sudorule.py:73
+msgid "sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:92
+msgid "Sudo Rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:93
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/sudorule.py:123
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:99
+#: ipalib/plugins/sudorule.py:124
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:104
-msgid "Run As User category"
+#: ipalib/plugins/sudorule.py:129
+msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:105
-msgid "Run As User category the rule applies to"
+#: ipalib/plugins/sudorule.py:130
+msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:110
-msgid "Run As Group category"
+#: ipalib/plugins/sudorule.py:135
+msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:111
-msgid "Run As Group category the rule applies to"
+#: ipalib/plugins/sudorule.py:136
+msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:131
+#: ipalib/plugins/sudorule.py:156
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:160
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:147
-msgid "Run As User"
+#: ipalib/plugins/sudorule.py:164
+msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:151
-msgid "Run As Group"
+#: ipalib/plugins/sudorule.py:168
+msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:172
+msgid "RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:173
+msgid "Run as a user"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:177
+msgid "Groups of RunAs Users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:178
+msgid "Run as any user within a specified group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:157
-msgid "External User the rule applies to"
+#: ipalib/plugins/sudorule.py:184
+msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:161
+#: ipalib/plugins/sudorule.py:188
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:162
-msgid "External User the commands can run as"
+#: ipalib/plugins/sudorule.py:189
+msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:166
+#: ipalib/plugins/sudorule.py:193
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
-msgid "External Group the commands can run as"
+#: ipalib/plugins/sudorule.py:194
+msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
-msgid ""
-"\n"
-" Create new Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
+#: ipalib/plugins/sudorule.py:670
+msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
-msgid "Added sudo rule \"%(value)s\""
+#: ipalib/plugins/sudorule.py:201
+msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
-msgid ""
-"\n"
-" Delete Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:202
+msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
-msgid ""
-"\n"
-" Modify Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:211
+msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:205
-msgid ""
-"\n"
-" Search for Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:218
+#, python-format
+msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:213
-msgid ""
-"\n"
-" Display Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:224
+msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
-msgid ""
-"\n"
-" Enable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:226
+#, python-format
+msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:247
-msgid ""
-"\n"
-" Disable a Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:232
+msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
-msgid ""
-"\n"
-" Add commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:234
+#, python-format
+msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
-msgid ""
-"\n"
-" Remove commands and sudo command groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:240
+msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313
-msgid ""
-"\n"
-" Add users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:243
+#, python-format
+msgid "%(count)d Sudo Rule matched"
+msgid_plural "%(count)d Sudo Rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:349
-msgid ""
-"\n"
-" Remove users and groups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:256
+msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:383
-msgid ""
-"\n"
-" Add hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:274
+#, python-format
+msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:419
-msgid ""
-"\n"
-" Remove hosts and hostgroups affected by Sudo Rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:280
+msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:453
-msgid ""
-"\n"
-" Add user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:298
+#, python-format
+msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:489
-msgid ""
-"\n"
-" Remove user for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:523
-msgid ""
-"\n"
-" Add group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:559
-msgid ""
-"\n"
-" Remove group for Sudo to execute as.\n"
-" "
+#: ipalib/plugins/sudorule.py:340
+msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:593
-msgid ""
-"\n"
-" Add an option to the Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:375
+msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
-msgid "Sudo Option"
+#: ipalib/plugins/sudorule.py:408
+msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:635
-msgid ""
-"\n"
-" Remove an option from Sudo rule.\n"
-" "
+#: ipalib/plugins/sudorule.py:443
+msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/user.py:20
+#: ipalib/plugins/sudorule.py:477
+msgid "Add users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:512
+msgid "Remove users and groups for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:545
+msgid "Add group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:580
+msgid "Remove group for Sudo to execute as."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:613
+msgid "Add an option to the Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:655
+#, python-format
+msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:665
+msgid "Remove an option from Sudo Rule."
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:710
+#, python-format
+msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgstr ""
+
+#: ipalib/plugins/user.py:29
msgid ""
"\n"
"Users\n"
@@ -6386,234 +6975,212 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:79
-msgid ""
-"\n"
-" User object.\n"
-" "
+#: ipalib/plugins/user.py:73
+msgid "Kerberos keys available"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "user"
+msgstr ""
+
+#: ipalib/plugins/user.py:141
+msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:177
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:123
+#: ipalib/plugins/user.py:184
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:127
+#: ipalib/plugins/user.py:188
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:130
+#: ipalib/plugins/user.py:191
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:196
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:201
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:146
+#: ipalib/plugins/user.py:207
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:212
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:156
+#: ipalib/plugins/user.py:218
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:223
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/user.py:231
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:173
+#: ipalib/plugins/user.py:236
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:180
+#: ipalib/plugins/user.py:243
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:181
+#: ipalib/plugins/user.py:244
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:251
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:257
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:261
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:265
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:268
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:208
+#: ipalib/plugins/user.py:272
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:275
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:278
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:282
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:222
+#: ipalib/plugins/user.py:286
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:225
+#: ipalib/plugins/user.py:289
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:292
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:295
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:234
+#: ipalib/plugins/user.py:298
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:258
-msgid ""
-"\n"
-" Given a userid verify the user's existence and return the dn.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:340
+#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:281
-msgid ""
-"\n"
-" Convert a manager dn into a userid\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:295
-msgid ""
-"\n"
-" Add a new user.\n"
-" "
+#: ipalib/plugins/user.py:359
+msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:361
+#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:368
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:333
+#: ipalib/plugins/user.py:398
+#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:400
-msgid ""
-"\n"
-" Delete a user.\n"
-" "
+#: ipalib/plugins/user.py:475
+msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:404
+#: ipalib/plugins/user.py:477
+#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:413
-msgid ""
-"\n"
-" Modify a user.\n"
-" "
+#: ipalib/plugins/user.py:486
+msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:417
+#: ipalib/plugins/user.py:488
+#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:437
-msgid ""
-"\n"
-" Search for users.\n"
-" "
+#: ipalib/plugins/user.py:510
+msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:444
+#: ipalib/plugins/user.py:517
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:445
+#: ipalib/plugins/user.py:518
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:463
+#: ipalib/plugins/user.py:539
+#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:471
-msgid ""
-"\n"
-" Display information about a user.\n"
-" "
+#: ipalib/plugins/user.py:546
+msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:484
-msgid ""
-"\n"
-" Disable a user account.\n"
-" "
+#: ipalib/plugins/user.py:560
+msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:489
+#: ipalib/plugins/user.py:563
+#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:507
-msgid ""
-"\n"
-" Enable a user account.\n"
-" "
+#: ipalib/plugins/user.py:581
+msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:585
+#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:529
+#: ipalib/plugins/user.py:602
msgid ""
"\n"
" Unlock a user account\n"
@@ -6621,504 +7188,61 @@ msgid ""
" An account may become locked if the password is entered incorrectly too\n"
" many times within a specific time period as controlled by password\n"
" policy. A locked account is a temporary condition and may be unlocked by\n"
-" an administrator.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/user.py:538
-msgid "Unlocked account \"%(value)s\""
-msgstr ""
-
-#: ipalib/plugins/virtual.py:20
-msgid ""
-"\n"
-"Base classes for non-LDAP backend plugins.\n"
-msgstr ""
-
-#: ipalib/plugins/virtual.py:28
-msgid ""
-"\n"
-" A command that doesn't use the LDAP backend but wants to use the\n"
-" LDAP access control system to make authorization decisions.\n"
-"\n"
-" The class variable operation is the commonName attribute of the\n"
-" entry to be tested against.\n"
-"\n"
-" In advance, you need to create an entry of the form:\n"
-" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
-"\n"
-" Ex.\n"
-" cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/virtual.py:44
-msgid ""
-"\n"
-" Perform an LDAP query to determine authorization.\n"
-"\n"
-" This should be executed before any actual work is done.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/xmlclient.py:21
-msgid ""
-"\n"
-"XML-RPC client plugin.\n"
-msgstr ""
-
-#: ipalib/cli.py:581
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr ""
-
-#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
-#, c-format
-msgid "Passwords do not match!"
-msgstr ""
-
-#: ipalib/cli.py:590
-msgid "Cancelled."
-msgstr ""
-
-#: ipalib/cli.py:819
-msgid "Command name"
-msgstr ""
-
-#: ipalib/cli.py:1117
-msgid "No file to read"
-msgstr ""
-
-#: ipalib/errors.py:300
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:318
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:334
-msgid "an internal error has occurred"
-msgstr ""
-
-#: ipalib/errors.py:356
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr ""
-
-#: ipalib/errors.py:372
-#, python-format
-msgid "unknown command %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:389 ipalib/errors.py:414
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:405
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+" an administrator."
msgstr ""
-#: ipalib/errors.py:423
+#: ipalib/plugins/user.py:611
#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:439
-#, python-format
-msgid "error marshalling data for XML-RPC transport: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:465
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr ""
-
-#: ipalib/errors.py:482
-msgid "did not receive Kerberos credentials"
-msgstr ""
-
-#: ipalib/errors.py:498
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr ""
-
-#: ipalib/errors.py:514
-msgid "No credentials cache found"
-msgstr ""
-
-#: ipalib/errors.py:530
-msgid "Ticket expired"
-msgstr ""
-
-#: ipalib/errors.py:546
-msgid "Credentials cache permissions incorrect"
-msgstr ""
-
-#: ipalib/errors.py:562
-msgid "Bad format in credentials cache"
-msgstr ""
-
-#: ipalib/errors.py:578
-msgid "Cannot resolve KDC for requested realm"
-msgstr ""
-
-#: ipalib/errors.py:597
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:641
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr ""
-
-#: ipalib/errors.py:661
-#, 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] ""
-
-#: ipalib/errors.py:691
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr ""
-
-#: ipalib/errors.py:707
-#, python-format
-msgid "%(name)r is required"
-msgstr ""
-
-#: ipalib/errors.py:723 ipalib/errors.py:739
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:755
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr ""
-
-#: ipalib/errors.py:764
-msgid "Passwords do not match"
-msgstr ""
-
-#: ipalib/errors.py:773
-msgid "Command not implemented"
-msgstr ""
-
-#: ipalib/errors.py:782
-msgid "Client is not configured. Run ipa-client-install."
-msgstr ""
-
-#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
-#: ipalib/errors.py:1424 ipalib/errors.py:1441
-#, python-format
-msgid "%(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:826
-msgid "This entry already exists"
-msgstr ""
-
-#: ipalib/errors.py:842
-msgid "You must enroll a host in order to create a host service"
+msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:858
+#: ipalib/util.py:192
#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/errors.py:874
+#: ipalib/util.py:220
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-
-#: ipalib/errors.py:890
-msgid "This command requires root access"
-msgstr ""
-
-#: ipalib/errors.py:906
-msgid "This is already a posix group"
-msgstr ""
-
-#: ipalib/errors.py:922
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr ""
-
-#: ipalib/errors.py:938
-msgid "This entry is already enabled"
-msgstr ""
-
-#: ipalib/errors.py:954
-msgid "This entry is already disabled"
-msgstr ""
-
-#: ipalib/errors.py:970
-msgid "This entry cannot be enabled or disabled"
-msgstr ""
-
-#: ipalib/errors.py:986
-msgid "This entry is not a member"
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/errors.py:1002
-msgid "A group may not be a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1018
-msgid "This entry is already a member"
+#: ipalib/util.py:223 ipalib/util.py:264
+msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/errors.py:1034
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr ""
-
-#: ipalib/errors.py:1066
-msgid "A group may not be added as a member of itself"
-msgstr ""
-
-#: ipalib/errors.py:1082
-msgid "The default users group cannot be removed"
-msgstr ""
-
-#: ipalib/errors.py:1098
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1113
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1128
-msgid "A managed group cannot have a password policy."
-msgstr ""
-
-#: ipalib/errors.py:1160
-#, python-format
-msgid "'%(entry)s' doesn't have a certificate."
+#: ipalib/util.py:233
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/errors.py:1176
-#, python-format
-msgid "Unable to create private group. A group '%(group)s' already exists."
-msgstr ""
-
-#: ipalib/errors.py:1192
-#, python-format
+#: ipalib/util.py:239 ipalib/util.py:253
msgid ""
-"A problem was encountered when verifying that all members were %(verb)s: "
-"%(exc)s"
-msgstr ""
-
-#: ipalib/errors.py:1216
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr ""
-
-#: ipalib/errors.py:1240
-msgid "change collided with another change"
+"address domain is not fully qualified (\"example.com\" instead of just "
+"\"example\")"
msgstr ""
-#: ipalib/errors.py:1256
-msgid "no modifications to be performed"
+#: ipalib/util.py:257
+msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/errors.py:1272
-#, python-format
-msgid "%(desc)s: %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1288
-msgid "limits exceeded for this query"
+#: ipalib/util.py:270
+msgid "hostname is not fully qualified"
msgstr ""
-#: ipalib/errors.py:1303
-#, python-format
-msgid "%(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1318
-msgid "modifying primary key is not allowed"
-msgstr ""
-
-#: ipalib/errors.py:1334
-#, python-format
-msgid "%(attr)s: Only one value allowed."
-msgstr ""
-
-#: ipalib/errors.py:1350
-#, python-format
-msgid "%(attr)s: Invalid syntax."
-msgstr ""
-
-#: ipalib/errors.py:1366
-#, python-format
-msgid "Bad search filter %(info)s"
-msgstr ""
-
-#: ipalib/errors.py:1391
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1407
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr ""
-
-#: ipalib/errors.py:1458
-msgid "Already registered"
-msgstr ""
-
-#: ipalib/errors.py:1474
-msgid "Not registered yet"
-msgstr ""
-
-#: ipalib/frontend.py:398
-msgid "Results are truncated, try a more specific search"
-msgstr ""
-
-#: ipalib/frontend.py:850
+#: ipalib/util.py:273
msgid ""
-"Retrieve and print all attributes from the server. Affects command output."
-msgstr ""
-
-#: ipalib/frontend.py:856
-msgid "Print entries as stored on the server. Only affects output format."
-msgstr ""
-
-#: ipalib/frontend.py:985
-msgid "Forward to server instead of running locally"
-msgstr ""
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr ""
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr ""
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr ""
-
-#: ipalib/parameters.py:296
-msgid "incorrect type"
-msgstr ""
-
-#: ipalib/parameters.py:299
-msgid "Only one value is allowed"
-msgstr ""
-
-#: ipalib/parameters.py:901
-msgid "must be True or False"
-msgstr ""
-
-#: ipalib/parameters.py:1002
-msgid "must be an integer"
-msgstr ""
-
-#: ipalib/parameters.py:1054
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1064
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr ""
-
-#: ipalib/parameters.py:1074
-msgid "must be a decimal number"
-msgstr ""
-
-#: ipalib/parameters.py:1097
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1107
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr ""
-
-#: ipalib/parameters.py:1174
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr ""
-
-#: ipalib/parameters.py:1192
-msgid "must be binary data"
-msgstr ""
-
-#: ipalib/parameters.py:1208
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1218
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1228
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr ""
-
-#: ipalib/parameters.py:1246
-msgid "must be Unicode text"
-msgstr ""
-
-#: ipalib/parameters.py:1277
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1287
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1297
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr ""
-
-#: ipalib/parameters.py:1315
-#, python-format
-msgid "The character '%(char)r' is not allowed."
-msgstr ""
-
-#: ipalib/parameters.py:1355
-#, python-format
-msgid "must be one of %(values)r"
-msgstr ""
-
-#: ipalib/util.py:200
-#, python-format
-msgid "Permission denied: %(file)s"
+"hostname parts may only include letters, numbers, and - (which is not "
+"allowed as the last character)"
msgstr ""
-#: ipalib/x509.py:174
+#: ipalib/x509.py:213
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
-#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
-#: ipaserver/plugins/dogtag.py:1600
+#: 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
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7139,6 +7263,11 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
+#: ipaserver/plugins/ldap2.py:401
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
@@ -7163,283 +7292,297 @@ msgstr ""
msgid "certutil failure"
msgstr ""
-#: ipa-client/config.c:55
+#: ipa-client/config.c:56
#, c-format
msgid "cannot open configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:62
+#: ipa-client/config.c:63
#, c-format
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:68
+#: ipa-client/config.c:69
#, c-format
msgid "out of memory\n"
msgstr ""
-#: ipa-client/config.c:79
+#: ipa-client/config.c:80
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:85
#, c-format
-msgid "Kerberos context initialization failed\n"
+msgid "Kerberos context initialization failed: %s (%d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:96
+#, c-format
+msgid "Unable to parse principal: %s (%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
+#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:155
+#: ipa-client/ipa-getkeytab.c:165
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:203
+#: ipa-client/ipa-getkeytab.c:213
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:218
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:245
+#: ipa-client/ipa-getkeytab.c:255
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:307
+#: ipa-client/ipa-getkeytab.c:317
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
-#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
+#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
+#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
-#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
-#: ipa-client/ipa-join.c:819
+#: 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
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:371
+#: ipa-client/ipa-getkeytab.c:381
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:492
+#: ipa-client/ipa-getkeytab.c:502
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:507
+#: ipa-client/ipa-getkeytab.c:517
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:545
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:552
+#: ipa-client/ipa-getkeytab.c:562
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:576
+#: ipa-client/ipa-getkeytab.c:586
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:583
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#, c-format
+msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:600
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:596
+#: ipa-client/ipa-getkeytab.c:613
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:606
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
-#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
+#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
+#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
+#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672
+#: ipa-client/ipa-getkeytab.c:689
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
+#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:736
+#: ipa-client/ipa-getkeytab.c:753
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:742
+#: ipa-client/ipa-getkeytab.c:759
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:776
+#: ipa-client/ipa-getkeytab.c:793
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:778
+#: ipa-client/ipa-getkeytab.c:795
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779
+#: ipa-client/ipa-getkeytab.c:796
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
msgid ""
"The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787
+#: ipa-client/ipa-getkeytab.c:804
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788
+#: ipa-client/ipa-getkeytab.c:805
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:807
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:808
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:810
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:812
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:797
+#: ipa-client/ipa-getkeytab.c:814
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:837
+#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:854
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:858
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:860
+#: ipa-client/ipa-getkeytab.c:877
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:873
+#: ipa-client/ipa-getkeytab.c:890
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. "
"-P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:885
+#: ipa-client/ipa-getkeytab.c:902
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:893
+#: ipa-client/ipa-getkeytab.c:910
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:901
+#: ipa-client/ipa-getkeytab.c:918
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:909
+#: ipa-client/ipa-getkeytab.c:926
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:916
+#: ipa-client/ipa-getkeytab.c:933
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:935
+#: ipa-client/ipa-getkeytab.c:952
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:944
+#: ipa-client/ipa-getkeytab.c:961
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:950
+#: ipa-client/ipa-getkeytab.c:967
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -7459,248 +7602,236 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:204
+#: ipa-client/ipa-join.c:206
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:210
+#: ipa-client/ipa-join.c:212
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:225
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:236
+#: ipa-client/ipa-join.c:245
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:269
+#: ipa-client/ipa-join.c:280
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
+#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:322
-#, c-format
-msgid "Search for ipaCertificateSubjectBase failed with error %d"
-msgstr ""
-
-#: ipa-client/ipa-join.c:390
+#: ipa-client/ipa-join.c:316
#, c-format
-msgid "Unable to determine root DN of %s\n"
+msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:399
+#: ipa-client/ipa-join.c:322
#, c-format
-msgid "Unable to determine certificate subject of %s\n"
+msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:407
+#: ipa-client/ipa-join.c:368
#, c-format
-msgid "Unable to make an LDAP connection to %s\n"
+msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:432
+#: ipa-client/ipa-join.c:439
#, c-format
-msgid "Searching with %s in %s\n"
+msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:438
+#: ipa-client/ipa-join.c:457
#, c-format
-msgid "ldap_search_ext_s: %s\n"
+msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:465
#, c-format
-msgid "Unable to find host '%s'\n"
+msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:481
#, c-format
-msgid "Unable to get binddn for host '%s'\n"
+msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:466
+#: ipa-client/ipa-join.c:605
#, c-format
-msgid "Host already has principal, trying bind anyway\n"
+msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
+#: ipa-client/ipa-join.c:620
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:484
-#, c-format
-msgid "Incorrect password.\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:495
-#, c-format
-msgid "principal not found in host entry\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:618
-#, c-format
-msgid "principal not found in XML-RPC response\n"
-msgstr ""
-
-#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
+#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
+#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
+#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:732
+#: ipa-client/ipa-join.c:719
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:741
+#: ipa-client/ipa-join.c:728
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:759
+#: ipa-client/ipa-join.c:746
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:764
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:788
+#: ipa-client/ipa-join.c:775
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:796
+#: ipa-client/ipa-join.c:783
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:846
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:849
+#: ipa-client/ipa-join.c:836
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:854
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:932
+#: ipa-client/ipa-join.c:919
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:940
+#: ipa-client/ipa-join.c:927
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not"
" provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:954
+#: ipa-client/ipa-join.c:941
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:983
+#: ipa-client/ipa-join.c:970
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:986
+#: ipa-client/ipa-join.c:973
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:989
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1001
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1007
+#: ipa-client/ipa-join.c:994
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1031
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1033
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1035
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1037
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1039
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1052
+#: ipa-client/ipa-join.c:1041
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1054
+#: ipa-client/ipa-join.c:1043
msgid "password"
msgstr ""
+#: ipa-client/ipa-join.c:1045
+msgid "LDAP basedn"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1045
+msgid "basedn"
+msgstr ""
+
#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
@@ -7791,5 +7922,3 @@ msgstr ""
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
-
-