From a071257ed2dd42e4767a7b220914e0f20b9fd970 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Thu, 8 Dec 2011 16:08:42 -0500 Subject: [PATCH] update i18n pot file for branch master --- install/po/ipa.pot | 8569 ++++++++++++++++++++++---------------------- 1 file changed, 4350 insertions(+), 4219 deletions(-) diff --git a/install/po/ipa.pot b/install/po/ipa.pot index 7a4894e4c..ddb40e7cc 100644 --- a/install/po/ipa.pot +++ b/install/po/ipa.pot @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" "newticket\n" -"POT-Creation-Date: 2011-06-06 13:27-0400\n" +"POT-Creation-Date: 2011-12-08 16:05-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,167 +19,498 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\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 "" -#: ipalib/plugins/aci.py:20 +#: 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" -"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" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "" + +#: ipalib/errors.py:877 +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "" + +#: ipalib/errors.py:893 +msgid "This command requires root access" +msgstr "" + +#: 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/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 "" +"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/errors.py:1230 +#, python-format +msgid "" +"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/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 "" +"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:172 -msgid "" -"\n" -" Given a name and a prefix construct an ACI name.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:181 -msgid "" -"\n" -" Parse the raw ACI name and return a tuple containing the ACI prefix\n" -" and the actual ACI name.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:193 -msgid "" -"\n" -" Pull the group name out of a memberOf filter\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:204 -msgid "" -"\n" -" Given a name and a set of keywords construct an ACI.\n" -" " -msgstr "" - #: ipalib/plugins/aci.py:215 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" @@ -207,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 "" @@ -215,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 "" @@ -242,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 "" @@ -257,222 +574,445 @@ 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 -msgid "" -"\n" -" Execute the aci-create operation.\n" -"\n" -" Returns the entry as it will be created in LDAP.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: Keyword arguments for the other LDAP attributes.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:533 -msgid "" -"\n" -" Delete ACI.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:538 +#: ipalib/plugins/aci.py:551 +#, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:543 -msgid "" -"\n" -" Execute the aci-delete operation.\n" -"\n" -" :param aciname: The name of the ACI being added.\n" -" :param kw: unused\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:576 -msgid "" -"\n" -" Modify ACI.\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 +#: 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:588 +#: ipalib/plugins/aci.py:601 +#, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:633 -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" -"\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" -" " -msgstr "" - -#: ipalib/plugins/aci.py:653 +#: 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:823 -msgid "" -"\n" -" Display a single ACI given an ACI name.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:837 -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 "" - -#: ipalib/plugins/aci.py:865 -msgid "" -"\n" -" Rename an ACI.\n" -" " -msgstr "" - -#: ipalib/plugins/aci.py:878 +#: ipalib/plugins/aci.py:891 msgid "New ACI name" msgstr "" -#: ipalib/plugins/aci.py:882 +#: ipalib/plugins/aci.py:895 +#, python-format msgid "Renamed ACI to \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:20 +#: ipalib/plugins/automember.py:28 +msgid "" +"\n" +"Auto Membership Rule.\n" +"\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" +"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/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" +" Add an automember rule.\n" +" " +msgstr "" + +#: 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/automember.py:252 +msgid "" +"\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" +" Override this so we can add completed and failed to the return " +"result.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:345 +msgid "" +"\n" +" Remove conditions from an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:350 +#, python-format +msgid "Removed condition(s) to \"%(value)s\"" +msgstr "" + +#: 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" +" Override this so we can set completed and failed.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:434 +msgid "" +"\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" +" 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" +" 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] "" + +#: ipalib/plugins/automember.py:486 +msgid "" +"\n" +" Display information about an automember rule.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:502 +msgid "" +"\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" +" Remove default group for all unmatched entries.\n" +" " +msgstr "" + +#: ipalib/plugins/automember.py:536 +#, python-format +msgid "Removed default group for automember \"%(value)s\"" +msgstr "" + +#: 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:29 msgid "" "\n" "Automount\n" @@ -565,678 +1105,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" -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: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 "" + +#: 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: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] "" + +#: 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" -" " +"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" -" " +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." 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 "" - -#: 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" @@ -1300,155 +1745,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" -" " +#: 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 "" -#: 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 "" @@ -1461,81 +1857,49 @@ 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" -"\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" @@ -1545,109 +1909,119 @@ 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" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic server configuration:\n" +" ipa config-show\n" +"\n" +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\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." +#: ipalib/plugins/config.py:111 +msgid "Default group for new users" msgstr "" -#: 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 "" -#: 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 "" -#: 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" +#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143 +msgid "Enable migration mode" msgstr "" -#: 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 "" -#: 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 @@ -1655,40 +2029,52 @@ 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" +msgid "Default user objectclasses (comma-separated list)" msgstr "" #: ipalib/plugins/config.py:165 -msgid "Number of days's notice of impending password expiration." +msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/config.py:170 -msgid "Password plugin features" +#: ipalib/plugins/config.py:166 +msgid "Number of days's notice of impending password expiration" msgstr "" #: ipalib/plugins/config.py:171 -msgid "Extra hashes to generate in password plug-in." +msgid "Password plugin features" msgstr "" -#: ipalib/plugins/config.py:183 -msgid "" -"\n" -" Modify configuration options.\n" -" " +#: ipalib/plugins/config.py:172 +msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/config.py:220 -msgid "" -"\n" -" Show the current configuration.\n" -" " +#: ipalib/plugins/config.py:184 +msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/delegation.py:19 +#: 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/config.py:237 +msgid "Show the current configuration." +msgstr "" + +#: ipalib/plugins/delegation.py:28 msgid "" "\n" "Group to Group Delegation\n" @@ -1702,131 +2088,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" -" " -msgstr "" - -#: ipalib/plugins/delegation.py:95 -msgid "" -"\n" -" Delegation object.\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 "" -#: 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" @@ -1839,6 +2202,16 @@ 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" @@ -1848,11 +2221,15 @@ 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" @@ -1884,7 +2261,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 " @@ -1914,357 +2291,566 @@ 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" -msgstr "" - -#: ipalib/plugins/dns.py:272 msgid "" -"\n" -" DNS Zone, container for resource records.\n" -" " +"format must be specified as \"subtype hostname\" (see RFC 1183 for details)" msgstr "" -#: ipalib/plugins/dns.py:284 -msgid "DNS" +#: ipalib/plugins/dns.py:254 +msgid "the value of subtype must be integer" msgstr "" -#: ipalib/plugins/dns.py:289 -msgid "Zone name" +#: ipalib/plugins/dns.py:257 +msgid "the value of subtype must be between 0 and 65535" msgstr "" -#: ipalib/plugins/dns.py:290 -msgid "Zone name (FQDN)" +#: ipalib/plugins/dns.py:266 +msgid "" +"format must be specified as \"type key_tag algorithm certificate_or_crl" +"\" (see RFC 4398 for details)" msgstr "" -#: ipalib/plugins/dns.py:296 -msgid "Authoritative nameserver" +#: 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:297 -msgid "Authoritative nameserver." +#: ipalib/plugins/dns.py:277 +msgid "the value of type and key_tag must be between 0 and 65535" msgstr "" -#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302 -msgid "Administrator e-mail address" +#: 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:308 -msgid "SOA serial" +#: 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 "SOA record serial number" +msgid "" +"format must be specified as \"key_tag algorithm digest_type digest\" (see " +"RFC 4034 for details)" msgstr "" -#: ipalib/plugins/dns.py:316 -msgid "SOA refresh" +#: 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:317 -msgid "SOA record refresh time" -msgstr "" - -#: ipalib/plugins/dns.py:324 -msgid "SOA retry" -msgstr "" - -#: ipalib/plugins/dns.py:325 -msgid "SOA record retry time" +#: 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 "SOA expire" -msgstr "" - -#: ipalib/plugins/dns.py:333 -msgid "SOA record expire time" +msgid "" +"format must be specified as \"flags protocol algorithm public_key\" (see RFC " +"2535 for details)" msgstr "" #: ipalib/plugins/dns.py:340 -msgid "SOA minimum" +msgid "flags, protocol and algorithm must be integers" msgstr "" -#: ipalib/plugins/dns.py:341 -msgid "How long should negative responses be cached" +#: ipalib/plugins/dns.py:346 +msgid "the value of protocol must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:349 -msgid "SOA time to live" -msgstr "" - -#: ipalib/plugins/dns.py:350 -msgid "SOA record time to live" -msgstr "" - -#: ipalib/plugins/dns.py:354 -msgid "SOA class" -msgstr "" - -#: ipalib/plugins/dns.py:355 -msgid "SOA record class" -msgstr "" - -#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361 -msgid "BIND update policy" -msgstr "" - -#: ipalib/plugins/dns.py:365 -msgid "Active zone" -msgstr "" - -#: ipalib/plugins/dns.py:366 -msgid "Is zone active?" -msgstr "" - -#: ipalib/plugins/dns.py:372 -msgid "Dynamic update" -msgstr "" - -#: ipalib/plugins/dns.py:373 -msgid "Allow dynamic updates." -msgstr "" - -#: ipalib/plugins/dns.py:382 +#: ipalib/plugins/dns.py:367 msgid "" -"\n" -" Create new DNS zone (SOA record).\n" -" " +"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:387 ipalib/plugins/dns.py:697 -#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250 -msgid "Force" -msgstr "" - -#: ipalib/plugins/dns.py:388 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/dns.py:384 +#, python-format +msgid "%s must be integer" msgstr "" #: ipalib/plugins/dns.py:391 -msgid "Add the nameserver to DNS with this IP address" +#, python-format +msgid "%s must be float" msgstr "" -#: ipalib/plugins/dns.py:397 -msgid "DNS is not configured" +#: ipalib/plugins/dns.py:394 +msgid "d1 and d2 must be between 0 and 90" msgstr "" -#: ipalib/plugins/dns.py:431 +#: 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 "" -"\n" -" Delete DNS zone (SOA record).\n" -" " +"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 "" -"\n" -" Modify DNS zone (SOA record).\n" -" " +"format must be specified as \"preference exchanger\" (see RFC 2230 for " +"details)" msgstr "" -#: ipalib/plugins/dns.py:452 -msgid "" -"\n" -" Search for DNS zones (SOA records).\n" -" " +#: ipalib/plugins/dns.py:445 +msgid "the value of preference must be integer" msgstr "" -#: ipalib/plugins/dns.py:460 -msgid "" -"\n" -" Display information about a DNS zone (SOA record).\n" -" " +#: ipalib/plugins/dns.py:448 +msgid "the value of preference must be between 0 and 65535" msgstr "" #: ipalib/plugins/dns.py:468 msgid "" -"\n" -" Disable DNS Zone.\n" -" " +"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:472 -msgid "Disabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:474 +msgid "type_covered must be one of " msgstr "" -#: ipalib/plugins/dns.py:490 +#: ipalib/plugins/dns.py:482 +msgid "algorithm, labels, original_ttl and key_tag must be integers" +msgstr "" + +#: ipalib/plugins/dns.py:489 msgid "" -"\n" -" Enable DNS Zone.\n" -" " +"signature_expiration and signature_inception must follow time format " +"\"YYYYMMDDHHMMSS\"" msgstr "" -#: ipalib/plugins/dns.py:494 -msgid "Enabled DNS zone \"%(value)s\"" +#: ipalib/plugins/dns.py:493 +msgid "the value of algorithm and labels must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:512 +#: 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 "" -"\n" -" DNS record.\n" -" " +"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 " +"for details)" msgstr "" -#: ipalib/plugins/dns.py:522 -msgid "DNS resource record" +#: ipalib/plugins/dns.py:515 +msgid "algorithm and fp_type must be integers" msgstr "" -#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528 -msgid "Record name" +#: ipalib/plugins/dns.py:518 +msgid "the value of algorithm and fp_type must be between 0 and 255" msgstr "" -#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534 -msgid "Time to live" +#: ipalib/plugins/dns.py:527 +msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:538 -msgid "Class" +#: ipalib/plugins/dns.py:611 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:539 -msgid "DNS class" +#: ipalib/plugins/dns.py:638 +msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:566 -msgid "" -"\n" -" Base class for DNS record commands with record options.\n" -" " +#: ipalib/plugins/dns.py:639 +msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:610 -msgid "" -"\n" -" Base class for adding/removing records from DNS resource entries.\n" -" " +#: ipalib/plugins/dns.py:646 +msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "" -"\n" -" Add records to DNS resource.\n" -" " +#: ipalib/plugins/dns.py:647 +msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:690 -msgid "" -"\n" -" Add new DNS resource record.\n" -" " +#: ipalib/plugins/dns.py:652 +msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:699 -msgid "force NS record creation even if its hostname is not in DNS" +#: ipalib/plugins/dns.py:653 +msgid "Zone name (FQDN)" +msgstr "" + +#: 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:666 +msgid "Authoritative nameserver domain name" +msgstr "" + +#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672 +msgid "Administrator e-mail address" +msgstr "" + +#: ipalib/plugins/dns.py:678 +msgid "SOA serial" +msgstr "" + +#: ipalib/plugins/dns.py:679 +msgid "SOA record serial number" +msgstr "" + +#: ipalib/plugins/dns.py:686 +msgid "SOA refresh" +msgstr "" + +#: ipalib/plugins/dns.py:687 +msgid "SOA record refresh time" +msgstr "" + +#: ipalib/plugins/dns.py:694 +msgid "SOA retry" +msgstr "" + +#: ipalib/plugins/dns.py:695 +msgid "SOA record retry time" +msgstr "" + +#: ipalib/plugins/dns.py:702 +msgid "SOA expire" +msgstr "" + +#: ipalib/plugins/dns.py:703 +msgid "SOA record expire time" +msgstr "" + +#: ipalib/plugins/dns.py:710 +msgid "SOA minimum" +msgstr "" + +#: ipalib/plugins/dns.py:711 +msgid "How long should negative responses be cached" +msgstr "" + +#: ipalib/plugins/dns.py:719 +msgid "SOA time to live" +msgstr "" + +#: ipalib/plugins/dns.py:720 +msgid "SOA record time to live" +msgstr "" + +#: ipalib/plugins/dns.py:724 +msgid "SOA class" +msgstr "" + +#: ipalib/plugins/dns.py:725 +msgid "SOA record class" +msgstr "" + +#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731 +msgid "BIND update policy" msgstr "" #: ipalib/plugins/dns.py:735 +msgid "Active zone" +msgstr "" + +#: ipalib/plugins/dns.py:736 +msgid "Is zone active?" +msgstr "" + +#: ipalib/plugins/dns.py:742 +msgid "Dynamic update" +msgstr "" + +#: ipalib/plugins/dns.py:743 +msgid "Allow dynamic updates." +msgstr "" + +#: ipalib/plugins/dns.py:754 +msgid "Create new DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155 +#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252 +msgid "Force" +msgstr "" + +#: ipalib/plugins/dns.py:759 +msgid "Force DNS zone creation even if nameserver not in DNS." +msgstr "" + +#: ipalib/plugins/dns.py:762 +msgid "Add the nameserver to DNS with this IP address" +msgstr "" + +#: ipalib/plugins/dns.py:775 +msgid "DNS is not configured" +msgstr "" + +#: ipalib/plugins/dns.py:785 +msgid "Nameserver address is not a fully qualified domain name" +msgstr "" + +#: ipalib/plugins/dns.py:811 +msgid "Delete DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:817 +msgid "Modify DNS zone (SOA record)." +msgstr "" + +#: ipalib/plugins/dns.py:830 +msgid "Search for DNS zones (SOA records)." +msgstr "" + +#: 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: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 "" + +#: ipalib/plugins/dns.py:896 +msgid "Enable DNS Zone." +msgstr "" + +#: ipalib/plugins/dns.py:899 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:922 +msgid "DNS resource record" +msgstr "" + +#: 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 "" + +#: 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: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" @@ -2301,184 +2887,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 "" -#: ipalib/plugins/entitle.py:206 -msgid "" -"\n" -" Display current entitlements\n" -" " +#: ipalib/plugins/entitle.py:191 +msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602 +#: ipalib/plugins/entitle.py:208 +msgid "Display current entitlements." +msgstr "" + +#: 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" @@ -2522,147 +3052,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" @@ -2685,7 +3191,7 @@ msgid "" " 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" @@ -2693,7 +3199,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" @@ -2702,7 +3208,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" @@ -2713,263 +3219,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: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" -" " -msgstr "" - -#: ipalib/plugins/hbacrule.py:234 -msgid "Deleted HBAC rule \"%(value)s\"" +#: ipalib/plugins/hbacrule.py:238 +msgid "Delete an HBAC rule." msgstr "" #: ipalib/plugins/hbacrule.py:240 -msgid "" -"\n" -" Modify an HBAC rule.\n" -" " +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:244 +#: ipalib/plugins/hbacrule.py:246 +msgid "Modify an HBAC rule." +msgstr "" + +#: 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" @@ -2994,83 +3448,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" -msgstr "" - -#: ipalib/plugins/hbacsvc.py:66 -msgid "Service name" -msgstr "" - -#: ipalib/plugins/hbacsvc.py:67 +#: ipalib/plugins/hbacsvc.py:57 ipalib/plugins/hbacsvc.py:73 msgid "HBAC service" msgstr "" -#: ipalib/plugins/hbacsvc.py:74 +#: ipalib/plugins/hbacsvc.py:58 +msgid "HBAC services" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:66 +msgid "HBAC Services" +msgstr "" + +#: ipalib/plugins/hbacsvc.py:67 +msgid "HBAC Service" +msgstr "" + +#: 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" @@ -3097,93 +3545,258 @@ 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:138 -msgid "" -"\n" -" Remove members from an HBAC service group.\n" -" " +#: ipalib/plugins/hbacsvcgroup.py:132 +msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/host.py:20 +#: ipalib/plugins/hbactest.py:27 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts and from " +"where.\n" +"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/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" @@ -3240,219 +3853,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" -" " -msgstr "" - -#: ipalib/plugins/host.py:189 +#: ipalib/plugins/host.py:207 msgid "invalid IP address" msgstr "" -#: ipalib/plugins/host.py:194 -msgid "" -"\n" -" Host object.\n" -" " +#: ipalib/plugins/host.py:216 +msgid "host" msgstr "" -#: ipalib/plugins/host.py:231 -msgid "Host name" +#: ipalib/plugins/host.py:217 +msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:238 -msgid "A description of this host" -msgstr "" - -#: ipalib/plugins/host.py:242 -msgid "Locality" -msgstr "" - -#: ipalib/plugins/host.py:243 -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "" - -#: ipalib/plugins/host.py:248 -msgid "Host location (e.g. \"Lab 2\")" -msgstr "" - -#: ipalib/plugins/host.py:252 -msgid "Platform" -msgstr "" - -#: ipalib/plugins/host.py:253 -msgid "Host hardware platform (e.g. \"Lenovo T61\")" +#: ipalib/plugins/host.py:249 +msgid "Host" msgstr "" #: ipalib/plugins/host.py:257 +msgid "Host name" +msgstr "" + +#: ipalib/plugins/host.py:264 +msgid "A description of this host" +msgstr "" + +#: ipalib/plugins/host.py:268 +msgid "Locality" +msgstr "" + +#: ipalib/plugins/host.py:269 +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "" + +#: ipalib/plugins/host.py:274 +msgid "Host location (e.g. \"Lab 2\")" +msgstr "" + +#: ipalib/plugins/host.py:278 +msgid "Platform" +msgstr "" + +#: ipalib/plugins/host.py:279 +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "" + +#: 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" @@ -3484,902 +4080,112 @@ 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 +#: 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 "" -#: 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 "" - -#: 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" -msgstr "" - -#: ipalib/plugins/internal.py:125 -msgid "Reason for Revocation" -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" -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 "" - -#: 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:145 -msgid "Certificate for ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:146 -msgid "Issue New Certificate for ${entity} ${primary_key}" +#: ipalib/plugins/internal.py:66 +msgid "Dict of JSON encoded IPA Commands" msgstr "" #: ipalib/plugins/internal.py:147 -msgid "Revoke Certificate for ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:148 -msgid "Restore Certificate for ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:152 -msgid "Name" -msgstr "" - -#: ipalib/plugins/internal.py:155 -msgid "Add Delegation" -msgstr "" - -#: ipalib/plugins/internal.py:158 -msgid "Add DNS Zone" -msgstr "" - -#: ipalib/plugins/internal.py:159 -msgid "DNS Zone Settings" -msgstr "" - -#: ipalib/plugins/internal.py:162 -msgid "Add DNS Resource Record" -msgstr "" - -#: ipalib/plugins/internal.py:163 -msgid "Resource" -msgstr "" - -#: ipalib/plugins/internal.py:165 -msgid "Data" -msgstr "" - -#: ipalib/plugins/internal.py:166 -msgid "Records for DNS Zone" -msgstr "" - -#: ipalib/plugins/internal.py:169 -msgid "Add Group" -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 "" - -#: ipalib/plugins/internal.py:174 -msgid "Add HBAC Rule" -msgstr "" - -#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280 -#: ipalib/plugins/internal.py:306 -msgid "Active" -msgstr "" - -#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282 -msgid "Allow" -msgstr "" - -#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283 -msgid "Deny" -msgstr "" - -#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281 -#: ipalib/plugins/internal.py:308 -msgid "Inactive" -msgstr "" - -#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296 -msgid "Rule status" -msgstr "" - -#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284 -msgid "Who" -msgstr "" - -#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285 -msgid "Anyone" -msgstr "" - -#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286 -msgid "Specified Users and Groups" -msgstr "" - -#: ipalib/plugins/internal.py:183 -msgid "Accessing" -msgstr "" - -#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288 -msgid "Any Host" -msgstr "" - -#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289 -msgid "Specified Hosts and Groups" -msgstr "" - -#: ipalib/plugins/internal.py:186 -msgid "Via Service" -msgstr "" - -#: ipalib/plugins/internal.py:187 -msgid "Any Service" -msgstr "" - -#: ipalib/plugins/internal.py:188 -msgid "Specified Services and Groups" -msgstr "" - -#: ipalib/plugins/internal.py:189 -msgid "From" -msgstr "" - -#: ipalib/plugins/internal.py:192 -msgid "Add HBAC Service" -msgstr "" - -#: ipalib/plugins/internal.py:195 -msgid "Add HBAC Service Group" -msgstr "" - -#: ipalib/plugins/internal.py:199 -msgid "Add Host" -msgstr "" - -#: ipalib/plugins/internal.py:200 -msgid "Host Certificate" -msgstr "" - -#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259 -msgid "Host Name" -msgstr "" - -#: ipalib/plugins/internal.py:202 -msgid "Host Settings" -msgstr "" - -#: ipalib/plugins/internal.py:203 -msgid "Enrolled?" -msgstr "" - -#: ipalib/plugins/internal.py:204 -msgid "Enrollment" -msgstr "" - -#: ipalib/plugins/internal.py:205 -msgid "Fully Qualified Host Name" -msgstr "" - -#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262 -msgid "Status" -msgstr "" - -#: ipalib/plugins/internal.py:208 -msgid "Kerberos Key Present, Host Provisioned" -msgstr "" - -#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264 -msgid "Delete Key, Unprovision" -msgstr "" - -#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265 -msgid "Kerberos Key Not Present" -msgstr "" - -#: ipalib/plugins/internal.py:211 -msgid "Enroll via One-Time-Password" -msgstr "" - -#: ipalib/plugins/internal.py:212 -msgid "Set OTP" -msgstr "" - -#: ipalib/plugins/internal.py:213 -msgid "One-Time-Password has been set." -msgstr "" - -#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266 -msgid "Unprovisioning ${entity}" -msgstr "" - -#: ipalib/plugins/internal.py:215 -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:220 -msgid "Host Group Settings" -msgstr "" - -#: ipalib/plugins/internal.py:223 -msgid "Kerberos ticket policy" -msgstr "" - -#: ipalib/plugins/internal.py:226 -msgid "Add Netgroup" -msgstr "" - -#: ipalib/plugins/internal.py:227 -msgid "Netgroup Settings" -msgstr "" - -#: ipalib/plugins/internal.py:230 -msgid "Add Permission" -msgstr "" - -#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376 -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 -msgid "Permission with invalid target specification" -msgstr "" - -#: ipalib/plugins/internal.py:241 -msgid "Add Privilege" -msgstr "" - -#: ipalib/plugins/internal.py:242 -msgid "Privilege Settings" -msgstr "" - -#: ipalib/plugins/internal.py:245 -msgid "Add Password Policy" -msgstr "" - -#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219 -msgid "Password Policy" -msgstr "" - -#: ipalib/plugins/internal.py:249 -msgid "Add Role" -msgstr "" - -#: ipalib/plugins/internal.py:250 -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 -msgid "Service Certificate" -msgstr "" - -#: ipalib/plugins/internal.py:258 -msgid "Service Settings" -msgstr "" - -#: ipalib/plugins/internal.py:260 -msgid "Provisioning" -msgstr "" - -#: ipalib/plugins/internal.py:261 -msgid "Service" -msgstr "" - -#: ipalib/plugins/internal.py:263 -msgid "Kerberos Key Present, Service Provisioned" -msgstr "" - -#: ipalib/plugins/internal.py:267 -msgid "Are you sure you want to unprovision this service?" -msgstr "" - -#: ipalib/plugins/internal.py:271 -msgid "Add Sudo Command" -msgstr "" - -#: ipalib/plugins/internal.py:275 -msgid "Add Sudo Command Group" -msgstr "" - -#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80 -msgid "Commands" -msgstr "" - -#: ipalib/plugins/internal.py:279 -msgid "Add Sudo Rule" -msgstr "" - -#: ipalib/plugins/internal.py:287 -msgid "Access this host" -msgstr "" - -#: ipalib/plugins/internal.py:290 -msgid "Run Commands" -msgstr "" - -#: ipalib/plugins/internal.py:291 -msgid "Any Command" -msgstr "" - -#: ipalib/plugins/internal.py:292 -msgid "Specified Commands and Groups" -msgstr "" - -#: ipalib/plugins/internal.py:293 -msgid "As Whom" -msgstr "" - -#: ipalib/plugins/internal.py:294 -msgid "Any Group" -msgstr "" - -#: ipalib/plugins/internal.py:295 -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 -msgid "Account Settings" -msgstr "" - -#: ipalib/plugins/internal.py:302 -msgid "Contact Settings" -msgstr "" - -#: ipalib/plugins/internal.py:303 -msgid "Mailing Address" -msgstr "" - -#: ipalib/plugins/internal.py:304 -msgid "Employee Information" -msgstr "" - -#: ipalib/plugins/internal.py:305 -msgid "Misc. Information" -msgstr "" - -#: ipalib/plugins/internal.py:307 -msgid "Click to Deactivate" -msgstr "" - -#: ipalib/plugins/internal.py:309 -msgid "Click to Activate" -msgstr "" - -#: ipalib/plugins/internal.py:310 -msgid "Error changing account status" -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" -msgstr "" - -#: ipalib/plugins/internal.py:314 -msgid "Password change complete" -msgstr "" - -#: ipalib/plugins/internal.py:315 -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 "" - -#: ipalib/plugins/internal.py:346 -msgid "Remove ${entity}." -msgstr "" - -#: 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:354 -msgid "Indirect Member Of" -msgstr "" - -#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359 -msgid "Settings" -msgstr "" - -#: ipalib/plugins/internal.py:358 -msgid "Search" -msgstr "" - -#: ipalib/plugins/internal.py:362 -msgid "Quick Links" -msgstr "" - -#: ipalib/plugins/internal.py:363 -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 -msgid "" -"Query returned more results than the configured size limit. Displaying the " -"first ${counter} results." -msgstr "" - -#: 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 "" - -#: ipalib/plugins/internal.py:373 -msgid "Back to Top" -msgstr "" - -#: ipalib/plugins/internal.py:377 -msgid "Policy" -msgstr "" - -#: ipalib/plugins/internal.py:378 -msgid "Audit" -msgstr "" - -#: ipalib/plugins/internal.py:379 -msgid "IPA Server" -msgstr "" - -#: ipalib/plugins/internal.py:380 -msgid "Sudo" -msgstr "" - -#: 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 -msgid "Automount" -msgstr "" - -#: ipalib/plugins/internal.py:386 -msgid "Add ${other_entity} into ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:387 -msgid "${other_entity} enrolled in ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:388 -msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}" -msgstr "" - -#: ipalib/plugins/internal.py:389 -msgid "Remove ${other_entity} from ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:392 -msgid "Text does not match field pattern" -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 , 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" -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 "" - -#: ipalib/errors.py:858 -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" -msgstr "" - -#: ipalib/errors.py:874 -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." -msgstr "" - -#: ipalib/errors.py:1160 -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -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 -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" -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 -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 +#: ipalib/util.py:192 #, python-format msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/x509.py:174 +#: ipalib/util.py:220 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters" +msgstr "" + +#: ipalib/util.py:223 ipalib/util.py:264 +msgid "cannot be longer that 255 characters" +msgstr "" + +#: ipalib/util.py:233 +msgid "too many '@' characters" +msgstr "" + +#: ipalib/util.py:239 ipalib/util.py:253 +msgid "" +"address domain is not fully qualified (\"example.com\" instead of just " +"\"example\")" +msgstr "" + +#: ipalib/util.py:257 +msgid "domain name may only include letters, numbers, and -" +msgstr "" + +#: ipalib/util.py:270 +msgid "hostname is not fully qualified" +msgstr "" + +#: ipalib/util.py:273 +msgid "" +"hostname parts may only include letters, numbers, and - (which is not " +"allowed as the last character)" +msgstr "" + +#: 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 "" @@ -7228,6 +7352,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 "" @@ -7252,281 +7381,295 @@ 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: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 "" @@ -7546,248 +7689,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: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 "" -#: ipa-client/ipa-join.c:390 +#: ipa-client/ipa-join.c:439 #, c-format msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:399 -#, c-format -msgid "Unable to determine certificate subject of %s\n" -msgstr "" - -#: ipa-client/ipa-join.c:407 -#, c-format -msgid "Unable to make an LDAP connection to %s\n" -msgstr "" - -#: ipa-client/ipa-join.c:432 -#, c-format -msgid "Searching with %s in %s\n" -msgstr "" - -#: ipa-client/ipa-join.c:438 -#, c-format -msgid "ldap_search_ext_s: %s\n" -msgstr "" - -#: ipa-client/ipa-join.c:446 -#, c-format -msgid "Unable to find host '%s'\n" -msgstr "" - -#: ipa-client/ipa-join.c:453 -#, c-format -msgid "Unable to get binddn for host '%s'\n" -msgstr "" - -#: ipa-client/ipa-join.c:466 -#, c-format -msgid "Host already has principal, trying bind anyway\n" -msgstr "" - -#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633 -#, c-format -msgid "Host is already joined.\n" -msgstr "" - -#: ipa-client/ipa-join.c:484 +#: ipa-client/ipa-join.c:457 #, c-format msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:495 +#: ipa-client/ipa-join.c:465 #, c-format -msgid "principal not found in host entry\n" +msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:618 +#: ipa-client/ipa-join.c:481 +#, c-format +msgid "Enrollment failed. %s\n" +msgstr "" + +#: ipa-client/ipa-join.c:605 #, 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:620 +#, c-format +msgid "Host is already joined.\n" +msgstr "" + +#: 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"