From admin at transifex.net Mon Mar 1 16:08:44 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 01 Mar 2010 16:08:44 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100301160844.9359.46266@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by beckerde Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Fedora Spanish translation of freeipa.master.ipa. # This file is distributed under the same license as the freeipa.master.ipa package. # # H?ctor Daniel Cabrera , 2010. # msgid "" msgstr "" "Project-Id-Version: freeipa.master.ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-02-15 14:55-0500\n" "PO-Revision-Date: \n" "Last-Translator: Domingo Becker \n" "Language-Team: Fedora Spanisg \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: ARGENTINA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../../ipalib/parameters.py:224 msgid "incorrect type" msgstr "tipo incorrecto" #: ../../ipalib/parameters.py:227 msgid "Only one value is allowed" msgstr "S?lo se permite un valor" #: ../../ipalib/parameters.py:791 msgid "must be True or False" msgstr "debe ser True o False" #: ../../ipalib/parameters.py:892 msgid "must be an integer" msgstr "debe ser un entero" #: ../../ipalib/parameters.py:943 #, python-format msgid "must be at least %(minvalue)d" msgstr "debe ser como m?nimo %(minvalue)d" #: ../../ipalib/parameters.py:953 #, python-format msgid "can be at most %(maxvalue)d" msgstr "puede ser como m?ximo %(maxvalue)d" #: ../../ipalib/parameters.py:963 msgid "must be a decimal number" msgstr "debe ser un n?mero decimal" #: ../../ipalib/parameters.py:985 #, python-format msgid "must be at least %(minvalue)f" msgstr "debe ser como m?nimo %(minvalue)f" #: ../../ipalib/parameters.py:995 #, python-format msgid "can be at most %(maxvalue)f" msgstr "puede ser como m?ximo %(maxvalue)f" #: ../../ipalib/parameters.py:1055 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "debe coincidir con el modelo \"%(pattern)s" #: ../../ipalib/parameters.py:1073 msgid "must be binary data" msgstr "debe ser un dato binario" #: ../../ipalib/parameters.py:1088 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "debe ser como m?nimo de %(minlength)d bytes" #: ../../ipalib/parameters.py:1098 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "puede ser a lo sumo de %(maxlength)d bytes" #: ../../ipalib/parameters.py:1108 #, python-format msgid "must be exactly %(length)d bytes" msgstr "debe ser exactamente de %(length)d bytes" #: ../../ipalib/parameters.py:1126 msgid "must be Unicode text" msgstr "debe ser texto Unicode" #: ../../ipalib/parameters.py:1156 #, python-format msgid "must be at least %(minlength)d characters" msgstr "debe tener como m?nimo %(minlength)d caracteres" #: ../../ipalib/parameters.py:1166 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "puede tener a lo sumo %(maxlength)d caracteres" #: ../../ipalib/parameters.py:1176 #, python-format msgid "must be exactly %(length)d characters" msgstr "debe tener exactamente %(length)d caracteres" #: ../../ipalib/parameters.py:1215 #, python-format msgid "must be one of %(values)r" msgstr "debe ser uno de %(values)r" #: ../../ipalib/cli.py:505 #, python-format msgid "Enter %(label)s again to verify: " msgstr "ngrese %(label)s nuevamente para su verificaci?n: " #: ../../ipalib/cli.py:509 msgid "Passwords do not match!" msgstr "?Las contrase?as no coinciden!" #: ../../ipalib/cli.py:514 msgid "Cancelled." msgstr "Cancelado." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "Los resultados se encuentran truncados, intente realizar una b?squeda m?s espec?fica" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "error %(code)d desconocido de %(server)s: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "ha ocurrido un error interno" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "ha ocurrido un error interno en el servidor en %(server)r" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "comando desconocido %(name)r" #: ../../ipalib/errors.py:386 #: ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "error en el servidor %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "no es posible conectar con %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "Petici?n JSON-RPC no v?lida: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "Error de kerberos: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "no se ha recibido ninguna credencial Kerberos" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "El servicio %(service)r no se ha encontrado en la base de datos Kerberos" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "No se han encontrado credenciales de cach?" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "El ticket ha expirado" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "Los permisos de credenciales de cach? son incorrectos" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "Las credenciales de cach? est?n mal formadas" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "No es posible resolver KDC para el reinado solicitado" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "Acceso insuficiente: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "el comando %(name)r no tiene argumentos" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "el comando %(name)r lleva al menos %(count)d argumento" msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "superponiendo argumentos y opciones: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "%(name)r es necesario" #: ../../ipalib/errors.py:706 #: ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "%(name)r inv?lido: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "api no posee tal nombre de espacio: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "Las contrase?as no coinciden" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "El comando no se ha implementado" #: ../../ipalib/errors.py:783 #: ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "Esta entrada ya existe" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "Debe registrar un equipo para poder generar un servicio de equipo" #: ../../ipalib/errors.py:831 #, python-format msgid "Service principal is not of the form: service/fully-qualified host name: %(reason)s" msgstr "El servicio principal no tiene la forma de servicio/nombre de equipo totalmente calificado: %(reason)s" #: ../../ipalib/errors.py:847 msgid "The realm for the principal does not match the realm for this IPA server" msgstr "El reinado para el principal no coincide con el reinado para este servidor IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "Este comando necesita acceso de usuario root" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "Este ya es un grupo posix" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "El principal no tiene la forma usuario at REINADO: %(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "Esta entrada ya se encuentra desbloqueada" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "Esta entrada ya se encuentra bloqueada" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "Esta entrada posee definido nsAccountLock, no puede ser bloqueada ni desbloqueada" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "Esta entrada no es miembro del grupo" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "Un grupo no puede ser miembro de s? mismo" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "Esta entrada ya es miembro del grupo" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "Fall? la decodificaci?n base64: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "Un grupo no puede ser agregado como miembro de s? mismo" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "El grupo de usuarios predeterminado no puede ser eliminado" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "no existe un comando para el t?pico de ayuda %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "la modificaci?n choca con otra modificaci?n diferente" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "no existen modificaciones a ser realizadas" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "han sido excedidos los l?mites para esta consulta" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "La operaci?n certificada no puede ser completada: %(error)s" #: ../../ipalib/plugins/rolegroup.py:50 msgid "Role Groups" msgstr "Grupos de funciones" #: ../../ipalib/plugins/rolegroup.py:75 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:85 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:95 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:106 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "%(count)d grupo de roles coincidente" msgstr[1] "%(count)d grupo de roles coincidentes" #: ../../ipalib/plugins/host.py:82 msgid "Hosts" msgstr "Equipos" #: ../../ipalib/plugins/host.py:151 #, python-format msgid "Added host \"%(value)s\"" msgstr "Ha sido agregado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:180 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "Ha sido eliminado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:208 #, python-format msgid "Modified host \"%(value)s\"" msgstr "Ha sido modificado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:257 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "%(count)d equipo coincidente" msgstr[1] "%(count)d equipos coincidentes" #: ../../ipalib/plugins/group.py:58 msgid "User Groups" msgstr "Grupos de usuarios" #: ../../ipalib/plugins/group.py:87 #, python-format msgid "Added group \"%(value)s\"" msgstr "Ha sido agregado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:110 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "Ha sido eliminado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:136 #, python-format msgid "Modified group \"%(value)s\"" msgstr "Ha sido modificado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:165 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d grupo coincidente" msgstr[1] "%(count)d grupos coincidentes" #: ../../ipalib/plugins/service.py:122 msgid "Services" msgstr "Servicios" #: ../../ipalib/plugins/hbac.py:62 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/cert.py:63 #: ../../ipalib/plugins/cert.py:84 msgid "Unable to decode certificate in entry" msgstr "No es posible decodificar el certificado en la entrada" #: ../../ipalib/plugins/cert.py:106 #: ../../ipalib/plugins/cert.py:120 #: ../../ipalib/plugins/cert.py:137 msgid "Failure decoding Certificate Signing Request" msgstr "Falla al intentar decodificar la petici?n de identificaci?n de certificado" #: ../../ipalib/plugins/cert.py:139 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Falla al intentar decodificar la petici?n de identificaci?n de certificado: %s" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "tipo, filtro, sub?rbol y grupo de destino, se excluyen mutuamente" #: ../../ipalib/plugins/aci.py:112 msgid "at least one of: type, filter, subtree, targetgroup, attrs or memberof are required" msgstr "es necesario como m?nimo alguno de: tipo, filtro, sub?rbol, grupo de destino, atributos, o miembro de " #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "grupo y grupo de tareas se excluyen mutuamente" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "Es necesario grupo o grupo de tareas" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "El grupo '%s' no existe" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACIs" #: ../../ipalib/plugins/aci.py:258 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "Ha sido creado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:308 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "Ha sido eliminado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:348 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "Ha sido modificado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:408 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "%(count)d ACI coincidente" msgstr[1] "%(count)d ACIs coincidentes" #: ../../ipalib/plugins/dns.py:114 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/automount.py:231 msgid "Automount Maps" msgstr "Mapeos de automontaje" #: ../../ipalib/plugins/automount.py:321 msgid "Automount Keys" msgstr "Llaves de automontaje" #: ../../ipalib/plugins/netgroup.py:55 msgid "Net Groups" msgstr "Grupos de red" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d variables" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "%(count)d complemento cargado" msgstr[1] "%(count)d complementos cargados" #: ../../ipalib/plugins/user.py:71 msgid "Users" msgstr "Usuarios" #: ../../ipalib/plugins/user.py:141 #, python-format msgid "Added user \"%(value)s\"" msgstr "Ha sido agregado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:186 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "Ha sido eliminado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:205 #, python-format msgid "Modified user \"%(value)s\"" msgstr "Ha sido modificado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:216 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "%(count)d usuario coincidente" msgstr[1] "%(count)d usuarios coincidentes" #: ../../ipalib/plugins/user.py:236 #, python-format msgid "Locked user \"%(value)s\"" msgstr "Ha sido bloqueado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:262 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "Ha sido desbloqueado el usuario \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:50 msgid "Task Groups" msgstr "Grupos de tareas" #: ../../ipalib/plugins/taskgroup.py:75 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:85 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:95 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:106 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "%(count)d grupo de tarea coincidente" msgstr[1] "%(count)d grupos de tarea coincidentes" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Host Groups" msgstr "Grupos de equipo" #: ../../ipalib/plugins/hostgroup.py:74 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:84 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:94 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:105 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "%(count)d grupo de equipos coincidente" msgstr[1] "%(count)d grupos de equipos coincidentes" #: ../../ipalib/plugins/pwpolicy.py:231 msgid "priority cannot be set on global policy" msgstr "la prioridad no puede ser definida en una pl?tica global" #: ../../ipaserver/install/certs.py:571 #: ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "No es posible comunicarse con CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "Request subject \"%(request_subject)s\" does not match the form \"%(subject_base)s\"" msgstr "El asunto solicitado \"%(request_subject)s\" no coincide con la forma \"%(subject_base)s\"" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "no es posible decodificar csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "operaci?n de archivo" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "no es posible obtener el pr?ximo n?mero de serie" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "falla de certutil" From jdennis at redhat.com Mon Mar 1 17:18:03 2010 From: jdennis at redhat.com (John Dennis) Date: Mon, 01 Mar 2010 12:18:03 -0500 Subject: [Freeipa-devel] JSON problems (the woes of binary data) In-Reply-To: <1267220977.9200.17.camel@jgd-dsk> References: <4B883649.3010302@redhat.com> <1267220977.9200.17.camel@jgd-dsk> Message-ID: <4B8BF6CB.3010708@redhat.com> > Yeah, I do wish JSON had a binary literal type. This is obviously a bug > in my JSON-RPC code, but also an issue we need to solve for the UI. > When we send binary to the webUI, what is our intent? I think that > displaying it as base64 encoded text is not generally what the user > wants. I think displaying a link that will allow them to download the > file is generally a better idea. Perhaps the Param should indicate how > it should be handled in the webUI. Asking the question what should the UI be displaying for binary data is a good question to ask. In the specific case of certificates I think displaying it in PEM format is pretty reasonable, a user could cut-n-paste that and have it be useful. I think it would also be good to have a link as you suggest for the user to click on that would perform a download and store the data in a file (probably with a choice of PEM format or DER binary). As for the other binary data we have yet to deal with, but for which we think there might be a a future need, I think we'll just have to deal with that in the UI on a case by case basis depending on what the data is. Would keytabs be one possible example of such a future need for binary data available via the UI? >> The python JSON encoder class does give us the option to hook into the >> encoder and check if the object is a str object and then base64 encode. >> But that doesn't help us at the opposite end. How would we know when >> unmarshaling that a given string is supposed to be base64 decoded back >> into binary data? We could prepend a special string and hope that string >> never gets used by normal text (yuck). Keeping a list of what needs >> base64 decoding is not an option within JSON because at the time of >> decoding we have no information available about the context of the JSON >> objects. > > I think sending it as a dict with a special key, something like: > > {'__base64__': b64encode(my_str)} Yes, that's a good idea and one I hadn't thought of. My understanding of what you're proposing is this: For JSON *only* we pre-scan the object to be JSON encoded and any place we discover a str object we replace that str object in the object containing it with a dict {'__base64__': base64_ecoded_value}. We then send this through the JSON transport. On the JSON receiving end after JSON decodes back into a Python object we scan the object and every place we find a dict with a '__base64__' key we replace that dict with the base64 decoded value of the '__base64__' key. I have started to develop a prototype of this code and it seems to work. The functions modify the data "in place" replacing objects within their containers. I should by the end of the day have enough working to see if this solves the exception generating the backtrace on the Services page. However, even though this would get us over the hump with regards to passing binary data through JSON, which I think we should do I continue to believe we should not be passing certificates and certficate requests as DER binary data. Based on prior responses there seems to be consensus that certificates should be passed as PEM encoded strings. That's something which can be patched later. So my general plan is to get binary data working in JSON, then later patch things so that certs and csr's are PEM encoded. This gives us two good things: the ability to pass binary data in a general way which is probably a worthwhile thing to support in the framework even though we won't be using once certs are passed in PEM format, but may be useful down the road for other items, and then a consistent PEM format for certs. How does this sound? -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Mon Mar 1 19:53:31 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 01 Mar 2010 14:53:31 -0500 Subject: [Freeipa-devel] [PATCH] jderose 049 Consolidate to single WSGI entry point In-Reply-To: <1266949019.29321.175.camel@jgd-dsk> References: <1266949019.29321.175.camel@jgd-dsk> Message-ID: <4B8C1B3B.6010008@redhat.com> Jason Gerard DeRose wrote: > This is part1 of the mod_wsgi transition. It provides a new plugin: > api.Backend.session. This is a WSGI middleware component that will > create the LDAP connection and then route the request to the appropriate > WSGI application (/xml or /json or /ui). > > The end result is that we have a single entry point (/ipa) instead of 3, > and we also use the exact same code path to create and destroy the LDAP > connection (which is obviously good for security). > > All this still is running under mod_python, but my next patch switches > things to mod_wsgi (still have a few issues on that front). Ack. rob From rcritten at redhat.com Mon Mar 1 19:56:45 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 01 Mar 2010 14:56:45 -0500 Subject: [Freeipa-devel] [PATCH] jderose 050 Run ipaserver under mod_wsgi In-Reply-To: <1267046238.1872.152.camel@jgd-dsk> References: <1267046238.1872.152.camel@jgd-dsk> Message-ID: <4B8C1BFD.7040806@redhat.com> Jason Gerard DeRose wrote: > This patch completes the transition to running under mod_wsgi. It > requires my previous "049 Consolidate to single WSGI entry point" patch. > > This is pretty strait forward, but a few things need highlighting: > > 1. mod_wsgi requires an entry point script (you can't give it a Python > package name like we were doing with mod_python). Based on my reading > of the Filesystem Hierarchy Standard, it seems this should be in > share/ipa, so that's what I did. The script is /usr/share/ipa/wsgi.py > I was expecting this to cause SELinux problems, but things seem to work > fine. > > 2. We are running mod_wsgi in daemon mode, which is the preferred way of > deploying it. The mod_wsgi daemon has both multi-process and > multi-threading capabilities. As we haven't actually used threaded code > much in IPA thus far (although lite-server.py is threaded), for now I > have the daemon running 2 processes and 1 thread (aka it's not > threaded). For production I think we probably should run something like > 4 processes and 8 threads per process. This can be a later change (just > requires a change in our ipa.conf Apache config file). > > 3. As ipaserver is now running inside the mod_wsgi daemon, we can > changed from using the Apache "prefork" MPM to using "worker", which is > far superior for static content. I haven't changed this yet, but we > should put this on our TODO. > > I pretty much had this patch all done last Friday, but I've let things > slow-roast for several days to make sure it's stable. I feel confident > that this is a low risk change. All the same, I think we should get > this pushed as soon as possible so we can shake out any remaining > issues. > I'm going to go ahead and ack this if you fix one thing before you push. In ipa.spec.in you need to change: -%{_usr}/share/ipa/wsgi.py +%{_usr}/share/ipa/wsgi.py* I don't think we need the Location entries at the top of ipa.conf setting no handler. It worked ok for me without them, the similar setting in the Directory should take care of things. More testing is probably needed. This doesn't work on my F-11 box, I think primarily because /var/run/httpd/ has the wrong permissions. I'll investigate fixing this up but since F-11 won't be supported for a whole lot longer I'm not going to worry about this too much. I'll fix this in a follow-up patch. rob From rcritten at redhat.com Mon Mar 1 20:54:15 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 01 Mar 2010 15:54:15 -0500 Subject: [Freeipa-devel] [PATCH] Code cleanup: remove unused stuff, take 1. In-Reply-To: <4B8679D6.4080809@redhat.com> References: <4B8679D6.4080809@redhat.com> Message-ID: <4B8C2977.5030602@redhat.com> Pavel Zuna wrote: > Removes most of the deprecated output code from plugins. "take 1" > because there might be more patches like this in the near future. > > Pavel ack, pushed to master From rcritten at redhat.com Mon Mar 1 20:59:36 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 01 Mar 2010 15:59:36 -0500 Subject: [Freeipa-devel] [PATCH] full Spanish translations as of 20100225 In-Reply-To: <4B86A3CE.7030204@redhat.com> References: <4B86A3CE.7030204@redhat.com> Message-ID: <4B8C2AB8.6040204@redhat.com> John Dennis wrote: > ipa.pot has 133 messages. There are 6 po translation files. > bn_IN: 14/133 10.5% 106 po untranslated, 13 missing, 119 > untranslated > es: 133/133 100.0% 0 po untranslated, 0 missing, 0 > untranslated > id: 107/133 80.5% 13 po untranslated, 13 missing, 26 > untranslated > kn: 20/133 15.0% 113 po untranslated, 0 missing, 113 > untranslated > pl: 133/133 100.0% 0 po untranslated, 0 missing, 0 > untranslated > ru: 120/133 90.2% 0 po untranslated, 13 missing, 13 > untranslated > ack, pushed to master From rcritten at redhat.com Mon Mar 1 21:00:57 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 01 Mar 2010 16:00:57 -0500 Subject: [Freeipa-devel] [PATCH] More Kannada translations In-Reply-To: <4B880C81.3070106@redhat.com> References: <4B880C81.3070106@redhat.com> Message-ID: <4B8C2B09.2060406@redhat.com> John Dennis wrote: > More Kannada translations > > Current translation status: > > ipa.pot has 133 messages. There are 6 po translation files. > bn_IN: 14/133 10.5% 106 po untranslated, 13 missing, 119 > untranslated > es: 133/133 100.0% 0 po untranslated, 0 missing, 0 > untranslated > id: 107/133 80.5% 13 po untranslated, 13 missing, 26 > untranslated > kn: 133/133 100.0% 0 po untranslated, 0 missing, 0 > untranslated > pl: 133/133 100.0% 0 po untranslated, 0 missing, 0 > untranslated > ru: 120/133 90.2% 0 po untranslated, 13 missing, 13 > untranslated ack, pushed to master From jdennis at redhat.com Tue Mar 2 00:06:00 2010 From: jdennis at redhat.com (John Dennis) Date: Mon, 01 Mar 2010 19:06:00 -0500 Subject: [Freeipa-devel] [PATCH] Fix JSON binary encode and decode errors Message-ID: <4B8C5668.607@redhat.com> Fix JSON binary encode and decode errors Traverse the objects passed to JSON for encoding and decoding. When binary data is seen during encode replace the binary data with a dict {'__base64__' : base64_encoding_of_binary_value}. On decode if a dict is seen whose single key is '__base64__' replace that dict with the base64 decoded value of the key's value. Thanks to Jason for the suggestion (no pun intended :-) -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-JSON-binary-encode-and-decode-errors.patch Type: text/x-patch Size: 5681 bytes Desc: not available URL: From jdennis at redhat.com Tue Mar 2 01:01:37 2010 From: jdennis at redhat.com (John Dennis) Date: Mon, 01 Mar 2010 20:01:37 -0500 Subject: [Freeipa-devel] [PATCH] update POT Message-ID: <4B8C6371.7090100@redhat.com> This updates the POT file. This can be immediately committed via the .po files require no ACK rule. Explanation: the POT file is auto generated on demand, there is nothing to review. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-update-POT.patch Type: text/x-patch Size: 29034 bytes Desc: not available URL: From jderose at redhat.com Tue Mar 2 04:54:25 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 01 Mar 2010 21:54:25 -0700 Subject: [Freeipa-devel] [PATCH] 051 Fix spec Message-ID: <1267505665.2718.3.camel@jgd-dsk> This has already been pushed to master. This is a follow up to Rob's conditional ack of my 050 patch. -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-jderose-051-Fix-spec.patch Type: text/x-patch Size: 966 bytes Desc: not available URL: From jderose at redhat.com Tue Mar 2 04:54:46 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 01 Mar 2010 21:54:46 -0700 Subject: [Freeipa-devel] [PATCH] jderose 049 Consolidate to single WSGI entry point In-Reply-To: <4B8C1B3B.6010008@redhat.com> References: <1266949019.29321.175.camel@jgd-dsk> <4B8C1B3B.6010008@redhat.com> Message-ID: <1267505686.2718.4.camel@jgd-dsk> On Mon, 2010-03-01 at 14:53 -0500, Rob Crittenden wrote: > Jason Gerard DeRose wrote: > > This is part1 of the mod_wsgi transition. It provides a new plugin: > > api.Backend.session. This is a WSGI middleware component that will > > create the LDAP connection and then route the request to the appropriate > > WSGI application (/xml or /json or /ui). > > > > The end result is that we have a single entry point (/ipa) instead of 3, > > and we also use the exact same code path to create and destroy the LDAP > > connection (which is obviously good for security). > > > > All this still is running under mod_python, but my next patch switches > > things to mod_wsgi (still have a few issues on that front). > > Ack. > > rob pushed to master. thanks for the review. From jderose at redhat.com Tue Mar 2 04:59:19 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 01 Mar 2010 21:59:19 -0700 Subject: [Freeipa-devel] [PATCH] jderose 050 Run ipaserver under mod_wsgi In-Reply-To: <4B8C1BFD.7040806@redhat.com> References: <1267046238.1872.152.camel@jgd-dsk> <4B8C1BFD.7040806@redhat.com> Message-ID: <1267505959.2718.9.camel@jgd-dsk> On Mon, 2010-03-01 at 14:56 -0500, Rob Crittenden wrote: > Jason Gerard DeRose wrote: > > This patch completes the transition to running under mod_wsgi. It > > requires my previous "049 Consolidate to single WSGI entry point" patch. > > > > This is pretty strait forward, but a few things need highlighting: > > > > 1. mod_wsgi requires an entry point script (you can't give it a Python > > package name like we were doing with mod_python). Based on my reading > > of the Filesystem Hierarchy Standard, it seems this should be in > > share/ipa, so that's what I did. The script is /usr/share/ipa/wsgi.py > > I was expecting this to cause SELinux problems, but things seem to work > > fine. > > > > 2. We are running mod_wsgi in daemon mode, which is the preferred way of > > deploying it. The mod_wsgi daemon has both multi-process and > > multi-threading capabilities. As we haven't actually used threaded code > > much in IPA thus far (although lite-server.py is threaded), for now I > > have the daemon running 2 processes and 1 thread (aka it's not > > threaded). For production I think we probably should run something like > > 4 processes and 8 threads per process. This can be a later change (just > > requires a change in our ipa.conf Apache config file). > > > > 3. As ipaserver is now running inside the mod_wsgi daemon, we can > > changed from using the Apache "prefork" MPM to using "worker", which is > > far superior for static content. I haven't changed this yet, but we > > should put this on our TODO. > > > > I pretty much had this patch all done last Friday, but I've let things > > slow-roast for several days to make sure it's stable. I feel confident > > that this is a low risk change. All the same, I think we should get > > this pushed as soon as possible so we can shake out any remaining > > issues. > > > > I'm going to go ahead and ack this if you fix one thing before you push. > > In ipa.spec.in you need to change: > -%{_usr}/share/ipa/wsgi.py > +%{_usr}/share/ipa/wsgi.py* pushed to master, along with my 051 patch making the changes you asked for. > I don't think we need the Location entries at the top of ipa.conf > setting no handler. It worked ok for me without them, the similar > setting in the Directory should take care of things. More testing is > probably needed. In my testing, the Location tag with "Handler none" was the only way I could prevent the WSGI handler from gobbling up these URIs. I think this is because of the order in which Directory and Location are applied. > This doesn't work on my F-11 box, I think primarily because > /var/run/httpd/ has the wrong permissions. I'll investigate fixing this > up but since F-11 won't be supported for a whole lot longer I'm not > going to worry about this too much. I'll fix this in a follow-up patch. > > rob -------------- next part -------------- An HTML attachment was scrubbed... URL: From pzuna at redhat.com Tue Mar 2 09:19:45 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Tue, 02 Mar 2010 10:19:45 +0100 Subject: [Freeipa-devel] [PATCH] Add plugin versioning and dependency checking Message-ID: <4B8CD831.8050000@redhat.com> Since there weren't any comments on my proposal about plugin versioning and dependencies, I decided to make a first implementation, that shows what I had in mind. This patch adds two class variables to plugable.Plugin: VERSION and DEPENDENCIES. VERSION is supposed to be a tuple with 2 ints specifying the plugin major and minor version number. DEPENDENCIES is supposed to be a tuple of tuples. The inner tuples will contain the plugin class name (as a string) and a major version number. The plugable.Registrar class has changed a bit. I decided to remove the 'override' keyword argument. It wasn't used anywhere. Overriding is now automatic based on the plugin class VERSION. Higher version overrides lower. This way, we can have several versions of the same plugin living in IPA directory (not in API!) at the same time. It allows higher versions to easily build on top (extend) older ones. There's also a new exception: PluginMissingDependencyError: Plugin 'service' is missing dependency plugin 'host' (version 1) Plugin dependencies are checked when all plugin have been loaded, that is when API is finalizing. An example of what we can do with this approach: Let's say a customer needs to extend users and groups by storing some additional computed information in the entries. indentity_ex.py: from ipalib.plugins.user import user, user_add from ipalib.plugins.group import group, group_add class user(user): VERSION = (2, 0) DEPENDENCIES = (('group', 2), ) takes_params = user.takes_params + ( # some new params here ) api.register(user) class user_add(user_add): VERSION = (2, 0) def pre_callback( # I don't feel like writing all the args :) dn = super(user_add, self).pre_callback( # and again # do some new stuff here return dn api.register(user_add) # same analogous thing for groups comes here... Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-plugin-versioning-and-dependency-checking.patch Type: application/mbox Size: 4755 bytes Desc: not available URL: From mnagy at redhat.com Tue Mar 2 09:25:30 2010 From: mnagy at redhat.com (Martin Nagy) Date: Tue, 02 Mar 2010 10:25:30 +0100 Subject: [Freeipa-devel] [PATCH] 388 update client command man pages In-Reply-To: <4B8548A7.4050606@redhat.com> References: <4B8548A7.4050606@redhat.com> Message-ID: <1267521930.3293.1.camel@wolverine.englab.brq.redhat.com> On Wed, 2010-02-24 at 10:41 -0500, Rob Crittenden wrote: > Update the client command man pages with recent option additions and > some additional verbiage. > > rob Could you please make the lines shorter than 80 characters? Martin From mnagy at redhat.com Tue Mar 2 09:27:57 2010 From: mnagy at redhat.com (Martin Nagy) Date: Tue, 02 Mar 2010 10:27:57 +0100 Subject: [Freeipa-devel] [PATCH] 389 enable popt macro In-Reply-To: <4B854926.8000707@redhat.com> References: <4B854926.8000707@redhat.com> Message-ID: <1267522077.3293.2.camel@wolverine.englab.brq.redhat.com> On Wed, 2010-02-24 at 10:43 -0500, Rob Crittenden wrote: > Add the POPT_AUTOHELP macro to the options table to provide more verbose > help output. > > rob ACK Martin From rcritten at redhat.com Tue Mar 2 14:10:52 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 09:10:52 -0500 Subject: [Freeipa-devel] [PATCH] 388 update client command man pages In-Reply-To: <1267521930.3293.1.camel@wolverine.englab.brq.redhat.com> References: <4B8548A7.4050606@redhat.com> <1267521930.3293.1.camel@wolverine.englab.brq.redhat.com> Message-ID: <4B8D1C6C.7060501@redhat.com> Martin Nagy wrote: > On Wed, 2010-02-24 at 10:41 -0500, Rob Crittenden wrote: >> Update the client command man pages with recent option additions and >> some additional verbiage. >> >> rob > > Could you please make the lines shorter than 80 characters? > > Martin > It is the editor I use that does this (manedit). Is this really a problem? rob From mnagy at redhat.com Tue Mar 2 14:28:27 2010 From: mnagy at redhat.com (Martin Nagy) Date: Tue, 02 Mar 2010 15:28:27 +0100 Subject: [Freeipa-devel] [PATCH] 388 update client command man pages In-Reply-To: <4B8D1C6C.7060501@redhat.com> References: <4B8548A7.4050606@redhat.com> <1267521930.3293.1.camel@wolverine.englab.brq.redhat.com> <4B8D1C6C.7060501@redhat.com> Message-ID: <1267540107.3735.0.camel@wolverine.englab.brq.redhat.com> On Tue, 2010-03-02 at 09:10 -0500, Rob Crittenden wrote: > Martin Nagy wrote: > > On Wed, 2010-02-24 at 10:41 -0500, Rob Crittenden wrote: > >> Update the client command man pages with recent option additions and > >> some additional verbiage. > >> > >> rob > > > > Could you please make the lines shorter than 80 characters? > > > > Martin > > > > It is the editor I use that does this (manedit). Is this really a problem? > > rob Nah, that's ok. ACK Martin From rcritten at redhat.com Tue Mar 2 15:08:33 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 10:08:33 -0500 Subject: [Freeipa-devel] [PATCH] Add plugin versioning and dependency checking In-Reply-To: <4B8CD831.8050000@redhat.com> References: <4B8CD831.8050000@redhat.com> Message-ID: <4B8D29F1.8070801@redhat.com> Pavel Z?na wrote: > Since there weren't any comments on my proposal about plugin versioning > and dependencies, I decided to make a first implementation, that shows > what I had in mind. Sorry, I had looked at it and never responded. Seeing an implementation does help though :-) > This patch adds two class variables to plugable.Plugin: VERSION and > DEPENDENCIES. VERSION is supposed to be a tuple with 2 ints specifying > the plugin major and minor version number. DEPENDENCIES is supposed to > be a tuple of tuples. The inner tuples will contain the plugin class > name (as a string) and a major version number. > > The plugable.Registrar class has changed a bit. I decided to remove the > 'override' keyword argument. It wasn't used anywhere. Overriding is now > automatic based on the plugin class VERSION. Higher version overrides > lower. This way, we can have several versions of the same plugin living > in IPA directory (not in API!) at the same time. It allows higher > versions to easily build on top (extend) older ones. So to override a plugin you need to have a higher version? What if you want two separate plugins to extend a plugin, there can be only one? For example, you have one extension that adds some Samba attributes to a user and another that adds some Solaris-specific attributes. Not everyone would want both of these but some might, I think this would throw a DuplicateError. rob > There's also a new exception: > PluginMissingDependencyError: Plugin 'service' is missing dependency > plugin 'host' (version 1) > > Plugin dependencies are checked when all plugin have been loaded, that > is when API is finalizing. > > An example of what we can do with this approach: > > Let's say a customer needs to extend users and groups by storing some > additional computed information in the entries. > > indentity_ex.py: > > from ipalib.plugins.user import user, user_add > from ipalib.plugins.group import group, group_add > > class user(user): > VERSION = (2, 0) > DEPENDENCIES = (('group', 2), ) > takes_params = user.takes_params + ( > # some new params here > ) > > api.register(user) > > class user_add(user_add): > VERSION = (2, 0) > def pre_callback( # I don't feel like writing all the args :) > dn = super(user_add, self).pre_callback( # and again > # do some new stuff here > return dn > > api.register(user_add) > > # same analogous thing for groups comes here... > > > Pavel > > > ------------------------------------------------------------------------ > > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-devel From pzuna at redhat.com Tue Mar 2 15:23:28 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Tue, 02 Mar 2010 16:23:28 +0100 Subject: [Freeipa-devel] [PATCH] Add plugin versioning and dependency checking In-Reply-To: <4B8D29F1.8070801@redhat.com> References: <4B8CD831.8050000@redhat.com> <4B8D29F1.8070801@redhat.com> Message-ID: <4B8D2D70.4000500@redhat.com> Rob Crittenden wrote: > Pavel Z?na wrote: >> Since there weren't any comments on my proposal about plugin >> versioning and dependencies, I decided to make a first implementation, >> that shows what I had in mind. > > Sorry, I had looked at it and never responded. Seeing an implementation > does help though :-) > >> This patch adds two class variables to plugable.Plugin: VERSION and >> DEPENDENCIES. VERSION is supposed to be a tuple with 2 ints specifying >> the plugin major and minor version number. DEPENDENCIES is supposed to >> be a tuple of tuples. The inner tuples will contain the plugin class >> name (as a string) and a major version number. >> >> The plugable.Registrar class has changed a bit. I decided to remove >> the 'override' keyword argument. It wasn't used anywhere. Overriding >> is now automatic based on the plugin class VERSION. Higher version >> overrides lower. This way, we can have several versions of the same >> plugin living in IPA directory (not in API!) at the same time. It >> allows higher versions to easily build on top (extend) older ones. > > So to override a plugin you need to have a higher version? What if you > want two separate plugins to extend a plugin, there can be only one? For > example, you have one extension that adds some Samba attributes to a > user and another that adds some Solaris-specific attributes. Not > everyone would want both of these but some might, I think this would > throw a DuplicateError. Overriding only applies to plugins with exactly the same name. If users want to have two different plugins available, they can't have the same name anyway. If they want two plugins in the tree, but only one active at the same time - then I would suggest using the SkipPluginModule exception based on configuration as we do with cert plugins. > rob > Pavel From jdennis at redhat.com Tue Mar 2 22:01:07 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 2 Mar 2010 17:01:07 -0500 Subject: [Freeipa-devel] [PATCH] documentation fix for json_decode_binary Message-ID: <1267567267-20163-1-git-send-email-jdennis@redhat.com> This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- ipaserver/rpcserver.py | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0002-documentation-fix-for-json_decode_binary.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0002-documentation-fix-for-json_decode_binary.patch" diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index 96c4d29..86bdf14 100644 --- a/ipaserver/rpcserver.py +++ b/ipaserver/rpcserver.py @@ -278,8 +278,8 @@ def json_decode_binary(val): binary value with the decoded binary value. Unlike the encoding problem where the input might consist of immutable object, all JSON decoded container are mutable so the conversion could be done in place. However we - don't modifying objects in place has side effects which may be - dangerous. Thus we elect to spend a few more cycles and avoid the + don't modify objects in place because that might have side effects which may + be dangerous. Thus we elect to spend a few more cycles and avoid the possibility of unintended side effects in favor of robustness. ''' --------------1.6.6.1-- From rcritten at redhat.com Tue Mar 2 22:20:58 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 17:20:58 -0500 Subject: [Freeipa-devel] [PATCH] 388 update client command man pages In-Reply-To: <1267540107.3735.0.camel@wolverine.englab.brq.redhat.com> References: <4B8548A7.4050606@redhat.com> <1267521930.3293.1.camel@wolverine.englab.brq.redhat.com> <4B8D1C6C.7060501@redhat.com> <1267540107.3735.0.camel@wolverine.englab.brq.redhat.com> Message-ID: <4B8D8F4A.60200@redhat.com> Martin Nagy wrote: > On Tue, 2010-03-02 at 09:10 -0500, Rob Crittenden wrote: >> Martin Nagy wrote: >>> On Wed, 2010-02-24 at 10:41 -0500, Rob Crittenden wrote: >>>> Update the client command man pages with recent option additions and >>>> some additional verbiage. >>>> >>>> rob >>> Could you please make the lines shorter than 80 characters? >>> >>> Martin >>> >> It is the editor I use that does this (manedit). Is this really a problem? >> >> rob > > Nah, that's ok. > > ACK > > Martin > Great, thanks pushed to master From rcritten at redhat.com Tue Mar 2 22:21:04 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 17:21:04 -0500 Subject: [Freeipa-devel] [PATCH] 389 enable popt macro In-Reply-To: <1267522077.3293.2.camel@wolverine.englab.brq.redhat.com> References: <4B854926.8000707@redhat.com> <1267522077.3293.2.camel@wolverine.englab.brq.redhat.com> Message-ID: <4B8D8F50.6020404@redhat.com> Martin Nagy wrote: > On Wed, 2010-02-24 at 10:43 -0500, Rob Crittenden wrote: >> Add the POPT_AUTOHELP macro to the options table to provide more verbose >> help output. >> >> rob > > ACK > Martin > pushed to master From rcritten at redhat.com Tue Mar 2 22:22:02 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 17:22:02 -0500 Subject: [Freeipa-devel] [PATCH] 391 make dogtag a required and default component In-Reply-To: <4B8579B2.8060806@redhat.com> References: <4B8556D7.3020702@redhat.com> <4B8579B2.8060806@redhat.com> Message-ID: <4B8D8F8A.3000902@redhat.com> John Dennis wrote: > On 02/24/2010 11:41 AM, Rob Crittenden wrote: >> Make the CA a required component and configured by default. >> >> To install IPA without dogtag use the --selfsign option. >> >> The --ca option is now deprecated. A bit of wiki documentation will need >> to be updated once this is pushed to remove references to --ca. >> >> rob > > ACK > pushed to master rob From rcritten at redhat.com Tue Mar 2 22:22:52 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 17:22:52 -0500 Subject: [Freeipa-devel] [PATCH] update POT In-Reply-To: <4B8C6371.7090100@redhat.com> References: <4B8C6371.7090100@redhat.com> Message-ID: <4B8D8FBC.9060709@redhat.com> John Dennis wrote: > This updates the POT file. This can be immediately committed via the .po > files require no ACK rule. Explanation: the POT file is auto generated > on demand, there is nothing to review. > pushed to master From rcritten at redhat.com Tue Mar 2 22:30:55 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 02 Mar 2010 17:30:55 -0500 Subject: [Freeipa-devel] [PATCH] Fix JSON binary encode and decode errors In-Reply-To: <4B8C5668.607@redhat.com> References: <4B8C5668.607@redhat.com> Message-ID: <4B8D919F.4030304@redhat.com> John Dennis wrote: > Fix JSON binary encode and decode errors > > Traverse the objects passed to JSON for encoding and decoding. > When binary data is seen during encode replace the binary > data with a dict {'__base64__' : base64_encoding_of_binary_value}. > > On decode if a dict is seen whose single key is '__base64__' replace > that dict with the base64 decoded value of the key's value. > > Thanks to Jason for the suggestion (no pun intended :-) > > This isn't applying for me. I think the wsgi work that Jason did is causing the merge problem. John, can you rebase this? thanks rob From jdennis at redhat.com Tue Mar 2 23:03:12 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 02 Mar 2010 18:03:12 -0500 Subject: [Freeipa-devel] [PATCH] 0003 Fix JSON binary encode and decode errors (rebase) Message-ID: <4B8D9930.4010800@redhat.com> [Note: same patch as earlier but rebased] Traverse the objects passed to JSON for encoding and decoding. When binary data is seen during encode replace the binary data with a dict {'__base64__' : base64_encoding_of_binary_value}. On decode if a dict is seen whose single key is '__base64__' replace that dict with the base64 decoded value of the key's value. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Fix-JSON-binary-encode-and-decode-errors.patch Type: text/x-patch Size: 6336 bytes Desc: not available URL: From mnagy at redhat.com Wed Mar 3 06:19:34 2010 From: mnagy at redhat.com (Martin Nagy) Date: Wed, 03 Mar 2010 07:19:34 +0100 Subject: [Freeipa-devel] [PATCH] documentation fix for json_decode_binary In-Reply-To: <1267567267-20163-1-git-send-email-jdennis@redhat.com> References: <1267567267-20163-1-git-send-email-jdennis@redhat.com> Message-ID: <1267597174.3735.4.camel@wolverine.englab.brq.redhat.com> NACK, this seems to be a patch for code that isn't even in the repository yet. BTW, how is one supposed to apply this patch? Saving the whole email didn't work for me, I had to hand edit it and git-am still complained. Martin On Tue, 2010-03-02 at 17:01 -0500, John Dennis wrote: > This is a multi-part message in MIME format. > --------------1.6.6.1 > Content-Type: text/plain; charset=UTF-8; format=fixed > Content-Transfer-Encoding: 8bit > > --- > ipaserver/rpcserver.py | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > > --------------1.6.6.1 > Content-Type: text/x-patch; name="0002-documentation-fix-for-json_decode_binary.patch" > Content-Transfer-Encoding: 8bit > Content-Disposition: attachment; filename="0002-documentation-fix-for-json_decode_binary.patch" > > diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py > index 96c4d29..86bdf14 100644 > --- a/ipaserver/rpcserver.py > +++ b/ipaserver/rpcserver.py > @@ -278,8 +278,8 @@ def json_decode_binary(val): > binary value with the decoded binary value. Unlike the encoding problem > where the input might consist of immutable object, all JSON decoded > container are mutable so the conversion could be done in place. However we > - don't modifying objects in place has side effects which may be > - dangerous. Thus we elect to spend a few more cycles and avoid the > + don't modify objects in place because that might have side effects which may > + be dangerous. Thus we elect to spend a few more cycles and avoid the > possibility of unintended side effects in favor of robustness. > ''' > > > --------------1.6.6.1-- From admin at transifex.net Wed Mar 3 11:02:50 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 03 Mar 2010 11:02:50 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team Creation Requested: Polish Message-ID: <20100303110250.15320.54599@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A translation team for 'Polish' has been required to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/teams/ in order to manage the teams of the project. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From pzuna at redhat.com Wed Mar 3 12:32:59 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Wed, 03 Mar 2010 13:32:59 +0100 Subject: [Freeipa-devel] [PATCH] Restore ipaserver/__init__.py Message-ID: <4B8E56FB.2070901@redhat.com> I don't know how it happened, but the contents (except for the licence and module docstring) of ipaserver/__init__.py are gone when I do a new `git clone`. I didn't investigate deeply into the issue, but mad this patch from a backup, so that David can continue his work. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Restore-ipaserver-__init__.py.patch Type: application/mbox Size: 6415 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 3 13:48:21 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 03 Mar 2010 08:48:21 -0500 Subject: [Freeipa-devel] [PATCH] Restore ipaserver/__init__.py In-Reply-To: <4B8E56FB.2070901@redhat.com> References: <4B8E56FB.2070901@redhat.com> Message-ID: <4B8E68A5.9060303@redhat.com> Pavel Zuna wrote: > I don't know how it happened, but the contents (except for the licence > and module docstring) of ipaserver/__init__.py are gone when I do a new > `git clone`. > > I didn't investigate deeply into the issue, but mad this patch from a > backup, so that David can continue his work. > > Pavel It was removed in patch "jderose 050 Run ipaserver under mod_wsgi". How is this preventing David from working? rob From pzuna at redhat.com Wed Mar 3 14:05:47 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Wed, 03 Mar 2010 15:05:47 +0100 Subject: [Freeipa-devel] [PATCH] Restore ipaserver/__init__.py In-Reply-To: <4B8E68A5.9060303@redhat.com> References: <4B8E56FB.2070901@redhat.com> <4B8E68A5.9060303@redhat.com> Message-ID: <4B8E6CBB.30404@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> I don't know how it happened, but the contents (except for the licence >> and module docstring) of ipaserver/__init__.py are gone when I do a >> new `git clone`. >> >> I didn't investigate deeply into the issue, but mad this patch from a >> backup, so that David can continue his work. >> >> Pavel > > It was removed in patch "jderose 050 Run ipaserver under mod_wsgi". How > is this preventing David from working? > > rob To be honest, I don't really know. There were some strange things going on with his installation I guess. Anyway, just ignore this patch. Pavel From pzuna at redhat.com Wed Mar 3 14:18:43 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Wed, 03 Mar 2010 15:18:43 +0100 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. Message-ID: <4B8E6FC3.5050108@redhat.com> We talked about this on yesterdays quick server call. Here's what the messages look like: # ipa user-show idontexist ipa: ERROR: idontexist: user not found # ipa group-show idontexist ipa: ERROR: idontexist: group not found # ipa automountmap-add idontexist somemap ipa: ERROR: idontexist: automount location not found All subclasses of LDAPObject can override these of course. And no, it's not hardcoded for 'idontexist'. :) Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Provide-more-detailed-NotFound-error-messages-from-b.patch Type: application/mbox Size: 4949 bytes Desc: not available URL: From admin at transifex.net Wed Mar 3 14:23:36 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 03 Mar 2010 14:23:36 -0000 Subject: [Freeipa-devel] [www.transifex.net] New Team Added: Polish Message-ID: <20100303142336.17719.78759@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A new translation team called 'Polish' has been added to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/pl/ in order to see this new team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From jdennis at redhat.com Wed Mar 3 15:03:38 2010 From: jdennis at redhat.com (John Dennis) Date: Wed, 03 Mar 2010 10:03:38 -0500 Subject: [Freeipa-devel] [PATCH] documentation fix for json_decode_binary In-Reply-To: <1267597174.3735.4.camel@wolverine.englab.brq.redhat.com> References: <1267567267-20163-1-git-send-email-jdennis@redhat.com> <1267597174.3735.4.camel@wolverine.englab.brq.redhat.com> Message-ID: <4B8E7A4A.6070501@redhat.com> On 03/03/2010 01:19 AM, Martin Nagy wrote: > NACK, > this seems to be a patch for code that isn't even in the repository yet. > BTW, how is one supposed to apply this patch? Saving the whole email > didn't work for me, I had to hand edit it and git-am still complained. Right, this was superseded by "0003 Fix JSON binary encode and decode errors (rebase)". The patch didn't apply because the original "Fix JSON binary encode and decode errors" patch didn't apply because of a merge conflict. Patches have to be applied in order and when one gets skipped either because of review delay or merge conflict it can create problems. FWIW from this point forward all my patch submissions will be numbered. The numbering will be done via the --start-number argument to git format-patch combined with the -n argument to add the patch number to the subject-prefix. Thus for example my patch number 3 will show up with a subject which looks like this: [PATCH 3/3] xxx xxx xxx This is standard git notation. The first number specifies the beginning patch number in the sequence. The second number specifies the last patch number in the sequence. When there is only one patch in the email sequence both numbers are the same. This will always be the case for us because we don't generate multiple patches in a single email (at least not yet, however this is something the kernel team and others do) So lets say 3 is my next patch number the command to generate the patch email would look like this: git format-patch -n -start-number 3 -1 FWIW, I have a script which automates this, it maintains the sequence number in a file in the same directory which all my patches are written to. It's also capable of emailing the patch. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From pzuna at redhat.com Wed Mar 3 15:11:29 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Wed, 03 Mar 2010 16:11:29 +0100 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. In-Reply-To: <4B8E6FC3.5050108@redhat.com> References: <4B8E6FC3.5050108@redhat.com> Message-ID: <4B8E7C21.5080409@redhat.com> Pavel Zuna wrote: > We talked about this on yesterdays quick server call. > > Here's what the messages look like: > > # ipa user-show idontexist > ipa: ERROR: idontexist: user not found > > # ipa group-show idontexist > ipa: ERROR: idontexist: group not found > > # ipa automountmap-add idontexist somemap > ipa: ERROR: idontexist: automount location not found > > All subclasses of LDAPObject can override these of course. And no, it's > not hardcoded for 'idontexist'. :) > > Pavel Oups, accidentally left some debugging output in there, sorry. :) New patch attached. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Provide-more-detailed-NotFound-error-messages-from-b.patch Type: application/mbox Size: 4911 bytes Desc: not available URL: From admin at transifex.net Wed Mar 3 16:11:52 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 03 Mar 2010 16:11:52 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team User Joining Requested: Polish Message-ID: <20100303161152.18730.28785@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The user 'zen' has asked to join the 'Polish' translation team of the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/pl/ in order to manage this team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Wed Mar 3 16:12:57 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 03 Mar 2010 16:12:57 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team User Joining Requested: Polish Message-ID: <20100303161257.18183.32996@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The user 'zen' has asked to join the 'Polish' translation team of the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/pl/ in order to manage this team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Wed Mar 3 17:25:08 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 03 Mar 2010 17:25:08 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team User Joining Approved: Polish Message-ID: <20100303172508.19631.59770@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The user 'zen' has been approved as a member of the 'Polish' translation team of the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/pl/ in order to see this team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From davido at redhat.com Thu Mar 4 00:51:44 2010 From: davido at redhat.com (David O'Brien) Date: Thu, 04 Mar 2010 10:51:44 +1000 Subject: [Freeipa-devel] [PATCH] Restore ipaserver/__init__.py In-Reply-To: <4B8E6CBB.30404@redhat.com> References: <4B8E56FB.2070901@redhat.com> <4B8E68A5.9060303@redhat.com> <4B8E6CBB.30404@redhat.com> Message-ID: <4B8F0420.4060207@redhat.com> Pavel Zuna wrote: > Rob Crittenden wrote: >> Pavel Zuna wrote: >>> I don't know how it happened, but the contents (except for the >>> licence and module docstring) of ipaserver/__init__.py are gone when >>> I do a new `git clone`. >>> >>> I didn't investigate deeply into the issue, but mad this patch from a >>> backup, so that David can continue his work. >>> >>> Pavel >> >> It was removed in patch "jderose 050 Run ipaserver under mod_wsgi". >> How is this preventing David from working? >> >> rob > To be honest, I don't really know. There were some strange things going > on with his installation I guess. Anyway, just ignore this patch. > > Pavel > Before we replaced the __init__.py file I was getting errors like this: (taken from irc log) "ipa: ERROR: cannot connect to u'https://': Internal Server Error I ran ipa user-find and also ipa netgroup-show and both returned the same error mnagy suggested check apache logs The latest message is something about __init__.pyc contains no 'xmlrpc' We replaced the .py file and the latest status was the above error no longer occurred but I still get ipa: ERROR: an internal error has occurred (http://pastebin.test.redhat.com/20693) -- David O'Brien Red Hat Asia Pacific Pty Ltd He who asks is a fool for five minutes, but he who does not ask remains a fool forever." ~ Chinese proverb From davido at redhat.com Thu Mar 4 01:17:41 2010 From: davido at redhat.com (David O'Brien) Date: Thu, 04 Mar 2010 11:17:41 +1000 Subject: [Freeipa-devel] [PATCH] Make the DNS forwarders interactive input less confusing In-Reply-To: <1265661103.5345.10.camel@wolverine.englab.brq.redhat.com> References: <1265661103.5345.10.camel@wolverine.englab.brq.redhat.com> Message-ID: <4B8F0A35.5070500@redhat.com> Martin Nagy wrote: > Here's the simple patch for #558984. > > Specifically, with this patch, ipa-server-install/ipa-dns-install will > ask you this: > > Do you wish to configure DNS forwarders? > > If you say yes, you will also see: > > Please enter the IP addresses of DNS forwarders that you want to use. > After you are done, enter a blank line to stop. > > And the rest is the same, except it doesn't say "(empty to stop)" at the > end of the prompt as it used to. > > David, Jenny, do you think this is good enough? I can change it easily > if there are any objections/ideas. > > Patch attached. > Martin Martin, sorry for taking so long to reply, but my IPA time is pretty limited atm If it's not too late for suggestions: 1. s/wish/want 2. How about a default reply to Do you want to configure DNS forwarders? [Y,n] 3. We usually don't say please :-) "Enter the IP address of the DNS forwarder to use, or press Enter to finish." The reason I modified the last entry was because a) it sounds like each forwarder could have multiple IP addresses (but not what we're looking for here, right?), and b) it wasn't clear how to enter the IP addresses. i.e., comma- or space-separated list? Press Enter after each one? Now, it's in the singular, so users should only enter one IP and then press Enter, and get the same question again. How does this sound? -- David O'Brien Red Hat Asia Pacific Pty Ltd He who asks is a fool for five minutes, but he who does not ask remains a fool forever." ~ Chinese proverb From pzuna at redhat.com Thu Mar 4 15:15:19 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Thu, 04 Mar 2010 16:15:19 +0100 Subject: [Freeipa-devel] [PATCH] Add interface for baseldap plugins to register additional callbacks. Message-ID: <4B8FCE87.7080901@redhat.com> This is somewhat of a tech-preview patch. It works, but the whole concept might need some more work/thinking done. It adds another way to extend plugins without resorting to the versioning system. Until now, every baseldap command had two callbacks. The pre-callback called before data was passed to python-ldap and the post-callback called after. This patch introduces class methods, that enable the registration of new pre/post callbacks. It supports top level functions as well, so you don't have to touch the original class at all. It works likes this: from ipalib.plugins.user import user_show def test_callback(inst, ldap, dn, attrs_list, *keys, **options): inst.log.info('hello callback world!') attrs_list = ['uid'] # only retrieve the user name return dn user_show.register_pre_callback(test_callback) The original callbacks defined in the class are always called first. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-interface-for-baseldap-plugins-to-register-addit.patch Type: application/mbox Size: 11800 bytes Desc: not available URL: From rcritten at redhat.com Thu Mar 4 16:00:28 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 11:00:28 -0500 Subject: [Freeipa-devel] [PATCH] 393 don't create ipa_error.log Message-ID: <4B8FD91C.6090906@redhat.com> The log file /var/log/ipa_error.log was used by TurboGears which we have log deprecated. Don't create this file in the rpm spec file. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-393-log.patch Type: application/mbox Size: 1149 bytes Desc: not available URL: From jdennis at redhat.com Thu Mar 4 16:39:16 2010 From: jdennis at redhat.com (John Dennis) Date: Thu, 04 Mar 2010 11:39:16 -0500 Subject: [Freeipa-devel] [PATCH] Add interface for baseldap plugins to register additional callbacks. In-Reply-To: <4B8FCE87.7080901@redhat.com> References: <4B8FCE87.7080901@redhat.com> Message-ID: <4B8FE234.4080408@redhat.com> On 03/04/2010 10:15 AM, Pavel Z?na wrote: > This is somewhat of a tech-preview patch. It works, but the whole > concept might need some more work/thinking done. > > It adds another way to extend plugins without resorting to the > versioning system. > > Until now, every baseldap command had two callbacks. The pre-callback > called before data was passed to python-ldap and the post-callback > called after. > > This patch introduces class methods, that enable the registration of new > pre/post callbacks. It supports top level functions as well, so you > don't have to touch the original class at all. > > It works likes this: > > from ipalib.plugins.user import user_show > > def test_callback(inst, ldap, dn, attrs_list, *keys, **options): > inst.log.info('hello callback world!') > attrs_list = ['uid'] # only retrieve the user name > return dn > > user_show.register_pre_callback(test_callback) > > The original callbacks defined in the class are always called first. I don't see any problem with this approach, plus it seems advantageous to have a list of callbacks as opposed to a single callback. FWIW this is how some of the frameworks I'm familiar with (e.g. GTK2) work. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Thu Mar 4 16:56:13 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 11:56:13 -0500 Subject: [Freeipa-devel] [PATCH] Add interface for baseldap plugins to register additional callbacks. In-Reply-To: <4B8FCE87.7080901@redhat.com> References: <4B8FCE87.7080901@redhat.com> Message-ID: <4B8FE62D.6040101@redhat.com> Pavel Z?na wrote: > This is somewhat of a tech-preview patch. It works, but the whole > concept might need some more work/thinking done. > > It adds another way to extend plugins without resorting to the > versioning system. > > Until now, every baseldap command had two callbacks. The pre-callback > called before data was passed to python-ldap and the post-callback > called after. > > This patch introduces class methods, that enable the registration of new > pre/post callbacks. It supports top level functions as well, so you > don't have to touch the original class at all. > > It works likes this: > > from ipalib.plugins.user import user_show > > def test_callback(inst, ldap, dn, attrs_list, *keys, **options): > inst.log.info('hello callback world!') > attrs_list = ['uid'] # only retrieve the user name > return dn > > user_show.register_pre_callback(test_callback) > > The original callbacks defined in the class are always called first. > > Pavel I think I'd like another registration argument, sort of a hint on where you'd like this plugin registered: first or last (defaulting to last). We wouldn't necessarily guarantee where the plugin would get registered but we could easily handle prepending or appending the new registration. Not sure how complicated we want this to be but we could also add a dependency system, so that if some other callback is registered, then this one comes first (or registration fails), etc. rob From rcritten at redhat.com Thu Mar 4 19:53:22 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 14:53:22 -0500 Subject: [Freeipa-devel] [PATCH] Rework contributors list from Simo's input In-Reply-To: <4B85A1B2.90903@redhat.com> References: <4B85A1B2.90903@redhat.com> Message-ID: <4B900FB2.6020400@redhat.com> John Dennis wrote: > O.K., let's try this one more time. The list has be modified according > to Simo's suggestions. > pushed to master From rcritten at redhat.com Thu Mar 4 19:53:29 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 14:53:29 -0500 Subject: [Freeipa-devel] [PATCH] Install Contributors.txt In-Reply-To: <4B857985.7090402@redhat.com> References: <4B857985.7090402@redhat.com> Message-ID: <4B900FB9.9000707@redhat.com> John Dennis wrote: > > > pushed to master From pzuna at redhat.com Thu Mar 4 19:56:03 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Thu, 04 Mar 2010 20:56:03 +0100 Subject: [Freeipa-devel] [PATCH] Add interface for baseldap plugins to register additional callbacks. In-Reply-To: <4B8FE62D.6040101@redhat.com> References: <4B8FCE87.7080901@redhat.com> <4B8FE62D.6040101@redhat.com> Message-ID: <4B901053.7050203@redhat.com> Rob Crittenden wrote: > Pavel Z?na wrote: >> This is somewhat of a tech-preview patch. It works, but the whole >> concept might need some more work/thinking done. >> >> It adds another way to extend plugins without resorting to the >> versioning system. >> >> Until now, every baseldap command had two callbacks. The pre-callback >> called before data was passed to python-ldap and the post-callback >> called after. >> >> This patch introduces class methods, that enable the registration of >> new pre/post callbacks. It supports top level functions as well, so >> you don't have to touch the original class at all. >> >> It works likes this: >> >> from ipalib.plugins.user import user_show >> >> def test_callback(inst, ldap, dn, attrs_list, *keys, **options): >> inst.log.info('hello callback world!') >> attrs_list = ['uid'] # only retrieve the user name >> return dn >> >> user_show.register_pre_callback(test_callback) >> >> The original callbacks defined in the class are always called first. >> >> Pavel > > I think I'd like another registration argument, sort of a hint on where > you'd like this plugin registered: first or last (defaulting to last). > We wouldn't necessarily guarantee where the plugin would get registered > but we could easily handle prepending or appending the new registration. The argument is already there, but as you said, it doesn't guarantee a specific order. The "in-class" callback is added when the plugin instance is created and is inserted at the beginning of the list. More callbacks could be theoretically added later before this one, but that probably won't happen. > Not sure how complicated we want this to be but we could also add a > dependency system, so that if some other callback is registered, then > this one comes first (or registration fails), etc. A priority system might be better and easier to implement in this case. I'm also thinking of making the callback signature common for all commands (even though they have different "needs") and adding a context variable callbacks could use to pass data to each other. > rob By the way, the approach with class methods and class attributes I'm using is 100% compatible with the versioning system I proposed before. You can do this for example: class user_show(...): VERSION = (1, 0) ... user_show.register_pre_callback(some_callback) user.show_register_pre_callback(some_other_callback) class user_show(user_show): VERSION = (1, 1) ... And the new user_show class will have all the callbacks for the previous version. Isn't that cool? Man, I love python. It's the hackers holy grail. :D Pavel From rcritten at redhat.com Thu Mar 4 20:08:07 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 15:08:07 -0500 Subject: [Freeipa-devel] [PATCH] 0003 Fix JSON binary encode and decode errors (rebase) In-Reply-To: <4B8D9930.4010800@redhat.com> References: <4B8D9930.4010800@redhat.com> Message-ID: <4B901327.8070900@redhat.com> John Dennis wrote: > [Note: same patch as earlier but rebased] > > Traverse the objects passed to JSON for encoding and decoding. > When binary data is seen during encode replace the binary > data with a dict {'__base64__' : base64_encoding_of_binary_value}. > > On decode if a dict is seen whose single key is '__base64__' replace > that dict with the base64 decoded value of the key's value. This works in that the UI no longer crashes but the certificate is show thusly in the UI: Certificate [object Object] I know we talked about moving to storing certs as PEM which should fix this problem at some point but is this an acceptable interim solution? Or do we want to just leave base64-encoded objects encoded? rob From jdennis at redhat.com Thu Mar 4 20:19:06 2010 From: jdennis at redhat.com (John Dennis) Date: Thu, 04 Mar 2010 15:19:06 -0500 Subject: [Freeipa-devel] [PATCH] 0003 Fix JSON binary encode and decode errors (rebase) In-Reply-To: <4B901327.8070900@redhat.com> References: <4B8D9930.4010800@redhat.com> <4B901327.8070900@redhat.com> Message-ID: <4B9015BA.5010401@redhat.com> On 03/04/2010 03:08 PM, Rob Crittenden wrote: > John Dennis wrote: >> [Note: same patch as earlier but rebased] >> >> Traverse the objects passed to JSON for encoding and decoding. >> When binary data is seen during encode replace the binary >> data with a dict {'__base64__' : base64_encoding_of_binary_value}. >> >> On decode if a dict is seen whose single key is '__base64__' replace >> that dict with the base64 decoded value of the key's value. > > This works in that the UI no longer crashes but the certificate is show > thusly in the UI: > > Certificate [object Object] > > I know we talked about moving to storing certs as PEM which should fix > this problem at some point but is this an acceptable interim solution? > Or do we want to just leave base64-encoded objects encoded? > > rob The patch was to fix the JSON transport traceback. It wasn't meant to address how binary data was rendered in the UI. You're right this needs to be addressed (but not by this patch). You can add this to my list of tasks. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Thu Mar 4 20:30:43 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 15:30:43 -0500 Subject: [Freeipa-devel] [PATCH] 0003 Fix JSON binary encode and decode errors (rebase) In-Reply-To: <4B9015BA.5010401@redhat.com> References: <4B8D9930.4010800@redhat.com> <4B901327.8070900@redhat.com> <4B9015BA.5010401@redhat.com> Message-ID: <4B901873.3010305@redhat.com> John Dennis wrote: > On 03/04/2010 03:08 PM, Rob Crittenden wrote: >> John Dennis wrote: >>> [Note: same patch as earlier but rebased] >>> >>> Traverse the objects passed to JSON for encoding and decoding. >>> When binary data is seen during encode replace the binary >>> data with a dict {'__base64__' : base64_encoding_of_binary_value}. >>> >>> On decode if a dict is seen whose single key is '__base64__' replace >>> that dict with the base64 decoded value of the key's value. >> >> This works in that the UI no longer crashes but the certificate is show >> thusly in the UI: >> >> Certificate [object Object] >> >> I know we talked about moving to storing certs as PEM which should fix >> this problem at some point but is this an acceptable interim solution? >> Or do we want to just leave base64-encoded objects encoded? >> >> rob > > The patch was to fix the JSON transport traceback. It wasn't meant to > address how binary data was rendered in the UI. You're right this needs > to be addressed (but not by this patch). > > You can add this to my list of tasks. > Works for me. This definitely is a step forward. ack, pushed to master From rcritten at redhat.com Thu Mar 4 21:25:45 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Thu, 04 Mar 2010 16:25:45 -0500 Subject: [Freeipa-devel] [PATCH] 394 Catch empty updates Message-ID: <4B902559.2080107@redhat.com> Currently if you pass in an empty update on the cli it won't throw an error and can be a bit confusing. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-394-update.patch Type: application/mbox Size: 2071 bytes Desc: not available URL: From jdennis at redhat.com Thu Mar 4 23:59:51 2010 From: jdennis at redhat.com (John Dennis) Date: Thu, 04 Mar 2010 18:59:51 -0500 Subject: [Freeipa-devel] [PATCH 4/4] fix bug 570392, command help traceback on Gettext Message-ID: <4B904977.802@redhat.com> This fixes bz #570392 As a consequence of using doc=_('some message') the _() method was returning a Gettext instance, thus when optparse was handed the help text it received a Gettext instance instead of a basestring. optparse tried to operate on the Gettext instance as if it were a basestring and since it wasn't threw an exception. The fix is to promote (e.g. cast) the option.doc to unicode. If the option.doc was a str it becomes unicode, if it was unicode nothing happens, if it was Gettext (or any other object implementing the __unicode__() method) object is converted to unicode via the objects rules. The patch appears to be trivial but figuring the exact general fix and why wasn't :-) By the way, while debugging this I discovered strings which were not localized, sometimes option.doc would be a str and sometimes a Gettext object. In a subsequent patch I'll fix all those unlocalized doc strings, but I don't want to bury this fix along with a load of string fixes. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-fix-bug-570392-command-help-traceback.patch Type: text/x-patch Size: 1707 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 15:03:56 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 10:03:56 -0500 Subject: [Freeipa-devel] [PATCH 4/4] fix bug 570392, command help traceback on Gettext In-Reply-To: <4B904977.802@redhat.com> References: <4B904977.802@redhat.com> Message-ID: <4B911D5C.30902@redhat.com> John Dennis wrote: > This fixes bz #570392 > > As a consequence of using doc=_('some message') the _() > method was returning a Gettext instance, thus when optparse > was handed the help text it received a Gettext instance instead > of a basestring. optparse tried to operate on the Gettext instance > as if it were a basestring and since it wasn't threw an exception. > The fix is to promote (e.g. cast) the option.doc to unicode. > If the option.doc was a str it becomes unicode, if it was unicode > nothing happens, if it was Gettext (or any other object implementing > the __unicode__() method) object is converted to unicode via the > objects rules. > > The patch appears to be trivial but figuring the exact general fix and > why wasn't :-) > > By the way, while debugging this I discovered strings which were not > localized, sometimes option.doc would be a str and sometimes a Gettext > object. In a subsequent patch I'll fix all those unlocalized doc > strings, but I don't want to bury this fix along with a load of > string fixes. ack, fixes it for me. pushed to master From rcritten at redhat.com Fri Mar 5 18:41:06 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 13:41:06 -0500 Subject: [Freeipa-devel] [PATCH] 395 don't crash on blank min/maxlife in pwpolicy Message-ID: <4B915042.6050906@redhat.com> Don't calculate min/max lifetime if None is passed in. None is passed if the option is set with --minlife=''. This is a valid use case to delete a non-required attribute. In this case we simply don't do the math on None and things work as expected. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-395-policy.patch Type: application/mbox Size: 1273 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 18:45:06 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 13:45:06 -0500 Subject: [Freeipa-devel] [PATCH] 396 with verbose print XML-RPC output Message-ID: <4B915132.9060804@redhat.com> Connect the -v flag in the ipa command to including the XML-RPC conversation in the output: % ipa -v user-show admin ipa: INFO: Created connection context.xmlclient ipa: INFO: user_show(u'admin', all=False, raw=False) ipa: INFO: Forwarding 'user_show' to server u'http://localhost:8888/ipa/xml' send: u'POST /ipa/xml HTTP/1.0\r\nHost: localhost:8888\r\nUser-Agent: xmlrpclib.py/1.0.1 (by www.pythonware.com)\r\nContent-Type: text/xml\r\nContent-Length: 370\r\n\r\n' send: "\n\nuser_show\n\n\nadmin\n\n\n\n\nraw\n0\n\n\nall\n0\n\n\n\n\n\n" reply: 'HTTP/1.0 200 OK\r\n' header: Server: PasteWSGIServer/0.5 Python/2.6 header: Date: Fri, 05 Mar 2010 18:44:36 GMT header: Content-Type: text/xml; charset=utf-8 header: Connection: close body: "\n\n\n\n\n\nresult\n\n\ndn\nuid=admin,cn=users,cn=accounts,dc=greyoak,dc=com\n\n\nmemberof_group\n\nadmins\n\n\n\nuid\n\nadmin\n\n\n\nloginshell\n\n/bin/bash\n\n\n\nsn\n\nAdministrator\n\n\n\nhomedirectory\n\n/home/admin\n\n\n\n\n\nvalue\nad min\n\n\nsummary" body: '\n\n\n\n\n\n' ipa: INFO: Destroyed connection context.xmlclient User login: admin Last name: Administrator Home directory: /home/admin Login shell: /bin/bash Groups: admins -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-396-verbose.patch Type: application/mbox Size: 1687 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 18:47:13 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 13:47:13 -0500 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod Message-ID: <4B9151B1.7050502@redhat.com> Raise an error if no modifications were performed in an update. This will alert the user that nothing was done and is handy when used with --attr=''. This can be used to delete a non-required attribute but can be set to any valid attribute, present or not. We should alert the user if they attempt to delete a non-existant value. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-397-mod.patch Type: application/mbox Size: 1191 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 19:17:57 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 14:17:57 -0500 Subject: [Freeipa-devel] [PATCH] 398 use cli_name, not name, on Required errors Message-ID: <4B9158E5.206@redhat.com> When raising an error about a required attribute, use cli_name not name. name is an LDAP attribute and may not be easily identifiable (e.g. sn). rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-398-name.patch Type: application/mbox Size: 849 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 21:12:10 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 16:12:10 -0500 Subject: [Freeipa-devel] [PATCH] 399 Include params in Method.output_params Message-ID: <4B9173AA.2000602@redhat.com> Method overrides the Command get_output_params() method and only returns the object params, not anything defined within the method itself. Return those as well so they are displayed in output. Some care needs to be taken to avoid returning duplicate values. In the case of duplicates the value in obj.params wins. I tested this with the pwpolicy plugin which is a Method and defines its own takes_options. I need this to display the priority to the user. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-399-output.patch Type: application/mbox Size: 1646 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 21:15:48 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 16:15:48 -0500 Subject: [Freeipa-devel] [PATCH] 400 fix pwpolicy plugin Message-ID: <4B917484.3050000@redhat.com> This patch relies on patch #399 Fix a number of bugs in the pwpolicy plugin This fixes: - Consistent usage of priority vs cospriority in options - Fixes bug introduced with recent patch where global policy couldn't be updated - Doesn't allow cospriority to be removed for groups (#570536) - returns the priority with group policy so it can be displayed - Properly unicode encode group names for display rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-400-policy.patch Type: application/mbox Size: 4431 bytes Desc: not available URL: From jdennis at redhat.com Fri Mar 5 21:21:05 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 05 Mar 2010 16:21:05 -0500 Subject: [Freeipa-devel] [PATCH 5/5] localize doc strings Message-ID: <4B9175C1.8050604@redhat.com> A number of doc strings were not localized, wrap them in _(). Some messages were not localized, wrap them in _() Fix a couple of failing tests: The method name in RPC should not be unicode. The doc attribute must use the .msg attribute for comparison. Also clean up imports of _() The import should come from ipalib or ipalib.text, not ugettext from request. Pavel: You'll need to make a fix to plugins/migration.py, look for the FIXME comment. What you're doing with the doc string won't work with our localization framework. I implemented a workaround for the time being. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-localize-doc-strings.patch Type: text/x-patch Size: 18597 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 5 21:58:46 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 05 Mar 2010 16:58:46 -0500 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. In-Reply-To: <4B8E7C21.5080409@redhat.com> References: <4B8E6FC3.5050108@redhat.com> <4B8E7C21.5080409@redhat.com> Message-ID: <4B917E96.5020305@redhat.com> Pavel Zuna wrote: > Pavel Zuna wrote: >> We talked about this on yesterdays quick server call. >> >> Here's what the messages look like: >> >> # ipa user-show idontexist >> ipa: ERROR: idontexist: user not found >> >> # ipa group-show idontexist >> ipa: ERROR: idontexist: group not found >> >> # ipa automountmap-add idontexist somemap >> ipa: ERROR: idontexist: automount location not found >> >> All subclasses of LDAPObject can override these of course. And no, >> it's not hardcoded for 'idontexist'. :) >> >> Pavel > Oups, accidentally left some debugging output in there, sorry. :) New > patch attached. > > Pavel I don't think the try/except in LDAPUpdate around ldap.get_entry() after the record has been updated is quite right. I guess it is probably a good idea to catch it but if it is not found it means that the entry was deleted after successfully updating it but before we could pull it again to display it. To be honest, I'm not sure >what< we should do here, but I'm not sure NotFound is the right thing :-) This seems like a mid-air collision. I wonder if we should add a special exception for this. Not sure what the user would do with it but we should warn them at least. rob From admin at transifex.net Sat Mar 6 03:56:03 2010 From: admin at transifex.net (admin at transifex.net) Date: Sat, 06 Mar 2010 03:56:03 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team Creation Requested: Chinese (China) Message-ID: <20100306035603.30979.79718@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A translation team for 'Chinese (China)' has been required to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/teams/ in order to manage the teams of the project. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From mnagy at redhat.com Sun Mar 7 00:30:17 2010 From: mnagy at redhat.com (Martin Nagy) Date: Sun, 07 Mar 2010 01:30:17 +0100 Subject: [Freeipa-devel] [PATCH] 393 don't create ipa_error.log In-Reply-To: <4B8FD91C.6090906@redhat.com> References: <4B8FD91C.6090906@redhat.com> Message-ID: <4B92F399.8000906@redhat.com> On 03/04/2010 05:00 PM, Rob Crittenden wrote: > The log file /var/log/ipa_error.log was used by TurboGears which we have > log deprecated. Don't create this file in the rpm spec file. > > rob Ack. Martin From mnagy at redhat.com Sun Mar 7 11:06:42 2010 From: mnagy at redhat.com (Martin Nagy) Date: Sun, 07 Mar 2010 12:06:42 +0100 Subject: [Freeipa-devel] [PATCH] 394 Catch empty updates In-Reply-To: <4B902559.2080107@redhat.com> References: <4B902559.2080107@redhat.com> Message-ID: <4B9388C2.5010700@redhat.com> On 03/04/2010 10:25 PM, Rob Crittenden wrote: > Currently if you pass in an empty update on the cli it won't throw an > error and can be a bit confusing. > > rob I think the change in pwpolicy.py won't preserve the original behaviour: + if 'group' in options: + group_cn = options['group'] + del options['group'] + else: group_cn = _global + + if not 'group' in options: ... else: ... Notice that at the second if, 'group' will never be in options no matter what. Martin From mnagy at redhat.com Sun Mar 7 11:39:31 2010 From: mnagy at redhat.com (Martin Nagy) Date: Sun, 07 Mar 2010 12:39:31 +0100 Subject: [Freeipa-devel] [PATCH] 396 with verbose print XML-RPC output In-Reply-To: <4B915132.9060804@redhat.com> References: <4B915132.9060804@redhat.com> Message-ID: <4B939073.1030108@redhat.com> On 03/05/2010 07:45 PM, Rob Crittenden wrote: > Connect the -v flag in the ipa command to including the XML-RPC > conversation in the output: > > % ipa -v user-show admin [snip] Rob, do you think we could use something like -vv for this? The XML-RPC conversation seems to be a little bit too verbose. Martin From mnagy at redhat.com Sun Mar 7 11:51:02 2010 From: mnagy at redhat.com (Martin Nagy) Date: Sun, 07 Mar 2010 12:51:02 +0100 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod In-Reply-To: <4B9151B1.7050502@redhat.com> References: <4B9151B1.7050502@redhat.com> Message-ID: <4B939326.8050303@redhat.com> On 03/05/2010 07:47 PM, Rob Crittenden wrote: > Raise an error if no modifications were performed in an update. > > This will alert the user that nothing was done and is handy when used > with --attr=''. This can be used to delete a non-required attribute but > can be set to any valid attribute, present or not. We should alert the > user if they attempt to delete a non-existant value. > > rob Few questions: How will the user see this error? I'm not sure this should be presented as an error, but more like a notification maybe. Also, I'm not 100% sure how we handle exceptions like this on the server side, but I'm guessing that this will not show up in the server logs as an exception? Martin From mnagy at redhat.com Mon Mar 8 03:21:40 2010 From: mnagy at redhat.com (Martin Nagy) Date: Mon, 08 Mar 2010 04:21:40 +0100 Subject: [Freeipa-devel] [PATCH] 395 don't crash on blank min/maxlife in pwpolicy In-Reply-To: <4B915042.6050906@redhat.com> References: <4B915042.6050906@redhat.com> Message-ID: <4B946D44.3060902@redhat.com> On 03/05/2010 07:41 PM, Rob Crittenden wrote: > Don't calculate min/max lifetime if None is passed in. > > None is passed if the option is set with --minlife=''. This is a valid > use case to delete a non-required attribute. In this case we simply > don't do the math on None and things work as expected. > > rob ACK and pushed to master. Martin From mnagy at redhat.com Mon Mar 8 03:22:01 2010 From: mnagy at redhat.com (Martin Nagy) Date: Mon, 08 Mar 2010 04:22:01 +0100 Subject: [Freeipa-devel] [PATCH] 398 use cli_name, not name, on Required errors In-Reply-To: <4B9158E5.206@redhat.com> References: <4B9158E5.206@redhat.com> Message-ID: <4B946D59.8090904@redhat.com> On 03/05/2010 08:17 PM, Rob Crittenden wrote: > When raising an error about a required attribute, use cli_name not name. > > name is an LDAP attribute and may not be easily identifiable (e.g. sn). > > rob ACK and pushed to master. Martin From rcritten at redhat.com Mon Mar 8 14:27:31 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 08 Mar 2010 09:27:31 -0500 Subject: [Freeipa-devel] [PATCH] 394 Catch empty updates In-Reply-To: <4B9388C2.5010700@redhat.com> References: <4B902559.2080107@redhat.com> <4B9388C2.5010700@redhat.com> Message-ID: <4B950953.3030803@redhat.com> Martin Nagy wrote: > On 03/04/2010 10:25 PM, Rob Crittenden wrote: >> Currently if you pass in an empty update on the cli it won't throw an >> error and can be a bit confusing. >> >> rob > > I think the change in pwpolicy.py won't preserve the original behaviour: > + if 'group' in options: > + group_cn = options['group'] > + del options['group'] > + else: > group_cn = _global > + > + if not 'group' in options: > ... > else: > ... > > Notice that at the second if, 'group' will never be in options no matter > what. > > Martin Yes, I discovered this too. It is fixed in my patch "400 fix pwpolicy plugin" along with a few other things. rob From rcritten at redhat.com Mon Mar 8 14:34:32 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 08 Mar 2010 09:34:32 -0500 Subject: [Freeipa-devel] [PATCH] 396 with verbose print XML-RPC output In-Reply-To: <4B939073.1030108@redhat.com> References: <4B915132.9060804@redhat.com> <4B939073.1030108@redhat.com> Message-ID: <4B950AF8.6050405@redhat.com> Martin Nagy wrote: > On 03/05/2010 07:45 PM, Rob Crittenden wrote: >> Connect the -v flag in the ipa command to including the XML-RPC >> conversation in the output: >> >> % ipa -v user-show admin > [snip] > > Rob, do you think we could use something like -vv for this? The XML-RPC > conversation seems to be a little bit too verbose. > > Martin Hmm, maybe. verbose is currently a boolean. We could switch the option to be a 'count' and return the number of v's. So 0 is still False, 1 is still True and anything higher we can compare against a number. I think that would work, I'll take a look. rob From rcritten at redhat.com Mon Mar 8 14:38:29 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 08 Mar 2010 09:38:29 -0500 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod In-Reply-To: <4B939326.8050303@redhat.com> References: <4B9151B1.7050502@redhat.com> <4B939326.8050303@redhat.com> Message-ID: <4B950BE5.4070901@redhat.com> Martin Nagy wrote: > On 03/05/2010 07:47 PM, Rob Crittenden wrote: >> Raise an error if no modifications were performed in an update. >> >> This will alert the user that nothing was done and is handy when used >> with --attr=''. This can be used to delete a non-required attribute but >> can be set to any valid attribute, present or not. We should alert the >> user if they attempt to delete a non-existant value. >> >> rob > > Few questions: > How will the user see this error? I'm not sure this should be presented > as an error, but more like a notification maybe. Also, I'm not 100% sure > how we handle exceptions like this on the server side, but I'm guessing > that this will not show up in the server logs as an exception? > > Martin A user would just see "no modifications to be performed". The server doesn't log the failure, just the call: ipa: INFO: Created connection context.ldap2 ipa: DEBUG: raw: user_mod(u'tuser1', street=None, all=False, raw=False) ipa: INFO: user_mod(u'tuser1', street=None, all=False, raw=False) ipa: INFO: Destroyed connection context.ldap2 rob From pzuna at redhat.com Mon Mar 8 14:42:13 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Mon, 08 Mar 2010 15:42:13 +0100 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. In-Reply-To: <4B917E96.5020305@redhat.com> References: <4B8E6FC3.5050108@redhat.com> <4B8E7C21.5080409@redhat.com> <4B917E96.5020305@redhat.com> Message-ID: <4B950CC5.9050807@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> Pavel Zuna wrote: >>> We talked about this on yesterdays quick server call. >>> >>> Here's what the messages look like: >>> >>> # ipa user-show idontexist >>> ipa: ERROR: idontexist: user not found >>> >>> # ipa group-show idontexist >>> ipa: ERROR: idontexist: group not found >>> >>> # ipa automountmap-add idontexist somemap >>> ipa: ERROR: idontexist: automount location not found >>> >>> All subclasses of LDAPObject can override these of course. And no, >>> it's not hardcoded for 'idontexist'. :) >>> >>> Pavel >> Oups, accidentally left some debugging output in there, sorry. :) New >> patch attached. >> >> Pavel > > I don't think the try/except in LDAPUpdate around ldap.get_entry() after > the record has been updated is quite right. I guess it is probably a > good idea to catch it but if it is not found it means that the entry was > deleted after successfully updating it but before we could pull it again > to display it. To be honest, I'm not sure >what< we should do here, but > I'm not sure NotFound is the right thing :-) > > This seems like a mid-air collision. I wonder if we should add a special > exception for this. Not sure what the user would do with it but we > should warn them at least. Good idea. I think raising midair collision exception with a special message saying what happened should be enough. We can always add a new exception for it later. > rob Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Provide-more-detailed-NotFound-error-messages-from-b.patch Type: application/mbox Size: 4911 bytes Desc: not available URL: From admin at transifex.net Mon Mar 8 15:34:37 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 08 Mar 2010 15:34:37 -0000 Subject: [Freeipa-devel] [www.transifex.net] New Team Added: Chinese (China) Message-ID: <20100308153437.22917.61443@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A new translation team called 'Chinese (China)' has been added to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/zh_CN/ in order to see this new team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Mon Mar 8 18:59:23 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 08 Mar 2010 18:59:23 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100308185923.24493.45938@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by raven Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # translation of pl.po to Polish # Piotr Dr?g , 2010. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" "newticket\n" "POT-Creation-Date: 2010-03-01 19:57-0500\n" "PO-Revision-Date: 2010-03-08 19:58+0100\n" "Last-Translator: Piotr Dr?g \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "niepoprawny typ" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "Dozwolona jest tylko jedna warto??" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "musi by? prawd? lub fa?szem" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "musi by? liczba ca?kowit?" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "musi wynosi? co najmniej %(minvalue)d" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "mo?e wynosi? co najwy?ej %(maxvalue)d" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "musi by? liczb? dziesi?tn?" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "musi wynosi? co najmniej %(minvalue)f" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "mo?e wynosi? co najwy?ej %(maxvalue)f" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "musi pasowa? do wzorca \"%(pattern)s\"" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "musi by? danymi binarnymi" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "musi wynosi? co najmniej %(minlength)d bajt?w" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "mo?e wynosi? co najwy?ej %(maxlength)d bajt?w" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "musi wynosi? dok?adnie %(length)d bajt?w" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "musi by? tekstem w unikodzie" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "musi wynosi? co najmniej %(minlength)d znak?w" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "mo?e wynosi? co najwy?ej %(maxlength)d znak?w" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "musi wynosi? dok?adnie %(length)d znak?w" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "musi by? jednym z %(values)r" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "Prosz? poda? %(label)s ponownie, aby sprawdzi?: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "Has?a si? nie zgadzaj?." #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "Anulowano." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "" "Wyniki zosta?y obci?te, prosz? spr?bowa? bardziej konkretnego wyszukiwania" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" "klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na %" "(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "nieznany b??d %(code)d z %(server)s: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "wyst?pi? wewn?trzny b??d" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "wyst?pi? wewn?trzny b??d w serwerze na %(server)r" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "nieznane polecenie %(name)r" #: ../../ipalib/errors.py:386 ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "b??d w serwerze %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "nie mo?na po??czy? si? z %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "Nieprawid?owe ??danie JSON-RPC: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "B??d Kerberosa: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "nie otrzymano danych uwierzytelniaj?cych Kerberosa" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "Nie odnaleziono us?ugi %(service)r w bazie danych Kerberosa" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "Nie odnaleziono pami?ci podr?cznej danych uwierzytelniaj?cych" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "Zg?oszenie wygas?o" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "" "Uprawnienia pami?ci podr?cznej danych uwierzytelniaj?cych s? niepoprawne" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "B??dny format w pami?ci podr?cznej danych uwierzytelniaj?cych" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "Nie mo?na rozwi?za? KDC dla ??danego obszaru" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "Niewystarczaj?cy dost?p: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "polecenie %(name)r nie przyjmuje parametr?w" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametr" msgstr[1] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametry" msgstr[2] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametr?w" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "pokrywanie parametr?w i opcji: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "%(name)r jest wymagane" #: ../../ipalib/errors.py:706 ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "nieprawid?owe %(name)r: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "API nie posiada takiej przestrzeni nazw: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "Has?a si? nie zgadzaj?" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "Polecenie nie jest zaimplementowane" #: ../../ipalib/errors.py:783 ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "Ten wpis ju? istnieje" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "Nale?y zapisa? si? do komputera, aby utworzy? jego us?ug?" #: ../../ipalib/errors.py:831 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: %" "(reason)s" msgstr "" "Naczelnik us?ugi nie jest w formacie: us?uga/w pe?ni kwalifikowana nazwa " "komputera: %(reason)s" #: ../../ipalib/errors.py:847 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "Obszar naczelnika nie zgadza si? z obszarem dla tego serwera IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "Te polecenie wymaga dost?pu roota" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "To jest ju? grupa POSIX" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "Naczelnik nie jest w formacie u?ytkownik at OBSZAR: %(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "Ten wpis jest ju? odblokowany" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "Ten wpis jest ju? zablokowany" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" "Ten wpis posiada ustawione nsAccountLock, nie mo?e by? zablokowany lub " "niezablokowany" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "Ten wpis nie jest elementem grupy" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "Grupa nie mo?e by? w?asnym elementem" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "Ten wpis jest ju? elementem grupy" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "Dekodowanie base64 nie powiod?o si?: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "Nie mo?na doda? grupy jako elementu jej samej" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "Nie mo?na usun?? domy?lnej grupy u?ytkownik?w" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "zmiana koliduje z inn? zmian?" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "?adne modyfikacje nie zostan? wykonane" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "przekroczono ograniczenia dla tego zapytania" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "Nie mo?na uko?czy? dzia?ania na certyfikacie: %(error)s" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "Maksymalna d?ugo?? nazwy u?ytkownika" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "Podstawa katalogu domowego" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "Domy?lne po?o?enie katalog?w domowych" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "Domy?lna pow?oka" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "Domy?lna pow?oka dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "Domy?lna grupa u?ytkownik?w" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "Domy?lna grupa dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "Domy?lna domena e-mail" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "Domy?lna domena e-mail dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "Ograniczenie czasu wyszukiwania" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" "Maksymalny czas (w sekundach) wyszukiwania (-1 oznacza brak ograniczenia)" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "Ograniczenie rozmiaru wyszukiwania" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "" "Maksymalna liczba wpis?w do wyszukiwania (-1 oznacza brak ograniczenia)" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "Pola wyszukiwania u?ytkownik?w" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" "Lista p?l oddzielonych przecinkami do przeszukania podczas wyszukiwania " "u?ytkownik?w" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "Tryb migracji" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "W??czono tryb migracji" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "Podstawa tematu certyfikatu" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "podstawa dla temat?w certyfikat?w (OU=Test,O=Przyk?ad)" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "Grupy rol" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "Nazwa grupy rol" #: ../../ipalib/plugins/rolegroup.py:53 ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "Opis" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "Opis tej grupy rol" #: ../../ipalib/plugins/rolegroup.py:57 ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "Elementy grupy" #: ../../ipalib/plugins/rolegroup.py:61 ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "Elementy u?ytkownik?w" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "Element grupy zadaniowej" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "Dodano grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "Usuni?to grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "Zmodyfikowano grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "Pasuje %(count)d grupa roli" msgstr[1] "Pasuj? %(count)d grupy roli" msgstr[2] "Pasuje %(count)d grup roli" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "Komputery" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "Nazwa komputera" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "Opis tego komputera" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "Lokalizacja" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "Lokalizacja komputera (np. \"Baltimore, MD\")" #: ../../ipalib/plugins/host.py:87 ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "Po?o?enie" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "Po?o?enie komputera (np. \"Laboratorium nr 2\")" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "Platforma" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "Platforma sprz?towa komputera (np. \"Lenovo T61\")" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "System operacyjny" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "System operacyjny komputera i jego wersja (np. \"Fedora 9\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "Has?o u?ytkownika" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "Has?o u?ywane w zapisywaniu wi?kszej cz??ci" #: ../../ipalib/plugins/host.py:107 ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "Certyfikat" #: ../../ipalib/plugins/host.py:108 ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "Certyfikat serwera zakodowany za pomoc? Base-64" #: ../../ipalib/plugins/host.py:111 ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "Nazwa naczelnika" #: ../../ipalib/plugins/host.py:115 ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "Element grupy komputer?w" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "Element grupy sieci" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "Element grupy roli" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "Dodano komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "Usuni?to komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "Zmodyfikowano komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "Nazwa naczelnika Kerberosa dla tego komputera" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "Pasuje %(count)d komputer" msgstr[1] "Pasuje %(count)d komputery" msgstr[2] "Pasuje %(count)d komputer?w" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "Grupy u?ytkownik?w" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "Nazwa grupy" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "Opis grupy" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "GID (ta opcja umo?liwia jego r?czne ustawienie)" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "Elementy, kt?re si? nie powiod?y" #: ../../ipalib/plugins/group.py:80 ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "U?ytkownicy" #: ../../ipalib/plugins/group.py:84 ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "Grupy" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "Dodano grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "Utworzy? jako grup? POSIX?" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "Usuni?to grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "Zmodyfikowano grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "Pasuje %(count)d grupa" msgstr[1] "Pasuj? %(count)d grupy" msgstr[2] "Pasuje %(count)d grup" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI" msgstr "Adres URI LDAP" #: ../../ipalib/plugins/migration.py:167 msgid "LDAP URI of DS server to migrate from" msgstr "Adres URI LDAP serwera DS, z kt?rego migrowa?" #: ../../ipalib/plugins/migration.py:178 msgid "Bind DN" msgstr "DN dowi?zania" #: ../../ipalib/plugins/migration.py:184 msgid "User container" msgstr "Kontener u?ytkownika" #: ../../ipalib/plugins/migration.py:185 msgid "RDN of container for users in DS" msgstr "RDN kontenera dla u?ytkownik?w w DS" #: ../../ipalib/plugins/migration.py:191 msgid "Group container" msgstr "Kontener grupy" #: ../../ipalib/plugins/migration.py:192 msgid "RDN of container for groups in DS" msgstr "RDN kontenera dla grup w DS" #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "Us?ugi" #: ../../ipalib/plugins/service.py:121 ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "Naczelnik" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "Naczelnik us?ugi" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "Dodano us?ug? \"%(value)s\"" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "Usuni?to us?ug? \"%(value)s\"" #: ../../ipalib/plugins/passwd.py:37 ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "Nazwa u?ytkownika" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "Nazwa regu?y" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "Typ regu?y (zezwalanie lub zabranianie)" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "Nazwa us?ugi" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "Nazwa us?ugi, do kt?rej zastosowywana jest regu?a (np. ssh)" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "Kategoria u?ytkownik?w" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "Kategoria u?ytkownik?w, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "Kategoria komputer?w" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "Kategoria komputer?w, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "Kategoria komputer?w ?r?d?owych" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "Kategoria komputer?w ?r?d?owych, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:87 ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "Czas dost?pu" #: ../../ipalib/plugins/cert.py:62 ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "Nie mo?na dekodowa? certyfikatu we wpisie" #: ../../ipalib/plugins/cert.py:105 ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "Dekodowanie ??dania podpisywania certyfikatu nie powiod?o si?" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Dekodowanie ??dania podpisywania certyfikatu nie powiod?o si?: %s" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "Naczelnik us?ugi dla tego certyfikatu (np. HTTP/test.przyk?ad.pl)" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "automatycznie dodaj naczelnika, je?li nie istnieje" #: ../../ipalib/plugins/cert.py:192 ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "Temat" #: ../../ipalib/plugins/cert.py:196 ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "Numer seryjny" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "Identyfikator ??dania" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "Stan ??dania" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" "Numer seryjny w formie dziesi?tnej lub szesnastkowej, je?li poprzedzone 0x" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "Przyczyna uniewa?nienia" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "Uniewa?niono" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "Przyczyna" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "Przyczyna uniewa?nienia certyfikatu (0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "Cofni?to uniewa?nienie" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "B??d" #: ../../ipalib/plugins/baseldap.py:115 msgid "Add an attribute/value pair. Format is attr=value" msgstr "Dodaj par? atrybut/warto??. Format to atrybut=warto??" #: ../../ipalib/plugins/baseldap.py:120 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "Ustaw atrybut dla pary nazwa/warto??. Format to atrybut=warto??" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" "warto?ci \"type\", \"filter\", \"subtree\" i \"targetgroup\" s? wzajemnie " "wy??czne" #: ../../ipalib/plugins/aci.py:112 msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" msgstr "" "co najmniej jedna z warto?ci: \"type\", \"filter\", \"subtree\", " "\"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "warto?ci \"group\" i \"taskgroup\" s? wzajemnie wy??czne" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "Wymagana jest warto?? \"group\" lub \"taskgroup\"" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "Grupa \"%s\" nie istnieje" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "Nie odnaleziono ACI o nazwie \"%s\"" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACI" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "Nazwa ACI" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "Grupa zadaniowa" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "Grupa zadaniowa, do kt?rej ACI zapewnia dost?p" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "Grupa u?ytkownik?w" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "Grupa u?ytkownik?w, do kt?rej ACI zapewnia dost?p" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "Uprawnienia" #: ../../ipalib/plugins/aci.py:222 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, " "selfwrite, all)" msgstr "" "lista uprawnie? oddzielonych przecinkami do udzielenia (odczyt, zapis, " "dodanie, usuni?cie, zapisanie do siebie, wszystkie)" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "Atrybuty" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "Lista atrybut?w oddzielonych przecinkami" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "Typ" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "typ obiektu IPA (u?ytkownik, grupa, komputer)" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "Element" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "Element grupy" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "Filtr" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "Dozwolony filtr LDAP (np. ou=In?ynieria)" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "Poddrzewo" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "Poddrzewo, do kt?rego zastosowa? ACI" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "Grupa docelowa" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "Grupa, do kt?rej zastosowa? ACI" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "Utworzono ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "Usuni?to ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "Zmodyfikowano ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "Pasuje %(count)d ACI" msgstr[1] "Pasuj? %(count)d ACI" msgstr[2] "Pasuje %(count)d ACI" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "Zarz?dzaj polityk? zg?osze? dla podanego u?ytkownika" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "Maksymalny czas ?ycia" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "Minimalny czas ?ycia zg?oszenia" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "Maksymalne odnowienie" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "Maksymalny czas, w kt?rym mo?liwe jest odnowienie" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "Strefa" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "Nazwa strefy (FQDN)" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "Autorytatywny serwer nazwa" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "adres e-mail administratora" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "Numer seryjny SOA" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "Od?wie?enie SOA" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "Ponowienie SOA" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "Wygaszenie SOA" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "Minimalne SOA" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "Czas ?ycia SOA" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "Klasa SOA" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "zezwoli? na dynamiczne aktualizacje?" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "Polityka aktualizacji BIND" #: ../../ipalib/plugins/dns.py:393 ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "Nazwa strefy" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "nazwa zasobu" #: ../../ipalib/plugins/dns.py:472 ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "Typ wpisu" #: ../../ipalib/plugins/dns.py:476 ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "Dane" #: ../../ipalib/plugins/dns.py:477 ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "Dane specyficzne dla typu" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "Czas ?ycia" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "Klasa" #: ../../ipalib/plugins/dns.py:582 ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "Nazwa zasobu" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "Kryterium wyszukiwania" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "dane specyficzne dla typu" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "Automatyczne montowanie nazwy po?o?enia" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "Mapa" #: ../../ipalib/plugins/automount.py:225 msgid "Aautomount map name" msgstr "Automatyczne montowanie nazw map" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "Automatyczne montowanie map" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "Klucz" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "Automatyczne montowanie nazw kluczy" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "Informacje o montowaniu" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "opis" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "Automatyczne montowanie kluczy" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "Punkt montowania" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "Mapa nadrz?dna" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "" "Nazwa nadrz?dnej mapy automatycznego montowania (domy?lnie: auto.master)" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "Grupy sieciowe" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "Nazwa grupy sieciowej" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "Opis grupy sieciowej" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "Nazwa domeny NIS" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "Komputer elementu" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "Zewn?trzny komputer" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d zmiennych" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "Wczytano %(count)d wtyczk?" msgstr[1] "Wczytano %(count)d wtyczki" msgstr[2] "Wczytano %(count)d wtyczek" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "Login u?ytkownika" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "Imi?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "Nazwisko" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "Pole GECOS" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "Pow?oka logowania" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "Naczelnik Kerberosa" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "Adres e-mail" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "Has?o" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "Ustaw has?o u?ytkownika" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "UID (ta opcja umo?liwia jego r?czne ustawienie)" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "Adres zamieszkania" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "Grupy sieciowe" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "Grupy rol" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "Grupy zadaniowe" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "Dodano u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "Usuni?to u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "Zmodyfikowano u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "Pasuje %(count)d u?ytkownik" msgstr[1] "Pasuje %(count)d u?ytkownik?w" msgstr[2] "Pasuje %(count)d u?ytkownik?w" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "Zablokowany u?ytkownik \"%(value)s\"" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "Odblokowany u?ytkownik \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "Grupy zadaniowe" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "Nazwa grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "Opis grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "Element grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "Dodano grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "Usuni?to grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "Zmodyfikowano grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "Pasuje %(count)d grupa zadaniowa" msgstr[1] "Pasuj? %(count)d grupy zadaniowe" msgstr[2] "Pasuje %(count)d grup zadaniowych" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "Grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "Grupa komputer?w" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "Nazwa grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "Opis tej grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "Element komputer?w" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "Element grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "Dodano grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "Usuni?to grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "Zmodyfikowano grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "Pasuje %(count)d grupa komputer?w" msgstr[1] "Pasuj? %(count)d grupy komputer?w" msgstr[2] "Pasuje %(count)d grup komputer?w" #: ../../ipalib/plugins/pwpolicy.py:121 ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "Grupa" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "Maksymalny czas ?ycia (w dniach)" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "Maksymalny czas ?ycia has?a (w dniach)" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "Minimalny czas ?ycia (w godzinach)" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "Minimalny czas ?ycia has?a (w godzinach)" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "Rozmiar historii" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "Rozmiar historii hase?" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "Klasy znak?w" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "Minimalna liczba klas znak?w" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "Minimalna d?ugo??" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "Minimalna d?ugo?? has?a" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "Dodano polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:174 ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "Grupa, dla kt?rej ustawi? polityk?" #: ../../ipalib/plugins/pwpolicy.py:179 ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "Priorytet" #: ../../ipalib/plugins/pwpolicy.py:180 ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "Priorytet polityki (wy?szy numer r?wna si? ni?szemu priorytetowi)" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "Zmodyfikowano polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "nie mo?na ustawia? priorytetu dla globalnej polityki" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "Usuni?to polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "Grupa, dla kt?rej wy?wietli? polityk?" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "U?ytkownik" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "Wy?wietl polityk? zastosowan? dla podanego u?ytkownika" #: ../../ipaserver/install/certs.py:576 ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Nie mo?na komunikowa? si? z CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form \"%" "(subject_base)s\"" msgstr "" "Temat ??dania \"%(request_subject)s\" nie pasuje do formatu \"%(subject_base)" "s\"" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "nie mo?na dekodowa? csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "dzia?anie na pliku" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "nie mo?na uzyska? nast?pnego numeru szeregowego" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "narz?dzie certyfikat?w nie powiod?o si?" From jdennis at redhat.com Mon Mar 8 19:10:45 2010 From: jdennis at redhat.com (John Dennis) Date: Mon, 08 Mar 2010 14:10:45 -0500 Subject: [Freeipa-devel] [PATCH 6/6] update Polish translations Message-ID: <4B954BB5.4050404@redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-update-Polish-translations.patch Type: text/x-patch Size: 37781 bytes Desc: not available URL: From rcritten at redhat.com Mon Mar 8 20:17:59 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 08 Mar 2010 15:17:59 -0500 Subject: [Freeipa-devel] [PATCH] 393 don't create ipa_error.log In-Reply-To: <4B92F399.8000906@redhat.com> References: <4B8FD91C.6090906@redhat.com> <4B92F399.8000906@redhat.com> Message-ID: <4B955B77.1080303@redhat.com> Martin Nagy wrote: > On 03/04/2010 05:00 PM, Rob Crittenden wrote: >> The log file /var/log/ipa_error.log was used by TurboGears which we have >> log deprecated. Don't create this file in the rpm spec file. >> >> rob > > Ack. > Martin Ok, I fixed a merge problem in the patch (had ====== in it) and pushed it to master. rob From admin at transifex.net Tue Mar 9 03:42:02 2010 From: admin at transifex.net (admin at transifex.net) Date: Tue, 09 Mar 2010 03:42:02 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100309034202.27957.86982@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by gnozil Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # # Jake Li , 2010. msgid "" msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-03-01 19:57-0500\n" "PO-Revision-Date: 2010-03-09 11:40+0800\n" "Last-Translator: Jake Li \n" "Language-Team: Chinese Simplified \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-Language: Chinese\n" "X-Poedit-Country: CHINA\n" "X-Generator: Lokalize 1.0\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "??????" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "??????" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "???True?False" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "???????" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "?????????" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "????????" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "???Unicode??" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "" #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "??????" #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "???" #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "?????????" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "" #: ../../ipalib/errors.py:386 #: ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "" #: ../../ipalib/errors.py:644 #, 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:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "" #: ../../ipalib/errors.py:706 #: ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "?????" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "??????" #: ../../ipalib/errors.py:783 #: ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "??????" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "" #: ../../ipalib/errors.py:831 #, python-format msgid "Service principal is not of the form: service/fully-qualified host name: %(reason)s" msgstr "" #: ../../ipalib/errors.py:847 msgid "The realm for the principal does not match the realm for this IPA server" msgstr "" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "?????root????" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "???????" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "????????" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "???????????" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "???????????" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "???????" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "????" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "" #: ../../ipalib/plugins/rolegroup.py:53 #: ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 #: ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 #: ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 #: ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "??" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "" #: ../../ipalib/plugins/rolegroup.py:57 #: ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "???" #: ../../ipalib/plugins/rolegroup.py:61 #: ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "????" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "??" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "???" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" #: ../../ipalib/plugins/host.py:87 #: ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "??" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "??" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "????" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "????" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "" #: ../../ipalib/plugins/host.py:107 #: ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 #: ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "??" #: ../../ipalib/plugins/host.py:108 #: ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "" #: ../../ipalib/plugins/host.py:111 #: ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "" #: ../../ipalib/plugins/host.py:115 #: ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "???" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "??" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "???" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "" #: ../../ipalib/plugins/group.py:80 #: ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "??" #: ../../ipalib/plugins/group.py:84 #: ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "???" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI" msgstr "" #: ../../ipalib/plugins/migration.py:167 msgid "LDAP URI of DS server to migrate from" msgstr "" #: ../../ipalib/plugins/migration.py:178 msgid "Bind DN" msgstr "" #: ../../ipalib/plugins/migration.py:184 msgid "User container" msgstr "" #: ../../ipalib/plugins/migration.py:185 msgid "RDN of container for users in DS" msgstr "" #: ../../ipalib/plugins/migration.py:191 msgid "Group container" msgstr "" #: ../../ipalib/plugins/migration.py:192 msgid "RDN of container for groups in DS" msgstr "" #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "??" #: ../../ipalib/plugins/service.py:121 #: ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/passwd.py:37 #: ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "???" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "???" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:87 #: ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "????" #: ../../ipalib/plugins/cert.py:62 #: ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "" #: ../../ipalib/plugins/cert.py:105 #: ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "" #: ../../ipalib/plugins/cert.py:192 #: ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "" #: ../../ipalib/plugins/cert.py:196 #: ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "???" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "??" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "??" #: ../../ipalib/plugins/baseldap.py:115 msgid "Add an attribute/value pair. Format is attr=value" msgstr "" #: ../../ipalib/plugins/baseldap.py:120 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" #: ../../ipalib/plugins/aci.py:112 msgid "at least one of: type, filter, subtree, targetgroup, attrs or memberof are required" msgstr "" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "???" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "??" #: ../../ipalib/plugins/aci.py:222 msgid "comma-separated list of permissions to grant(read, write, add, delete, selfwrite, all)" msgstr "" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "??" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "??" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "??" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "" #: ../../ipalib/plugins/dns.py:393 #: ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 #: ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 #: ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "????" #: ../../ipalib/plugins/dns.py:472 #: ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "????" #: ../../ipalib/plugins/dns.py:476 #: ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "??" #: ../../ipalib/plugins/dns.py:477 #: ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "" #: ../../ipalib/plugins/dns.py:582 #: ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "????" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "????" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "" #: ../../ipalib/plugins/automount.py:225 msgid "Aautomount map name" msgstr "" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "??" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "???" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "NIS??" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "????" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "????" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "?????" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "?" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "????" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "??" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "??????" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "????" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "???" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "???" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "???" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "????" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/pwpolicy.py:121 #: ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 #: ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "?" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:174 #: ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:179 #: ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "???" #: ../../ipalib/plugins/pwpolicy.py:180 #: ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "??" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "" #: ../../ipaserver/install/certs.py:576 #: ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "Request subject \"%(request_subject)s\" does not match the form \"%(subject_base)s\"" msgstr "" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "????" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "" From jderose at redhat.com Tue Mar 9 04:14:11 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 08 Mar 2010 21:14:11 -0700 Subject: [Freeipa-devel] [PATCH 5/5] localize doc strings In-Reply-To: <4B9175C1.8050604@redhat.com> References: <4B9175C1.8050604@redhat.com> Message-ID: <1268108051.2867.2.camel@jgd-dsk> On Fri, 2010-03-05 at 16:21 -0500, John Dennis wrote: > A number of doc strings were not localized, wrap them in _(). > Some messages were not localized, wrap them in _() > > Fix a couple of failing tests: > The method name in RPC should not be unicode. > The doc attribute must use the .msg attribute for comparison. > > Also clean up imports of _() The import should come from > ipalib or ipalib.text, not ugettext from request. > > Pavel: You'll need to make a fix to plugins/migration.py, look for the > FIXME comment. What you're doing with the doc string won't work with our > localization framework. I implemented a workaround for the time being. ack. pushed to master. John, for me your 'the_method' change broke the test, which was previously working. I pushed this anyway as this patch touches a lot of files and I don't want us to get into merge hell. We can fix this small issue in a separate patch. From jderose at redhat.com Tue Mar 9 04:25:45 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 08 Mar 2010 21:25:45 -0700 Subject: [Freeipa-devel] [PATCH] jderose 052 Finish deferred translation mechanism Message-ID: <1268108746.2867.14.camel@jgd-dsk> This patch finishes the the LazyText functionality in the ipalib.text module. This patch includes extensive docstrings in text.py that should hopefully explain everything pretty well. There's also now pretty darn complete test coverage. Still to do: 1. Have Backend.session extract the locale and set context.languages... I have an rpcserver cleanup patch I've been working on which will include this change. 2. Remove deprecated gettext stuff in ipalib.request... this is a small change, but I left it out of this patch so it's easier to review I'll have these next two patches later this week. -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-jderose-052-Finish-deferred-translation-mechanism.patch Type: text/x-patch Size: 28234 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 9 10:50:29 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 09 Mar 2010 11:50:29 +0100 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. In-Reply-To: <4B955A3F.2020309@redhat.com> References: <4B8E6FC3.5050108@redhat.com> <4B8E7C21.5080409@redhat.com> <4B917E96.5020305@redhat.com> <4B950CC5.9050807@redhat.com> <4B955A3F.2020309@redhat.com> Message-ID: <4B9627F5.5060702@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> Rob Crittenden wrote: >>> Pavel Zuna wrote: >>>> Pavel Zuna wrote: >>>>> We talked about this on yesterdays quick server call. >>>>> >>>>> Here's what the messages look like: >>>>> >>>>> # ipa user-show idontexist >>>>> ipa: ERROR: idontexist: user not found >>>>> >>>>> # ipa group-show idontexist >>>>> ipa: ERROR: idontexist: group not found >>>>> >>>>> # ipa automountmap-add idontexist somemap >>>>> ipa: ERROR: idontexist: automount location not found >>>>> >>>>> All subclasses of LDAPObject can override these of course. And no, >>>>> it's not hardcoded for 'idontexist'. :) >>>>> >>>>> Pavel >>>> Oups, accidentally left some debugging output in there, sorry. :) >>>> New patch attached. >>>> >>>> Pavel >>> >>> I don't think the try/except in LDAPUpdate around ldap.get_entry() >>> after the record has been updated is quite right. I guess it is >>> probably a good idea to catch it but if it is not found it means that >>> the entry was deleted after successfully updating it but before we >>> could pull it again to display it. To be honest, I'm not sure >what< >>> we should do here, but I'm not sure NotFound is the right thing :-) >>> >>> This seems like a mid-air collision. I wonder if we should add a >>> special exception for this. Not sure what the user would do with it >>> but we should warn them at least. >> Good idea. I think raising midair collision exception with a special >> message saying what happened should be enough. We can always add a new >> exception for it later. >> >>> rob >> >> Pavel > > This looks like the same patch, was it updated? > > rob I accidentally attached the old patch, sorry. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Provide-more-detailed-NotFound-error-messages-from-b.patch Type: application/mbox Size: 5000 bytes Desc: not available URL: From jdennis at redhat.com Tue Mar 9 13:16:13 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 09 Mar 2010 08:16:13 -0500 Subject: [Freeipa-devel] [PATCH 7/7] Add Chinese Simplified (zh_CN) translation Message-ID: <4B964A1D.2070604@redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0007-Add-Chinese-Simplified-zh_CN-translation.patch Type: text/x-patch Size: 38749 bytes Desc: not available URL: From gnozil at gmail.com Tue Mar 9 04:11:30 2010 From: gnozil at gmail.com (Jake Lee) Date: Tue, 9 Mar 2010 12:11:30 +0800 Subject: [Freeipa-devel] Chinese translation for freeipa Message-ID: Hi, I started the Chinese translation from transifex, but the website can not submit the po file into your code. Could you please do it manually? -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa.master.zh_CN.po Type: application/octet-stream Size: 31931 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 9 15:07:04 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 09 Mar 2010 16:07:04 +0100 Subject: [Freeipa-devel] [PATCH] 399 Include params in Method.output_params In-Reply-To: <4B9173AA.2000602@redhat.com> References: <4B9173AA.2000602@redhat.com> Message-ID: <4B966418.4050406@redhat.com> Rob Crittenden wrote: > Method overrides the Command get_output_params() method and only returns > the object params, not anything defined within the method itself. Return > those as well so they are displayed in output. Some care needs to be > taken to avoid returning duplicate values. In the case of duplicates the > value in obj.params wins. > > I tested this with the pwpolicy plugin which is a Method and defines its > own takes_options. I need this to display the priority to the user. > > rob > Applies with minor modifications due to recent gettext patches. Shouldn't there be a check for 'no_output' when going through self.obj.params? Pavel From admin at transifex.net Tue Mar 9 15:37:30 2010 From: admin at transifex.net (admin at transifex.net) Date: Tue, 09 Mar 2010 15:37:30 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100309153730.24700.1152@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by logan Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Fedora Spanish translation of freeipa.master.ipa. # This file is distributed under the same license as the freeipa.master.ipa package. # # Domingo Becker , 2010. # H?ctor Daniel Cabrera , 2010. # msgid "" msgstr "" "Project-Id-Version: freeipa.master.ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-03-01 19:57-0500\n" "PO-Revision-Date: \n" "Last-Translator: H?ctor Daniel Cabrera \n" "Language-Team: Fedora Spanisg \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: ARGENTINA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "tipo incorrecto" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "S?lo se permite un valor" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "debe ser True o False" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "debe ser un entero" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "debe ser como m?nimo %(minvalue)d" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "puede ser como m?ximo %(maxvalue)d" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "debe ser un n?mero decimal" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "debe ser como m?nimo %(minvalue)f" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "puede ser como m?ximo %(maxvalue)f" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "debe coincidir con el modelo \"%(pattern)s" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "debe ser un dato binario" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "debe ser como m?nimo de %(minlength)d bytes" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "puede ser a lo sumo de %(maxlength)d bytes" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "debe ser exactamente de %(length)d bytes" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "debe ser texto Unicode" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "debe tener como m?nimo %(minlength)d caracteres" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "puede tener a lo sumo %(maxlength)d caracteres" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "debe tener exactamente %(length)d caracteres" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "debe ser uno de %(values)r" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "ngrese %(label)s nuevamente para su verificaci?n: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "?Las contrase?as no coinciden!" #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "Cancelado." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "Los resultados se encuentran truncados, intente realizar una b?squeda m?s espec?fica" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "error %(code)d desconocido de %(server)s: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "ha ocurrido un error interno" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "ha ocurrido un error interno en el servidor en %(server)r" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "comando desconocido %(name)r" #: ../../ipalib/errors.py:386 #: ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "error en el servidor %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "no es posible conectar con %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "Petici?n JSON-RPC no v?lida: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "Error de kerberos: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "no se ha recibido ninguna credencial Kerberos" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "El servicio %(service)r no se ha encontrado en la base de datos Kerberos" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "No se han encontrado credenciales de cach?" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "El ticket ha expirado" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "Los permisos de credenciales de cach? son incorrectos" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "Las credenciales de cach? est?n mal formadas" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "No es posible resolver KDC para el reinado solicitado" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "Acceso insuficiente: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "el comando %(name)r no tiene argumentos" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "el comando %(name)r lleva al menos %(count)d argumento" msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "superponiendo argumentos y opciones: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "%(name)r es necesario" #: ../../ipalib/errors.py:706 #: ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "%(name)r inv?lido: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "api no posee tal nombre de espacio: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "Las contrase?as no coinciden" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "El comando no se ha implementado" #: ../../ipalib/errors.py:783 #: ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "Esta entrada ya existe" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "Debe registrar un equipo para poder generar un servicio de equipo" #: ../../ipalib/errors.py:831 #, python-format msgid "Service principal is not of the form: service/fully-qualified host name: %(reason)s" msgstr "El servicio principal no tiene la forma de servicio/nombre de equipo totalmente calificado: %(reason)s" #: ../../ipalib/errors.py:847 msgid "The realm for the principal does not match the realm for this IPA server" msgstr "El reinado para el principal no coincide con el reinado para este servidor IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "Este comando necesita acceso de usuario root" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "Este ya es un grupo posix" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "El principal no tiene la forma usuario at REINADO: %(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "Esta entrada ya se encuentra desbloqueada" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "Esta entrada ya se encuentra bloqueada" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "Esta entrada posee definido nsAccountLock, no puede ser bloqueada ni desbloqueada" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "Esta entrada no es miembro del grupo" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "Un grupo no puede ser miembro de s? mismo" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "Esta entrada ya es miembro del grupo" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "Fall? la decodificaci?n base64: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "Un grupo no puede ser agregado como miembro de s? mismo" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "El grupo de usuarios predeterminado no puede ser eliminado" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "no existe un comando para el t?pico de ayuda %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "la modificaci?n choca con otra modificaci?n diferente" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "no existen modificaciones a ser realizadas" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "han sido excedidos los l?mites para esta consulta" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "La operaci?n certificada no puede ser completada: %(error)s" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "Longitud m?xima de nombre de usuario" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "Base del directorio principal" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "Ubicaci?n predeterminada de los directorios principales" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "Shell predeterminada" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "Shell predeterminada para nuevos usuarios" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "Grupo de usuarios predeterminado" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "Grupo predeterminado para nuevos usuarios" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "Dominio predeterminado de correo electr?nico" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "Dominio predeterminado de correo electr?nico para nuevos usuarios" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "Buscar l?mite de tiempo" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "Cantidad m?xima de tiempo (en segundos) para realizar una b?squeda (-1 es ilimitado)" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "L?mite del tama?o de la b?squeda" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "cantidad m?xima de registros que buscar (-1 es ilimitado)" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "Campos de b?squeda de usuario" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "Una lista separada por comas de campos a buscar, cuando se realice una b?squeda de usuarios" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "Modo de migraci?n" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "Modo de migraci?n habilitado" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "Base de certificado de asunto" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "base para certificar asuntos (OU=Prueba,O=Ejemplo)" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "Grupos de funciones" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "Nombre del grupo de funci?n" #: ../../ipalib/plugins/rolegroup.py:53 #: ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 #: ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 #: ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 #: ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "Descripci?n" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "Una descripci?n de este grupo de funciones" #: ../../ipalib/plugins/rolegroup.py:57 #: ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "Grupos de miembros" #: ../../ipalib/plugins/rolegroup.py:61 #: ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "Usuarios miembros" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "Miembros de los grupos de tareas" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de funciones \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "%(count)d grupo de roles coincidente" msgstr[1] "%(count)d grupo de roles coincidentes" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "Equipos" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "Nombre del equipo" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "Una descripci?n de este equipo" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "Localidad" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "Localidad del equipo (p.ej. \"Barrio latino, Par?s\") " #: ../../ipalib/plugins/host.py:87 #: ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "Ubicaci?n" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "Ubicaci?n del equipo (p. ej. \"Laboratorio\")" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "Plataforma" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "Sistema operativo" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "Sistema operativo que utiliza el equipo y versi?n (p.ej. \"Fedora 11\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "Contrase?a de usuario" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "Contrase?a utilizada en el registro bruto" #: ../../ipalib/plugins/host.py:107 #: ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 #: ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "Certificado" #: ../../ipalib/plugins/host.py:108 #: ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "Certificado del servidor codificado con base-64" #: ../../ipalib/plugins/host.py:111 #: ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "Nombre principal" #: ../../ipalib/plugins/host.py:115 #: ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "Miembro de los grupos de equipo" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "Miembro de los grupos de red" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "Miembro de los grupos de funci?n" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "Ha sido agregado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "Ha sido eliminado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "Ha sido modificado el equipo \"%(value)s\"" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "Nombre del prinicpal de Kerberos para este equipo" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "%(count)d equipo coincidente" msgstr[1] "%(count)d equipos coincidentes" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "Grupos de usuarios" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "Nombre del grupo" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "Descripci?n del grupo" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "GID (utilice esta opci?n para definirlo manualmente)" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "Miembros fallidos" #: ../../ipalib/plugins/group.py:80 #: ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "Usuarios" #: ../../ipalib/plugins/group.py:84 #: ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "Grupos" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "Ha sido agregado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "?Crear como un grupo posix?" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "Ha sido eliminado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "Ha sido modificado el grupo \"%(value)s\"" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d grupo coincidente" msgstr[1] "%(count)d grupos coincidentes" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI" msgstr "LDAP URI" #: ../../ipalib/plugins/migration.py:167 msgid "LDAP URI of DS server to migrate from" msgstr "LDAP URI del servidor DS desde donde realizar la migraci?n" #: ../../ipalib/plugins/migration.py:178 msgid "Bind DN" msgstr "Asociar DN" #: ../../ipalib/plugins/migration.py:184 msgid "User container" msgstr "Contenedor de usuario" #: ../../ipalib/plugins/migration.py:185 msgid "RDN of container for users in DS" msgstr "RDN de contenedor para los usuarios en DS" #: ../../ipalib/plugins/migration.py:191 msgid "Group container" msgstr "Contenedor de grupoi" #: ../../ipalib/plugins/migration.py:192 msgid "RDN of container for groups in DS" msgstr "RDN del contenedor para grups en DS" #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "Servicios" #: ../../ipalib/plugins/service.py:121 #: ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "Principal" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "Servicio principal" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "Ha sido agregado el servicio \"%(value)s\"" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "Ha sido eliminado el servicio \"%(value)s\"" #: ../../ipalib/plugins/passwd.py:37 #: ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "Nombre de usuario" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "Nombre de la regla" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "Tipo de regla (permitir o negar)" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "Nombre del servicio" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "Nombre del servicio al que se aplica la regla (p.ej. ssh)" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "Categor?a de usuario" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "Categor?a de usuario al que se aplica la regla" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "Categor?a del equipo" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "Categor?a del equipo al que se aplica la regla" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "Categor?a del equipo de origen" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "Categor?a del equipo de origen al que se aplica la regla" #: ../../ipalib/plugins/hbac.py:87 #: ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "Hora de acceso" #: ../../ipalib/plugins/cert.py:62 #: ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "No es posible decodificar el certificado en la entrada" #: ../../ipalib/plugins/cert.py:105 #: ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "Falla al intentar decodificar la petici?n de identificaci?n de certificado" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Falla al intentar decodificar la petici?n de identificaci?n de certificado: %s" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "si no existe, agregar autom?ticamente el principal" #: ../../ipalib/plugins/cert.py:192 #: ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "Asunto" #: ../../ipalib/plugins/cert.py:196 #: ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "N?mero de serie" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "Id de la petici?n" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "Estado de la petici?n" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "N?mero de serie en decimales, o hexadecimales, si tiene un prefijo 0x" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "Motivo de la revocaci?n" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "Revocado" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "Motivo" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "Motivo por el cual el certificado ha sido revocado (0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "No revocado" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "Error" #: ../../ipalib/plugins/baseldap.py:115 msgid "Add an attribute/value pair. Format is attr=value" msgstr "Agregar un par de atributo/valor. El formato es attr=value" #: ../../ipalib/plugins/baseldap.py:120 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "Define un atributo a un par nombre/valor. El formato es attr=value" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "tipo, filtro, sub?rbol y grupo de destino, se excluyen mutuamente" #: ../../ipalib/plugins/aci.py:112 msgid "at least one of: type, filter, subtree, targetgroup, attrs or memberof are required" msgstr "es necesario como m?nimo alguno de: tipo, filtro, sub?rbol, grupo de destino, atributos, o miembro de " #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "grupo y grupo de tareas se excluyen mutuamente" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "Es necesario grupo o grupo de tareas" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "El grupo '%s' no existe" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACIs" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "Nombre de ACI" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "Grupo de tareas" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "El grupo de tareas ACI permite el acceso a " #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "Grupo de usuarios" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "El grupo de usuarios ACI permite el acceso a" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "Permisos" #: ../../ipalib/plugins/aci.py:222 msgid "comma-separated list of permissions to grant(read, write, add, delete, selfwrite, all)" msgstr "lista separada por comas de la concesi?n de permisos (leer, escribir, agregar, eliminar, auto escribirse, todos) " #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "Atributos" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "Lista de atributos separada por comas" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "Tipo" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "tipo de objeto IPA (usuario, grupo, equipo)" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "Miembro de" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "Miembro de un grupo" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "Filtro" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "Filtro legal LDAP (p.ej. ou=Ingenier?a)" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "Sub?rbol" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "Sub?rbol al que aplicar ACI" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "Grupo elegido" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "Grupo al que aplicar API" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "Ha sido creado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "Ha sido eliminado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "Ha sido modificado ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "%(count)d ACI coincidente" msgstr[1] "%(count)d ACIs coincidentes" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "Administra pol?tica de ticket para un usuario espec?fico" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "Vida m?xima" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "Vida m?xima del ticket" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "Renovaci?n m?xima" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "Duraci?n m?xima renovable" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "Zona" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "Nombre de la zona (FQDN)" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "Servidor de nombres de autoridad" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "direcci?n de correo electr?nico del administrador" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "Serie SOA" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "Actualizar SOA" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "Reintentar SOA" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "Expirar SOA" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "M?nimo SOA" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "Tiempo para abandonar SOA" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "Clase SOA" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "?permitir actualizaci?n din?mica?" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "Pol?tica de actualizaci?n de BIND" #: ../../ipalib/plugins/dns.py:393 #: ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 #: ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 #: ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "Nombre de la zona" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "nombre del recurso" #: ../../ipalib/plugins/dns.py:472 #: ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "Tipo de registro" #: ../../ipalib/plugins/dns.py:476 #: ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "Datos" #: ../../ipalib/plugins/dns.py:477 #: ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "Datos de tipo espec?fico" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "Tiempo para abandonar" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "Clase" #: ../../ipalib/plugins/dns.py:582 #: ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "Nombre del recurso" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "Criterio de b?squeda" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "datos de tipo espec?fico" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "Nombre de la ubicaci?n de automontaje" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "Mapeo" #: ../../ipalib/plugins/automount.py:225 msgid "Aautomount map name" msgstr "Nombre de mapeo de automontaje" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "Mapeos de automontaje" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "Llave" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "Nombre de llave de automontaje" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "Informaci?n de montaje" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "descripci?n" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "Llaves de automontaje" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "Punto de montaje" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "Mapeo del padre" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "Nombre del mapeo del automontaje padre (predeterminado: auto.master)" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "Grupos de red" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "Nombre de grupo de red" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "Descripci?n del grupo de red" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "Nombre del dominio NIS" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "Equipo miembro" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "Equipo externo" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d variables" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "%(count)d complemento cargado" msgstr[1] "%(count)d complementos cargados" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "Ingreso de usuario" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "Nombre" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "Apellido" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "Campo GECOS" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "Shel de ingreso" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "Principal kerberos" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "Direcci?n de correo electr?nico" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "Contrase?a" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "Definir la contrase?a de usuario" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "UID (utilice esta opci?n para definir manualmente)" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "Direcci?n postal" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "Grupos de red" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "Grupos de funciones" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "Grupos de tareas" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "Ha sido agregado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "Ha sido eliminado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "Ha sido modificado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "%(count)d usuario coincidente" msgstr[1] "%(count)d usuarios coincidentes" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "Ha sido bloqueado el usuario \"%(value)s\"" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "Ha sido desbloqueado el usuario \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "Grupos de tareas" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "Nombre de grupos de tareas" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "Descrici?n del grupo de tareas" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "Grupos de funci?n miembro" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de tareas \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "%(count)d grupo de tarea coincidente" msgstr[1] "%(count)d grupos de tarea coincidentes" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "Grupos de equipo" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "Grupo de equipo" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "Nombre del grupo de equipo" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "Una descripci?n de este grupo de equipo" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "Equipos miembro" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "Grupos de equipo miembro" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "Ha sido agregado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "Ha sido modificado el grupo de equipo \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "%(count)d grupo de equipos coincidente" msgstr[1] "%(count)d grupos de equipos coincidentes" #: ../../ipalib/plugins/pwpolicy.py:121 #: ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 #: ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "Grupo" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "Vida m?xima (d?as)" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "Vida m?xima de la contrase?a (d?as)" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "Vida m?nima (horas)" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "Vida m?nima de la contrase?a (en horas)" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "Tama?o del historial" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "Tama?o del historial de la contrase?a" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "Clases de caracteres" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "Cantidad m?nima de clases de caracteres" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "Longitud m?nima" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "Longitud m?nima de la contrase?a" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "Ha sido agregada pol?tica para el grupo \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:174 #: ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "Grupo al que definir la pol?tica" #: ../../ipalib/plugins/pwpolicy.py:179 #: ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "Prioridad" #: ../../ipalib/plugins/pwpolicy.py:180 #: ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "Prioridad de la pol?tica (a mayor n?mero corresponde una pol?tica menor)" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "Ha sido modificada la pol?tica para grupo \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "la prioridad no puede ser definida en una pl?tica global" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "Ha sido eliminada la pol?tica para el grupo \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "Grupo al que mostrar la pol?tica" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "Usuario" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "Mostrar la pol?tica aplicada a un usuario determinado" #: ../../ipaserver/install/certs.py:576 #: ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "No es posible comunicarse con CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "Request subject \"%(request_subject)s\" does not match the form \"%(subject_base)s\"" msgstr "El asunto solicitado \"%(request_subject)s\" no coincide con la forma \"%(subject_base)s\"" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "no es posible decodificar csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "operaci?n de archivo" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "no es posible obtener el pr?ximo n?mero de serie" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "falla de certutil" From jdennis at redhat.com Tue Mar 9 16:36:44 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 09 Mar 2010 11:36:44 -0500 Subject: [Freeipa-devel] [PATCH 8/8] Update Spanish translations Message-ID: <4B96791C.9050902@redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0008-Update-Spanish-translations.patch Type: text/x-patch Size: 37828 bytes Desc: not available URL: From rcritten at redhat.com Tue Mar 9 21:50:16 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 09 Mar 2010 16:50:16 -0500 Subject: [Freeipa-devel] [PATCH] 399 Include params in Method.output_params In-Reply-To: <4B966418.4050406@redhat.com> References: <4B9173AA.2000602@redhat.com> <4B966418.4050406@redhat.com> Message-ID: <4B96C298.1090405@redhat.com> Pavel Zuna wrote: > Rob Crittenden wrote: >> Method overrides the Command get_output_params() method and only >> returns the object params, not anything defined within the method >> itself. Return >> those as well so they are displayed in output. Some care needs to be >> taken to avoid returning duplicate values. In the case of duplicates >> the value in obj.params wins. >> >> I tested this with the pwpolicy plugin which is a Method and defines >> its own takes_options. I need this to display the priority to the user. >> >> rob >> > Applies with minor modifications due to recent gettext patches. > Shouldn't there be a check for 'no_output' when going through > self.obj.params? > > Pavel Yup, new patch attached, good catch. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-399-2-output.patch Type: application/mbox Size: 1720 bytes Desc: not available URL: From rcritten at redhat.com Tue Mar 9 21:53:00 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 09 Mar 2010 16:53:00 -0500 Subject: [Freeipa-devel] [PATCH] Provide more detailed NotFound error messages from baseldap.py classes. In-Reply-To: <4B9627F5.5060702@redhat.com> References: <4B8E6FC3.5050108@redhat.com> <4B8E7C21.5080409@redhat.com> <4B917E96.5020305@redhat.com> <4B950CC5.9050807@redhat.com> <4B955A3F.2020309@redhat.com> <4B9627F5.5060702@redhat.com> Message-ID: <4B96C33C.7070807@redhat.com> Pavel Zuna wrote: > Rob Crittenden wrote: >> Pavel Zuna wrote: >>> Rob Crittenden wrote: >>>> Pavel Zuna wrote: >>>>> Pavel Zuna wrote: >>>>>> We talked about this on yesterdays quick server call. >>>>>> >>>>>> Here's what the messages look like: >>>>>> >>>>>> # ipa user-show idontexist >>>>>> ipa: ERROR: idontexist: user not found >>>>>> >>>>>> # ipa group-show idontexist >>>>>> ipa: ERROR: idontexist: group not found >>>>>> >>>>>> # ipa automountmap-add idontexist somemap >>>>>> ipa: ERROR: idontexist: automount location not found >>>>>> >>>>>> All subclasses of LDAPObject can override these of course. And no, >>>>>> it's not hardcoded for 'idontexist'. :) >>>>>> >>>>>> Pavel >>>>> Oups, accidentally left some debugging output in there, sorry. :) >>>>> New patch attached. >>>>> >>>>> Pavel >>>> >>>> I don't think the try/except in LDAPUpdate around ldap.get_entry() >>>> after the record has been updated is quite right. I guess it is >>>> probably a good idea to catch it but if it is not found it means >>>> that the entry was deleted after successfully updating it but before >>>> we could pull it again to display it. To be honest, I'm not sure >>>> >what< we should do here, but I'm not sure NotFound is the right >>>> thing :-) >>>> >>>> This seems like a mid-air collision. I wonder if we should add a >>>> special exception for this. Not sure what the user would do with it >>>> but we should warn them at least. >>> Good idea. I think raising midair collision exception with a special >>> message saying what happened should be enough. We can always add a >>> new exception for it later. >>> >>>> rob >>> >>> Pavel >> >> This looks like the same patch, was it updated? >> >> rob > I accidentally attached the old patch, sorry. > > Pavel > ack, pushed to master rob From jdennis at redhat.com Tue Mar 9 22:07:21 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 9 Mar 2010 17:07:21 -0500 Subject: [Freeipa-devel] [PATCH 9/9] remove .pot target from Makefile.in Message-ID: <1268172441-8314-1-git-send-email-jdennis@redhat.com> This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit We want to manually make the .pot file, we shouldn't have anything in the Makefile which will cause the .pot file to be rebuilt because of dependencies. --- install/po/Makefile.in | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0009-remove-.pot-target-from-Makefile.in.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0009-remove-.pot-target-from-Makefile.in.patch" diff --git a/install/po/Makefile.in b/install/po/Makefile.in index f696c17..8cb5789 100644 --- a/install/po/Makefile.in +++ b/install/po/Makefile.in @@ -185,9 +185,6 @@ create-po: $(DOMAIN).pot fi; \ done -$(DOMAIN).pot: $(POTFILES) - $(MAKE) update-pot - update-po: update-pot $(MAKE) all --------------1.6.6.1-- From rcritten at redhat.com Tue Mar 9 22:28:58 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 09 Mar 2010 17:28:58 -0500 Subject: [Freeipa-devel] [PATCH 7/7] Add Chinese Simplified (zh_CN) translation In-Reply-To: <4B964A1D.2070604@redhat.com> References: <4B964A1D.2070604@redhat.com> Message-ID: <4B96CBAA.1020809@redhat.com> John Dennis wrote: > > pushed to master From rcritten at redhat.com Tue Mar 9 22:29:08 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 09 Mar 2010 17:29:08 -0500 Subject: [Freeipa-devel] [PATCH 8/8] Update Spanish translations In-Reply-To: <4B96791C.9050902@redhat.com> References: <4B96791C.9050902@redhat.com> Message-ID: <4B96CBB4.8040706@redhat.com> John Dennis wrote: > Pushed to master From rcritten at redhat.com Wed Mar 10 16:17:52 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 10 Mar 2010 11:17:52 -0500 Subject: [Freeipa-devel] [PATCH] 401 fix ipa-server-certinstall Message-ID: <4B97C630.8000204@redhat.com> This command was broken because the api needed to be bootstrapped. I also switched to a new function in certs that makes it easier to trust all CAs found in a PKCS#12 file. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-401-cert.patch Type: application/mbox Size: 1694 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 10 16:59:58 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 10 Mar 2010 11:59:58 -0500 Subject: [Freeipa-devel] [PATCH] 402 location of root CA Message-ID: <4B97D00E.3000605@redhat.com> Make CA PKCS#12 location arg for ipa-replica-prepare, default /root/cacert.p12 pki-silent puts a copy of the root CA into /root/tmp-ca.p12. Rename this to /root/cacert.p12. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-402-rootca.patch Type: application/mbox Size: 2536 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 10 17:00:48 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 10 Mar 2010 12:00:48 -0500 Subject: [Freeipa-devel] [PATCH] 403 correct installation CA output Message-ID: <4B97D040.6000406@redhat.com> Better customize the message regarding the CA based on the install options. There are now 3 cases: - Install a dogtag CA and issue server certs using that - Install a selfsign CA and issue server certs using that - Install using either dogtag or selfsign and use the provided PKCS#12 files for the server certs. The installed CA will still be used by the cert plugin to issue any server certs. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-403-install.patch Type: application/mbox Size: 2136 bytes Desc: not available URL: From jdennis at redhat.com Fri Mar 12 16:31:15 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 12 Mar 2010 11:31:15 -0500 Subject: [Freeipa-devel] [PATCH] jderose 052 Finish deferred translation mechanism In-Reply-To: <1268108746.2867.14.camel@jgd-dsk> References: <1268108746.2867.14.camel@jgd-dsk> Message-ID: <4B9A6C53.8070906@redhat.com> On 03/08/2010 11:25 PM, Jason Gerard DeRose wrote: > This patch finishes the the LazyText functionality in the ipalib.text > module. This patch includes extensive docstrings in text.py that should > hopefully explain everything pretty well. There's also now pretty darn > complete test coverage. Still to do: > > 1. Have Backend.session extract the locale and set > context.languages... I have an rpcserver cleanup patch I've been > working on which will include this change. > > 2. Remove deprecated gettext stuff in ipalib.request... this is a > small change, but I left it out of this patch so it's easier to > review > > I'll have these next two patches later this week. I've tested this and it works for me and seems pretty clean, a good patch. Thank you Jason. However I do have one thing which I'd like to see cleaned up, it's a few naming issues (see below). In a moment I'm going to follow up with a patch that extends tests/test_ipalib/test_text.py to utilize the test language you asked for and is currently in install/po. That test is implemented and working so look for the patch in a moment. Naming Issues: The thread local object can be assigned attributes directly and it's attributes can be referenced directly. Using context.__dict__ seems odd and unnecessary to store the language keys. I presume you're doing that because you can't have a tuple as an attribute name on the context. Directly accessing the __dict__ of an object feels like something we should avoid if possible. Also we're stuffing unrelated items in context.__dict__, for example the Connection and language keys are being stored together. Wouldn't be cleaner to keep the language keys in their own "name space" and to use constructs like this: context = threading.local() context.connection = Connection() context.language_keys = {} context.language_keys[key] = translation if key in context.language_keys rather than context.__dict__[key] = translation if key in context.__dict__ This also means when you clear the context you don't have to iterate over the members of context.__dict__ and special case the values as is currently being done with: for (name, value) in context.__dict__.items(): if isinstance(value, Connection): value.disconnect() Wouldn't this be cleaner as: if context.connection: context.connection.disconnect() Keeping the language keys separately would also allow us to clear the language keys independently of anything else in the context without having to worry about what else we might clobber in the context. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From dpal at redhat.com Fri Mar 12 16:37:54 2010 From: dpal at redhat.com (Dmitri Pal) Date: Fri, 12 Mar 2010 11:37:54 -0500 Subject: [Freeipa-devel] [Freeipa-users] [Freeipa-interest] Announcing FreeIPA v2 Server Alpha 2 Release In-Reply-To: <20100312154706.GA18809@fluxcoil.net> References: <4B7D900A.2090605@redhat.com> <20100312154706.GA18809@fluxcoil.net> Message-ID: <4B9A6DE2.6020509@redhat.com> Christian Horn wrote: > On Thu, Feb 18, 2010 at 02:07:54PM -0500, Rob Crittenden wrote: > >> Please take a moment to play with these pages. Please do not pay >> attention to style, rather focus attention to the work flow, layout and >> data being added, displayed or modified. We need to understand if the >> direction that this interface establishes is the right one. Should we >> continue with the proposed approach or do something else. What? >> > > That webinterface looks usable to me, found what i expected - > plus groupings/options in the interface for which i do not > intuitively pick up their use. Probably just my missing of > the ipa2.0 picture thou. > Looks good so far with the fedora-clients i tested. > > 2 other comments i collected on the install: > > - When http_proxy/https_proxy are set in environment ipa-server-install > is started from then installation doesnt succed, the log mentions > '/usr/bin/wget -O /etc/ipa/ca.crt http://host.domain/ipa/config/ca.crt' > returned with non-0. > unsetting the 2 vars fixes the problem. > > - the install-script noted too many times: > ----- > IPA requires ports 389 and 636 for the Directory Server. > These are currently in use: > 389 > ----- > This was noted even when nothing was listening on the port but it was > in some wait-states. The admin has just to wait for the state to get > cleared but the script could ofcourse also wait for itself. > > Thank you very much for the feedback! We have recorded issues you have noticed and will look into them. > Christian > > _______________________________________________ > Freeipa-users mailing list > Freeipa-users at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-users > -- Thank you, Dmitri Pal Engineering Manager IPA project, Red Hat Inc. ------------------------------- Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From jdennis at redhat.com Fri Mar 12 18:09:27 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 12 Mar 2010 13:09:27 -0500 Subject: [Freeipa-devel] [PATCH 10/10] Add gettext translation test using test language. Message-ID: <201003121809.o2CI9RX4012890@int-mx05.intmail.prod.int.phx2.redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0010-Add-gettext-translation-test-using-test-language.patch Type: text/x-patch Size: 4176 bytes Desc: not available URL: From chorn at fluxcoil.net Fri Mar 12 15:47:06 2010 From: chorn at fluxcoil.net (Christian Horn) Date: Fri, 12 Mar 2010 16:47:06 +0100 Subject: [Freeipa-devel] [Freeipa-interest] Announcing FreeIPA v2 Server Alpha 2 Release In-Reply-To: <4B7D900A.2090605@redhat.com> References: <4B7D900A.2090605@redhat.com> Message-ID: <20100312154706.GA18809@fluxcoil.net> On Thu, Feb 18, 2010 at 02:07:54PM -0500, Rob Crittenden wrote: > > Please take a moment to play with these pages. Please do not pay > attention to style, rather focus attention to the work flow, layout and > data being added, displayed or modified. We need to understand if the > direction that this interface establishes is the right one. Should we > continue with the proposed approach or do something else. What? That webinterface looks usable to me, found what i expected - plus groupings/options in the interface for which i do not intuitively pick up their use. Probably just my missing of the ipa2.0 picture thou. Looks good so far with the fedora-clients i tested. 2 other comments i collected on the install: - When http_proxy/https_proxy are set in environment ipa-server-install is started from then installation doesnt succed, the log mentions '/usr/bin/wget -O /etc/ipa/ca.crt http://host.domain/ipa/config/ca.crt' returned with non-0. unsetting the 2 vars fixes the problem. - the install-script noted too many times: ----- IPA requires ports 389 and 636 for the Directory Server. These are currently in use: 389 ----- This was noted even when nothing was listening on the port but it was in some wait-states. The admin has just to wait for the state to get cleared but the script could ofcourse also wait for itself. Christian From sgallagh at redhat.com Fri Mar 12 20:24:15 2010 From: sgallagh at redhat.com (Stephen Gallagher) Date: Fri, 12 Mar 2010 15:24:15 -0500 Subject: [Freeipa-devel] [PATCH 10/10] Add gettext translation test using test language. In-Reply-To: <201003121809.o2CI9RX4012890@int-mx05.intmail.prod.int.phx2.redhat.com> References: <201003121809.o2CI9RX4012890@int-mx05.intmail.prod.int.phx2.redhat.com> Message-ID: <4B9AA2EF.7080305@redhat.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 03/12/2010 01:09 PM, John Dennis wrote: > > > Just a minor nitpick, but it's more traditional to use the notation $(MAKE) -C install/po test_lang rather than explicitly changing into that directory first. If I remember correctly, make will log it to the screen explicitly this way. - -- Stephen Gallagher RHCE 804006346421761 Delivering value year after year. Red Hat ranks #1 in value among software vendors. http://www.redhat.com/promo/vendor/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAkuaou8ACgkQeiVVYja6o6OaqgCgqnCPZ6LRy4ggyNFEaGtR4o/7 x2oAn3i2lFZtQ9NmVUNB3eJ96PPxCBGQ =uAh7 -----END PGP SIGNATURE----- From jdennis at redhat.com Fri Mar 12 21:09:13 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 12 Mar 2010 16:09:13 -0500 Subject: [Freeipa-devel] [PATCH 10/10] Add gettext translation test using test language. In-Reply-To: <4B9AA2EF.7080305@redhat.com> References: <201003121809.o2CI9RX4012890@int-mx05.intmail.prod.int.phx2.redhat.com> <4B9AA2EF.7080305@redhat.com> Message-ID: <4B9AAD79.9090106@redhat.com> On 03/12/2010 03:24 PM, Stephen Gallagher wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 03/12/2010 01:09 PM, John Dennis wrote: >> >> >> > > Just a minor nitpick, but it's more traditional to use the notation > $(MAKE) -C install/po test_lang > rather than explicitly changing into that directory first. If I remember > correctly, make will log it to the screen explicitly this way. O.K. good suggestion. Whoever applies the patch can make this edit under the 1 line rule, or I'll tweak it later. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Fri Mar 12 23:01:49 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 12 Mar 2010 18:01:49 -0500 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique Message-ID: <4B9AC7DD.6060504@redhat.com> Ensure that the group policy priority is unique. We use CoS to determine the order in which group policy is applied. The behavior in CoS is undefined for multiple entries with the same cospriority. This likely relies on some other outstanding pwpolicy patches. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-404-pwpolicy.patch Type: application/mbox Size: 8238 bytes Desc: not available URL: From admin at transifex.net Sat Mar 13 09:10:22 2010 From: admin at transifex.net (admin at transifex.net) Date: Sat, 13 Mar 2010 09:10:22 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team User Left: Russian Message-ID: <20100313091022.3828.63610@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The user 'ypoyarko' has left the 'Russian' translation team of the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/ru/ in order to see this team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Mon Mar 15 11:19:54 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 15 Mar 2010 11:19:54 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team Creation Requested: Ukrainian Message-ID: <20100315111954.12492.53387@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A translation team for 'Ukrainian' has been required to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/teams/ in order to manage the teams of the project. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Mon Mar 15 12:21:58 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 15 Mar 2010 12:21:58 -0000 Subject: [Freeipa-devel] [www.transifex.net] New Team Added: Ukrainian Message-ID: <20100315122158.13284.17070@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. A new translation team called 'Ukrainian' has been added to the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/uk/ in order to see this new team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From admin at transifex.net Mon Mar 15 14:51:20 2010 From: admin at transifex.net (admin at transifex.net) Date: Mon, 15 Mar 2010 14:51:20 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team Changed: Ukrainian Message-ID: <20100315145120.14696.96171@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The 'Ukrainian' translation team of the 'FreeIPA' project has been changed. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/uk/ in order to see this new team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From rcritten at redhat.com Mon Mar 15 17:41:20 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 15 Mar 2010 13:41:20 -0400 Subject: [Freeipa-devel] [PATCH] 405 Fix the client make target Message-ID: <4B9E7140.9040706@redhat.com> Fix the client make target. It was broken due to the addition of the i18n code which lives inside the server code. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-405-client.patch Type: application/mbox Size: 1912 bytes Desc: not available URL: From rcritten at redhat.com Mon Mar 15 17:42:16 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 15 Mar 2010 13:42:16 -0400 Subject: [Freeipa-devel] [PATCH] 406 add option for pam_mkhomedirs to client installer Message-ID: <4B9E7178.2070609@redhat.com> Add a new option, --mkhomedirs, to the ipa-client-install script. We pass this along to authconfig so that pam_mkhomedirs is configured. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-406-homedir.patch Type: application/mbox Size: 3126 bytes Desc: not available URL: From rcritten at redhat.com Mon Mar 15 21:08:31 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 15 Mar 2010 17:08:31 -0400 Subject: [Freeipa-devel] [PATCH] 407 make ipautil.run() logging more flexible Message-ID: <4B9EA1CF.8030704@redhat.com> Provide mechanism in ipautil.run() to not log all arguments. This is primarily designed to not log passwords but it could have other uses. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-407-run.patch Type: application/mbox Size: 3452 bytes Desc: not available URL: From jderose at redhat.com Mon Mar 15 21:21:33 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Mon, 15 Mar 2010 15:21:33 -0600 Subject: [Freeipa-devel] [PATCH] jderose 052 Finish deferred translation mechanism In-Reply-To: <4B9A6C53.8070906@redhat.com> References: <1268108746.2867.14.camel@jgd-dsk> <4B9A6C53.8070906@redhat.com> Message-ID: <1268688093.7329.79.camel@jgd-dsk> On Fri, 2010-03-12 at 11:31 -0500, John Dennis wrote: > On 03/08/2010 11:25 PM, Jason Gerard DeRose wrote: > > This patch finishes the the LazyText functionality in the ipalib.text > > module. This patch includes extensive docstrings in text.py that should > > hopefully explain everything pretty well. There's also now pretty darn > > complete test coverage. Still to do: > > > > 1. Have Backend.session extract the locale and set > > context.languages... I have an rpcserver cleanup patch I've been > > working on which will include this change. > > > > 2. Remove deprecated gettext stuff in ipalib.request... this is a > > small change, but I left it out of this patch so it's easier to > > review > > > > I'll have these next two patches later this week. > > I've tested this and it works for me and seems pretty clean, a good > patch. Thank you Jason. However I do have one thing which I'd like to > see cleaned up, it's a few naming issues (see below). Well, naming issues aside, is this an ack? Do you mind if I push this patch and then possibly push a tune-up patch? > In a moment I'm going to follow up with a patch that extends > tests/test_ipalib/test_text.py to utilize the test language you asked > for and is currently in install/po. That test is implemented and working > so look for the patch in a moment. > > Naming Issues: > > The thread local object can be assigned attributes directly and it's > attributes can be referenced directly. Using context.__dict__ seems odd Although it isn't usually standard to use an instance dictionary like this, the Python threading.local documentation specifically endorses it. After reading the docstring in /usr/lib64/python2.6/_threading_local.py, my impression is that threading.local is indented to be used both as an instance to store thread-local attributes, and as a dict to store thread-local items (regardless of whether the keys are valid attribute names). John, could you take a look at this documentation and let me know if you concur? > and unnecessary to store the language keys. I presume you're doing that > because you can't have a tuple as an attribute name on the context. > Directly accessing the __dict__ of an object feels like something we > should avoid if possible. Also we're stuffing unrelated items in > context.__dict__, for example the Connection and language keys are being > stored together. Wouldn't be cleaner to keep the language keys in their > own "name space" and to use constructs like this: > > context = threading.local() > context.connection = Connection() > context.language_keys = {} > context.language_keys[key] = translation > if key in context.language_keys As you have it above, context.language_keys only exists in the current thread. So each time we would have to check if the language_keys dict has been created in the current thread, then check if the key is present. If you want these separated, I personally think a second threading.local instance should be used, something like: language_keys = threading.local() I actually had them separated like this initially but decided to combine them so there is only one threading.local instance we need to clear() after processing a request. Also, though it seems messy to combine all of these in the context, the name-spaces don't overlap... a tuple will never equal an attribute name (str), so the translations can't conflict with any attributes we store on the context. > rather than > > context.__dict__[key] = translation > if key in context.__dict__ > > This also means when you clear the context you don't have to iterate > over the members of context.__dict__ and special case the values as is > currently being done with: > > for (name, value) in context.__dict__.items(): > if isinstance(value, Connection): > value.disconnect() > > Wouldn't this be cleaner as: > > if context.connection: > context.connection.disconnect() We can have multiple connections, which is why we do this iteration with type checking. An LDAP connection is always created, but other connections might also be created. Currently the only place we are doing this is for a connection to the certificate server, but we should allow plugins to create additional connections, and have them explicitly disconnected by request.destroy_context(). > Keeping the language keys separately would also allow us to clear the > language keys independently of anything else in the context without > having to worry about what else we might clobber in the context. I have no problem using a separate threading.local() instance for the translations if you feel that is the better approach. Small change. From admin at transifex.net Tue Mar 16 07:08:33 2010 From: admin at transifex.net (admin at transifex.net) Date: Tue, 16 Mar 2010 07:08:33 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100316070833.3656.70098@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by yurchor Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # # Yuri Chornoivan , 2010. msgid "" msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject." "org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-03-01 19:57-0500\n" "PO-Revision-Date: 2010-03-16 09:05+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.0\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "?????????? ???" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "????? ??????????????? ???? ???? ????????" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "??? ??????????? True ??? False" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "??? ???? ????? ??????" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "??? ???? ??????, ?? ?????? ?? %(minvalue)d" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "?? ???? ???????????? %(maxvalue)d" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "??? ???? ?????????? ??????" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "??? ???? ??????, ?? ?????? ?? %(minvalue)f" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "?? ???? ???????????? %(maxvalue)f" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "??? ??????????? ??????? ?%(pattern)s?" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "??? ???? ????????? ??????" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "??? ???? ????????, ?? ????? ?? %(minlength)d ??????" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "?? ??????? ???????????? ?? ???????? %(maxlength)d ??????" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "??? ???? ???????? ????? ? %(length)d ??????" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "??? ???? ??????? ? Unicode" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "??? ???? ?? ?????? ?? %(minlength)d ???????? ????????" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "?? ??????? ???????????? %(maxlength)d ???????? ? ???????" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "??? ???? ????? %(length)d ???????? ? ???????" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "??? ???? ????? ?? ????? ???????: %(values)r" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "??????? %(label)s ?? ??? ??? ?????????: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "?????? ?? ??????????!" #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "?????????." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "" "?????? ??????????? ????????. ????????? ??????? ????????? ???????? ??????." #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "?????? %(cver)s ? ?????????? ? ???????? %(sver)s ?? %(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "%(server)s ?????????? ??? ???????? ??????? %(code)d: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "??????? ????????? ???????" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "?? ??????? %(server)r ??????? ????????? ???????" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "???????? ??????? %(name)r" #: ../../ipalib/errors.py:386 ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "??????? ?? ??????? %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "?? ??????? ?????????? ????????? ? %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "??????????? ????? JSON-RPC: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "??????? Kerberos: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "?? ???????? ????????????? ????? Kerberos" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "? ???? ????? Kerberos ?? ???????? ?????? %(service)r" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "?? ???????? ???? ????????????? ?????" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "????? ????? ??? ??????" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "????????? ????? ??????? ?? ???? ????????????? ?????" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "?????????? ?????? ???? ????????????? ?????" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "?? ??????? ????????? KDC ??? ??????? ??????? (realm)" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "?????????? ????? ??? ???????: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "??????? %(name)r ?? ??????? ?????? ??????????" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "??????? %(name)r ??????? ?? ?????? %(count)d ?????????" msgstr[1] "??????? %(name)r ??????? ?? ?????? %(count)d ??????????" msgstr[2] "??????? %(name)r ??????? ?? ?????? %(count)d ??????????" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "?????????? ?????????? ? ??????????: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "???? ??????? %(name)r" #: ../../ipalib/errors.py:706 ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "?????????? %(name)r: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "api ?? ????? ?????? ???????? ????: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "?????? ?? ??????????" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "??????? ?? ???????????" #: ../../ipalib/errors.py:783 ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "??? ????? ??? ?????" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "??? ???????? ?????? ?????, ??? ???? ????????????? ?????" #: ../../ipalib/errors.py:831 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: %" "(reason)s" msgstr "" "????????? ????? ?????? ??????? ? ?????, ????????? ???: ??????/????? ????? " "?????: %(reason)s" #: ../../ipalib/errors.py:847 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" "??????? ??? ?????????? ?????? ?? ?????????? ? ??????? ????? ??????? IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "??? ????????? ???? ??????? ???????? ????? ??????? ??????????? root" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "??? ? posix-??????" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "" "????????? ????? ??????? ? ?????, ????????? ??? ??????????@???????: " "%(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "??? ????? ??? ????????????" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "??? ????? ??? ???????????" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" "??? ????? ?????? ??????????? ??????? nsAccountLock, ????? ?? ????? " "??????????? ??? ????????????" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "??? ????? ?? ? ????????? ?????" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "????? ?? ???? ???? ????????? ????? ????" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "??? ????? ??? ? ????????? ?????" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "??????? ??????????? Base64: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "????? ?? ???? ???? ?????? ?? ??????? ????? ????" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "?? ????? ???????? ?????? ????? ????????????" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "?? ???????? ?? ???????, ?? ?????? ??????? %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "????? ?????????? ? ????? ???????? ??????" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "???? ?? ???????" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "??? ??????? ?????????? ?????????" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "?? ??????? ????????? ??? ? ????????????: %(error)s" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "????. ??????? ????? ???????????" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "?????? ???????? ?????????" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "?????? ?????? ???????? ?????????" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "?????? ????????" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "?????? ???????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "?????? ????? ????????????" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "?????? ????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "??????? ????? ??. ?????" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "??????? ????? ??????????? ????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "????????? ???? ??????" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" "???????????? ???????? ???? (? ????????) ??? ????????? ?????? ??? ? ?????? " "(-1 ? ??? ????????)" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "????????? ??????? ??????" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "??????????? ????????? ??????? ??????????? ?????? (-1 ? ??? ????????)" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "???? ?????? ????????????" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" "????????????? ?????? ?????? ?????, ?? ????? ???????????????? ????? " "????????????" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "????? ????????" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "????????? ????? ????????" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "??????? ?????? ????????????" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "" "?????? ??? ????????? ??????? ???????? ???????????? (OU=Test,O=Example)" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "????? ?????" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "????? ????? ?????" #: ../../ipalib/plugins/rolegroup.py:53 ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "????" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "???? ???? ????? ?????" #: ../../ipalib/plugins/rolegroup.py:57 ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "?????-????????" #: ../../ipalib/plugins/rolegroup.py:61 ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "???????????-????????" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "??????? ????? ???????" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "?????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "???????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "??????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ?????" msgstr[1] "??????????? ????????????? %(count)d ???? ?????" msgstr[2] "??????????? ????????????? %(count)d ???? ?????" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "?????" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "????? ?????" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "???? ????? ?????" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "??????" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "?????? ???????????? ????? (?????????, ?????, ????????)" #: ../../ipalib/plugins/host.py:87 ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "????????????" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "???????????? ????? (?????????, ?Lab 2?)" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "?????????" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "???????? ????????? ????? (?????????, ?Lenovo T61?)" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "?????????? ???????" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "?????????? ??????? ????? ? ?? ?????? (?????????, ?Fedora 9\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "?????? ???????????" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "?????? ??? ?????????? ????????? ?????????????? ????????" #: ../../ipalib/plugins/host.py:107 ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "??????????" #: ../../ipalib/plugins/host.py:108 ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "?????????? ??????? ? ????????? Base-64" #: ../../ipalib/plugins/host.py:111 ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "????? ?????????????? ??????" #: ../../ipalib/plugins/host.py:115 ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "??????? ????? ??????" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "??????? ????????? ?????" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "??????? ????? ?????" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "?????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "???????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "??????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "????? ?????????????? ?????? Kerberos ??? ????? ?????" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "??????????? ????????????? %(count)d ?????" msgstr[1] "??????????? ????????????? %(count)d ??????" msgstr[2] "??????????? ????????????? %(count)d ??????" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "????? ????????????" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "????? ?????" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "???? ?????" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "GID (?? ????????? ????? ????????? ????? ?????????? ???????? ??????)" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "????????? ????????" #: ../../ipalib/plugins/group.py:80 ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "???????????" #: ../../ipalib/plugins/group.py:84 ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "?????" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "?????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "???????? ?? ????? posix?" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "???????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "??????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "??????????? ????????????? %(count)d ?????" msgstr[1] "??????????? ????????????? %(count)d ????" msgstr[2] "??????????? ????????????? %(count)d ????" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI" msgstr "URI LDAP" #: ../../ipalib/plugins/migration.py:167 msgid "LDAP URI of DS server to migrate from" msgstr "URI LDAP ??????? DS, ? ????? ????????????????? ????????" #: ../../ipalib/plugins/migration.py:178 msgid "Bind DN" msgstr "DN ??? ????'????" #: ../../ipalib/plugins/migration.py:184 msgid "User container" msgstr "????????? ????????????" #: ../../ipalib/plugins/migration.py:185 msgid "RDN of container for users in DS" msgstr "RDN ?????????? ???????????? ? DS" #: ../../ipalib/plugins/migration.py:191 msgid "Group container" msgstr "????????? ????" #: ../../ipalib/plugins/migration.py:192 msgid "RDN of container for groups in DS" msgstr "RDN ?????????? ???? ? DS" #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "??????" #: ../../ipalib/plugins/service.py:121 ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "????????????? ?????" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "????????????? ????? ??????" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "?????? ?????? ?%(value)s?" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "???????? ?????? ?%(value)s?" #: ../../ipalib/plugins/passwd.py:37 ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "??'? ???????????" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "????? ???????" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "??? ??????? (????????? (allow) ?? ?????????? (deny))" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "????? ??????" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "????? ??????, ?? ???? ?????????????? ??????? (?????????, ssh)" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "????????? ????????????" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "????????? ????????????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "????????? ??????" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "????????? ??????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "????????? ?????? ???????? ?????" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "????????? ?????? ???????? ?????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:87 ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "??? ???????" #: ../../ipalib/plugins/cert.py:62 ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "?? ??????? ?????????? ?????????? ? ??????" #: ../../ipalib/plugins/cert.py:105 ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "??????? ??? ??? ??????????? ?????? ?? ???????????? ??????????? (CSR)" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" "??????? ??? ??? ??????????? ?????? ?? ???????????? ??????????? (CSR): %s" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" "????????????? ????? ?????? ??? ????? ??????????? (????????? HTTP/test." "example.com)" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "??????????? ?????? ????????????? ?????, ???? ???? ?? ?????" #: ../../ipalib/plugins/cert.py:192 ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "??????" #: ../../ipalib/plugins/cert.py:196 ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "???????? ?????" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "??. ??????" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "???? ??????" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "???????? ?????????? ????? ??? ??????????????? ????? ? ????????? 0x" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "??????? ???????????" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "???????????" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "????????" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "??????? ??????????? ??????????? (0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "??????????? ?????????" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "???????" #: ../../ipalib/plugins/baseldap.py:115 msgid "Add an attribute/value pair. Format is attr=value" msgstr "?????? ???? ???????-????????. ??????: ???????=????????" #: ../../ipalib/plugins/baseldap.py:120 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "" "?????????? ??? ???????? ???? ?????-????????. ??????: ???????=????????" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "type, filter, subtree ? targetgroup ? ????????????????" #: ../../ipalib/plugins/aci.py:112 msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" msgstr "" "???? ??????? ???? ? ???? ?: type, filter, subtree, targetgroup, attrs ??? " "memberof" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "group ? taskgroup ? ????????????????" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "???? ??????? group ??? taskgroup" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "????? ? ?????? ?%s? ?? ?????" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "?? ???????? ACI ? ?????? ?%s?" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACI" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "????? ACI" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "????? ???????" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "????? ???????, ?? ???? ????? ?????? ACI" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "????? ????????????" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "????? ????????????, ?? ???? ????? ?????? ACI" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "????? ???????" #: ../../ipalib/plugins/aci.py:222 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, " "selfwrite, all)" msgstr "" "????????????? ?????? ?????? ???? ???????, ??? ???? ?????? (read, write, " "add, delete, selfwrite, all)" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "????????" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "?????? ?????????, ????????????? ??????" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "???" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "??? ??????? IPA (??????????, ?????, ?????)" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "???????" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "??????? ?????" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "??????" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "??????????? ?????? LDAP (?????????, ou=Engineering)" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "?????????" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "?????????, ?? ????? ???? ??????????? ACI" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "??????? ?????" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "?????, ?? ???? ???? ??????????? ACI" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "???????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "???????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "??????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "??????????? ????????????? %(count)d ACI" msgstr[1] "??????????? ????????????? %(count)d ACI" msgstr[2] "??????????? ????????????? %(count)d ACI" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "????????? ????????? ??????? ??????? ??????? ???????????" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "????. ????? ???" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "???????????? ????? ??? ??????" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "????. ??? ??????????" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "???????????? ???, ???????? ????? ??????? ??????????" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "????" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "????? ???? (FQDN)" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "???????? ?????? ????" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "?????? ??????????? ????? ??????????????" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "???????? ????? SOA" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "????????? SOA" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "?????????? ?????? SOA" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "???????????? SOA" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "??????????? SOA" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "????? ??? SOA" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "???? SOA" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "????????? ????????? ??????????" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "??????? ????????? BIND" #: ../../ipalib/plugins/dns.py:393 ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "????? ????" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "????? ???????" #: ../../ipalib/plugins/dns.py:472 ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "??? ??????" #: ../../ipalib/plugins/dns.py:476 ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "????" #: ../../ipalib/plugins/dns.py:477 ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "?????????? ??? ???? ????" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "????? ???" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "????" #: ../../ipalib/plugins/dns.py:582 ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "????? ???????" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "???????? ??????" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "?????????? ??? ???? ????" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "?????? ??????????????" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "?????" #: ../../ipalib/plugins/automount.py:225 msgid "Aautomount map name" msgstr "????? ????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "????" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "????? ????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "?????????? ???? ??????????" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "????" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "????? ??????????????" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "????? ??????????" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "??????????? ?????" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "" "????? ???????????? ????? ?????????????? (?????? ????????: auto.master)" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "???????? ?????" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "????? ????????? ?????" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "???? ????????? ?????" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "????? ?????? NIS" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "?????-???????" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "????????? ?????" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d ???????" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "??????????? %(count)d ???????" msgstr[1] "??????????? %(count)d ???????" msgstr[2] "??????????? %(count)d ????????" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "??????????" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "??'?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "????????" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "???? GECOS" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "???????? ?????" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "????????????? ????? Kerberos" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "?????? ??. ?????" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "??????" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "?????????? ?????? ???????????" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "UID (?? ????????? ????? ????????? ????? ?????????? ???????? ??????)" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "?????? ? ???????" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "???????? ?????" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "????? ?????" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "????? ???????" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "?????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "???????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "??????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "??????????? ????????????? %(count)d ???????????" msgstr[1] "??????????? ????????????? %(count)d ????????????" msgstr[2] "??????????? ????????????? %(count)d ????????????" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "??????????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "???????????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "????? ???????" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "????? ????? ???????" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "???? ????? ???????" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "????? ?????-????????" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "?????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "???????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "??????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ???????" msgstr[1] "??????????? ????????????? %(count)d ???? ???????" msgstr[2] "??????????? ????????????? %(count)d ???? ???????" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "????? ??????" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "????? ??????" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "????? ????? ??????" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "???? ???? ????? ??????" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "?????-????????" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "????? ??????-????????" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "?????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "???????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "??????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ??????" msgstr[1] "??????????? ????????????? %(count)d ???? ??????" msgstr[2] "??????????? ????????????? %(count)d ???? ??????" #: ../../ipalib/plugins/pwpolicy.py:121 ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "?????" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "????. ????? ??? (? ????)" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "???????????? ????? ??? ?????? (? ????)" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "???. ????? ??? (? ???????)" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "??????????? ????? ??? ?????? (? ???????)" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "?????? ???????" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "?????? ??????? ???????" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "????? ????????" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "?????????? ????????? ?????? ????????" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "???. ???????" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "?????????? ??????? ??????" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "?????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:174 ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "?????, ??? ???? ?????????????? ???????" #: ../../ipalib/plugins/pwpolicy.py:179 ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "?????????" #: ../../ipalib/plugins/pwpolicy.py:180 ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "????????? ?????? (?????? ????? ? ?????? ?????????)" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "??????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "??? ????????? ?????? ?? ???? ????????????? ??????????" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "???????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "????? ??? ?????? ??????" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "??????????" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "???????? ???????, ??????????? ?? ????????? ???????????" #: ../../ipaserver/install/certs.py:576 ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "?? ??????? ?????????? ?????? ? CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form \"%" "(subject_base)s\"" msgstr "" "?????? ?????? ?%(request_subject)s? ??????? ? ?????, ????????? ??? " "?%(subject_base)s?" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "?? ??????? ?????????? csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "??? ??? ???????" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "?? ??????? ???????? ????????? ???????? ?????" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "??????? certutil" From jdennis at redhat.com Tue Mar 16 12:45:45 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 16 Mar 2010 08:45:45 -0400 Subject: [Freeipa-devel] [PATCH 11/11] Add Ukrainian translations Message-ID: <201003161245.o2GCjjpF006782@int-mx03.intmail.prod.int.phx2.redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0011-Add-Ukrainian-translations.patch Type: text/x-patch Size: 52759 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 16 14:46:13 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:46:13 +0100 Subject: [Freeipa-devel] [PATCH] Add INTERNAL flag to frontend plugins. If set, the plugin won't show up in UI. Message-ID: <4B9F99B5.4070309@redhat.com> We discussed this with Jason on IRC. There are cases when a defining an internal command plugin might come in handy. The plugin can be used by other plugin (for example to create "helper" objects in LDAP like Class of Service entries). Pavel From pzuna at redhat.com Tue Mar 16 14:48:13 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:48:13 +0100 Subject: [Freeipa-devel] [PATCH] Don't escape DN characters between quotes in attribute values. Message-ID: <4B9F9A2D.7060002@redhat.com> This makes it possible to create DNs as required by some class of service plugins, where the DN actually contains another DN in quotes. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Don-t-escape-DN-characters-between-quotes-in-attribu.patch Type: application/mbox Size: 939 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 16 14:49:23 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:49:23 +0100 Subject: [Freeipa-devel] Use ldap2.make_*dn* methods in pwpolicy plugin. Message-ID: <4B9F9A73.6080206@redhat.com> Fixes bug #572423 (Providing multiple group names in pwpolicy-show command throws internal serer error.) Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Use-ldap2.make_-dn-methods-in-pwpolicy-plugin.patch Type: application/mbox Size: 1180 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 16 14:50:43 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:50:43 +0100 Subject: [Freeipa-devel] [PATCH] Enable LDAPObject subclasses to disable DN normalization in their methods. Message-ID: <4B9F9AC3.9070100@redhat.com> New attribute in LDAPObject: normalize_dn Defaults to True. If False, LDAP* methods won't normalize DNs before passing them to python-ldap. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Enable-LDAPObject-subclasses-to-disable-DN-normaliza.patch Type: application/mbox Size: 4936 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 16 14:51:10 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:51:10 +0100 Subject: [Freeipa-devel] [PATCH] Add INTERNAL flag to frontend plugins. If set, the plugin won't show up in UI. In-Reply-To: <4B9F99B5.4070309@redhat.com> References: <4B9F99B5.4070309@redhat.com> Message-ID: <4B9F9ADE.9030408@redhat.com> Pavel Zuna wrote: > We discussed this with Jason on IRC. There are cases when a defining an > internal command plugin might come in handy. The plugin can be used by > other plugin (for example to create "helper" objects in LDAP like Class > of Service entries). > > Pavel > Forgot to attach patch. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-INTERNAL-flag-to-frontend-plugins.-If-set-the-pl.patch Type: application/mbox Size: 1742 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 16 14:53:04 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 16 Mar 2010 15:53:04 +0100 Subject: [Freeipa-devel] Use ldap2 instead of legacy LDAP code from v1 in installer scripts. Message-ID: <4B9F9B50.7070103@redhat.com> This is the first in a series of patches, that replace all the legacy code from v1 related to LDAP. I did some limited testing of the installer after this patch and nothing seems to break, but I didn't do replicas etc... Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Use-ldap2-instead-of-legacy-LDAP-code-from-v1-in-ins.patch Type: application/mbox Size: 24192 bytes Desc: not available URL: From jdennis at redhat.com Tue Mar 16 15:15:57 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 16 Mar 2010 11:15:57 -0400 Subject: [Freeipa-devel] Use ldap2.make_*dn* methods in pwpolicy plugin. In-Reply-To: <4B9F9A73.6080206@redhat.com> References: <4B9F9A73.6080206@redhat.com> Message-ID: <4B9FA0AD.7000504@redhat.com> Pavel, when sending a patch please make sure your subject starts with [PATCH] so mail filters work, Thanks! -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Tue Mar 16 18:00:05 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 14:00:05 -0400 Subject: [Freeipa-devel] [PATCH 11/11] Add Ukrainian translations In-Reply-To: <201003161245.o2GCjjpF006782@int-mx03.intmail.prod.int.phx2.redhat.com> References: <201003161245.o2GCjjpF006782@int-mx03.intmail.prod.int.phx2.redhat.com> Message-ID: <4B9FC725.40301@redhat.com> John Dennis wrote: > > > ------------------------------------------------------------------------ > > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-devel pushed to master From rcritten at redhat.com Tue Mar 16 18:00:15 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 14:00:15 -0400 Subject: [Freeipa-devel] [PATCH 9/9] remove .pot target from Makefile.in In-Reply-To: <1268172441-8314-1-git-send-email-jdennis@redhat.com> References: <1268172441-8314-1-git-send-email-jdennis@redhat.com> Message-ID: <4B9FC72F.3040700@redhat.com> John Dennis wrote: > This is a multi-part message in MIME format. > --------------1.6.6.1 > Content-Type: text/plain; charset=UTF-8; format=fixed > Content-Transfer-Encoding: 8bit > > > We want to manually make the .pot file, we shouldn't have anything > in the Makefile which will cause the .pot file to be rebuilt > because of dependencies. > --- > install/po/Makefile.in | 3 --- > 1 files changed, 0 insertions(+), 3 deletions(-) > > > --------------1.6.6.1 > Content-Type: text/x-patch; name="0009-remove-.pot-target-from-Makefile.in.patch" > Content-Transfer-Encoding: 8bit > Content-Disposition: attachment; filename="0009-remove-.pot-target-from-Makefile.in.patch" > > diff --git a/install/po/Makefile.in b/install/po/Makefile.in > index f696c17..8cb5789 100644 > --- a/install/po/Makefile.in > +++ b/install/po/Makefile.in > @@ -185,9 +185,6 @@ create-po: $(DOMAIN).pot > fi; \ > done > > -$(DOMAIN).pot: $(POTFILES) > - $(MAKE) update-pot > - > update-po: update-pot > $(MAKE) all > > > --------------1.6.6.1-- > ack, pushed to master rob From rcritten at redhat.com Tue Mar 16 18:26:42 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 14:26:42 -0400 Subject: [Freeipa-devel] [PATCH] Enable LDAPObject subclasses to disable DN normalization in their methods. In-Reply-To: <4B9F9AC3.9070100@redhat.com> References: <4B9F9AC3.9070100@redhat.com> Message-ID: <4B9FCD62.20301@redhat.com> Pavel Zuna wrote: > New attribute in LDAPObject: normalize_dn > > Defaults to True. If False, LDAP* methods won't normalize DNs before > passing them to python-ldap. > > Pavel > This also makes entries returned by LDAPSearch a list instead of a tuple. What is the purpose of that? rob From rcritten at redhat.com Tue Mar 16 20:04:22 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 16:04:22 -0400 Subject: [Freeipa-devel] Use ldap2 instead of legacy LDAP code from v1 in installer scripts. In-Reply-To: <4B9F9B50.7070103@redhat.com> References: <4B9F9B50.7070103@redhat.com> Message-ID: <4B9FE446.1090903@redhat.com> Pavel Zuna wrote: > This is the first in a series of patches, that replace all the legacy > code from v1 related to LDAP. I did some limited testing of the > installer after this patch and nothing seems to break, but I didn't do > replicas etc... > > Pavel A couple of comments: - We return ACIError when a bind fails? Seems like we should throw some other exception in this case. - In ipa-fix-CVE-2008-3274 (which as an aside I'm not sure we need to carry to IPAv2) you may need to change the reference to ipapython.config.config.default_server[0]. I'm not sure this is going to do the right thin. - Is the mod from ipa-fix-CVE-2008-3274 going to do a delete/add or a replace? I think it needs to be a replace so this attribute may need to be added to the replace exception list. I think it might be covered because we are doing just one operation on it. - In ipa-server-install you added an import for ipalib.util but it doesn't seem to be used anywhere. None of these are show stoppers. I'll continue looking at the patch, this one is going to take a while to test out. rob From rcritten at redhat.com Tue Mar 16 21:24:41 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 17:24:41 -0400 Subject: [Freeipa-devel] [PATCH] 408 fix typo Message-ID: <4B9FF719.4080309@redhat.com> I fixed a typo in a doc string in automount.py for bug 573939. I pushed this under the 1-liner rule (even though the updated pot was a bit more than 1 line). rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-408-typo.patch Type: application/mbox Size: 9253 bytes Desc: not available URL: From rcritten at redhat.com Tue Mar 16 21:57:53 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 16 Mar 2010 17:57:53 -0400 Subject: [Freeipa-devel] [PATCH] 372 check for group but no user Message-ID: <4B9FFEE1.3070600@redhat.com> Handle the case where the DS group exists but the user does not If the group exists but the user doesn't then useradd blows up trying to create the user and group. So test to see if the group exists and if it does pass along the -g argument to useradd. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-372-dsuser.patch Type: application/mbox Size: 1594 bytes Desc: not available URL: From admin at transifex.net Tue Mar 16 22:02:25 2010 From: admin at transifex.net (admin at transifex.net) Date: Tue, 16 Mar 2010 22:02:25 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100316220225.20012.43059@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by yurchor Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # # Yuri Chornoivan , 2010. msgid "" msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject." "org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-03-16 17:21-0400\n" "PO-Revision-Date: 2010-03-17 00:01+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.0\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "?????????? ???" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "????? ??????????????? ???? ???? ????????" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "??? ??????????? True ??? False" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "??? ???? ????? ??????" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "??? ???? ??????, ?? ?????? ?? %(minvalue)d" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "?? ???? ???????????? %(maxvalue)d" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "??? ???? ?????????? ??????" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "??? ???? ??????, ?? ?????? ?? %(minvalue)f" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "?? ???? ???????????? %(maxvalue)f" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "??? ??????????? ??????? ?%(pattern)s?" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "??? ???? ????????? ??????" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "??? ???? ????????, ?? ????? ?? %(minlength)d ??????" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "?? ??????? ???????????? ?? ???????? %(maxlength)d ??????" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "??? ???? ???????? ????? ? %(length)d ??????" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "??? ???? ??????? ? Unicode" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "??? ???? ?? ?????? ?? %(minlength)d ???????? ????????" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "?? ??????? ???????????? %(maxlength)d ???????? ? ???????" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "??? ???? ????? %(length)d ???????? ? ???????" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "??? ???? ????? ?? ????? ???????: %(values)r" #: ../../ipalib/output.py:92 msgid "A dictionary representing an LDAP entry" msgstr "???????, ?? ?????????? ?????? LDAP" #: ../../ipalib/output.py:100 msgid "A list of LDAP entries" msgstr "?????? ??????? LDAP" #: ../../ipalib/output.py:111 msgid "All commands should at least have a result" msgstr "????????? ???? ?????? ??? ?????????? ?? ??????? ??????????" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "??????? %(label)s ?? ??? ??? ?????????: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "?????? ?? ??????????!" #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "?????????." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "" "?????? ??????????? ????????. ????????? ??????? ????????? ???????? ??????." #: ../../ipalib/frontend.py:785 msgid "retrieve all attributes" msgstr "???????? ??? ????????" #: ../../ipalib/frontend.py:790 msgid "print entries as stored on the server" msgstr "??????? ?????? ? ?????, ? ???? ???? ???????????? ?? ???????" #: ../../ipalib/frontend.py:883 msgid "Forward to server instead of running locally" msgstr "?????????????? ?? ?????? ??????? ?????????? ?????????" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "?????? %(cver)s ? ?????????? ? ???????? %(sver)s ?? %(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "%(server)s ?????????? ??? ???????? ??????? %(code)d: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "??????? ????????? ???????" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "?? ??????? %(server)r ??????? ????????? ???????" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "???????? ??????? %(name)r" #: ../../ipalib/errors.py:386 ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "??????? ?? ??????? %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "?? ??????? ?????????? ????????? ? %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "??????????? ????? JSON-RPC: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "??????? Kerberos: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "?? ???????? ????????????? ????? Kerberos" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "? ???? ????? Kerberos ?? ???????? ?????? %(service)r" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "?? ???????? ???? ????????????? ?????" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "????? ????? ??? ??????" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "????????? ????? ??????? ?? ???? ????????????? ?????" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "?????????? ?????? ???? ????????????? ?????" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "?? ??????? ????????? KDC ??? ??????? ??????? (realm)" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "?????????? ????? ??? ???????: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "??????? %(name)r ?? ??????? ?????? ??????????" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "??????? %(name)r ??????? ?? ?????? %(count)d ?????????" msgstr[1] "??????? %(name)r ??????? ?? ?????? %(count)d ??????????" msgstr[2] "??????? %(name)r ??????? ?? ?????? %(count)d ??????????" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "?????????? ?????????? ? ??????????: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "???? ??????? %(name)r" #: ../../ipalib/errors.py:706 ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "?????????? %(name)r: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "api ?? ????? ?????? ???????? ????: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "?????? ?? ??????????" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "??????? ?? ???????????" #: ../../ipalib/errors.py:783 ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "??? ????? ??? ?????" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "??? ???????? ?????? ?????, ??? ???? ????????????? ?????" #: ../../ipalib/errors.py:831 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: %" "(reason)s" msgstr "" "????????? ????? ?????? ??????? ? ?????, ????????? ???: ??????/????? ????? " "?????: %(reason)s" #: ../../ipalib/errors.py:847 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" "??????? ??? ?????????? ?????? ?? ?????????? ? ??????? ????? ??????? IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "??? ????????? ???? ??????? ???????? ????? ??????? ??????????? root" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "??? ? posix-??????" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "" "????????? ????? ??????? ? ?????, ????????? ??? ??????????@???????: %" "(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "??? ????? ??? ????????????" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "??? ????? ??? ???????????" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" "??? ????? ?????? ??????????? ??????? nsAccountLock, ????? ?? ????? " "??????????? ??? ????????????" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "??? ????? ?? ? ????????? ?????" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "????? ?? ???? ???? ????????? ????? ????" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "??? ????? ??? ? ????????? ?????" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "??????? ??????????? Base64: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "????? ?? ???? ???? ?????? ?? ??????? ????? ????" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "?? ????? ???????? ?????? ????? ????????????" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "?? ???????? ?? ???????, ?? ?????? ??????? %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "????? ?????????? ? ????? ???????? ??????" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "???? ?? ???????" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "??? ??????? ?????????? ?????????" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "?? ??????? ????????? ??? ? ????????????: %(error)s" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "????. ??????? ????? ???????????" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "?????? ???????? ?????????" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "?????? ?????? ???????? ?????????" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "?????? ????????" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "?????? ???????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "?????? ????? ????????????" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "?????? ????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "??????? ????? ??. ?????" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "??????? ????? ??????????? ????? ??? ????? ????????????" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "????????? ???? ??????" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" "???????????? ???????? ???? (? ????????) ??? ????????? ?????? ??? ? ?????? (-" "1 ? ??? ????????)" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "????????? ??????? ??????" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "??????????? ????????? ??????? ??????????? ?????? (-1 ? ??? ????????)" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "???? ?????? ????????????" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" "????????????? ?????? ?????? ?????, ?? ????? ???????????????? ????? " "????????????" #: ../../ipalib/plugins/config.py:88 msgid "A comma-separated list of fields to search when searching for groups" msgstr "" "????????????? ?????? ?????? ?????, ?? ????? ???????????????? ????? ????" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "????? ????????" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "????????? ????? ????????" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "??????? ?????? ????????????" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "?????? ??? ????????? ??????? ???????? ???????????? (OU=Test,O=Example)" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "????? ?????" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "????? ????? ?????" #: ../../ipalib/plugins/rolegroup.py:53 ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "????" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "???? ???? ????? ?????" #: ../../ipalib/plugins/rolegroup.py:57 ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "?????-????????" #: ../../ipalib/plugins/rolegroup.py:61 ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "???????????-????????" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "??????? ????? ???????" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "?????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "???????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "??????? ????? ????? ?%(value)s?" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ?????" msgstr[1] "??????????? ????????????? %(count)d ???? ?????" msgstr[2] "??????????? ????????????? %(count)d ???? ?????" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "?????" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "????? ?????" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "???? ????? ?????" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "??????" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "?????? ???????????? ????? (?????????, ?????, ????????)" #: ../../ipalib/plugins/host.py:87 ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "????????????" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "???????????? ????? (?????????, ?Lab 2?)" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "?????????" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "???????? ????????? ????? (?????????, ?Lenovo T61?)" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "?????????? ???????" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "?????????? ??????? ????? ? ?? ?????? (?????????, ?Fedora 9\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "?????? ???????????" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "?????? ??? ?????????? ????????? ?????????????? ????????" #: ../../ipalib/plugins/host.py:107 ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "??????????" #: ../../ipalib/plugins/host.py:108 ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "?????????? ??????? ? ????????? Base-64" #: ../../ipalib/plugins/host.py:111 ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "????? ?????????????? ??????" #: ../../ipalib/plugins/host.py:115 ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "??????? ????? ??????" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "??????? ????????? ?????" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "??????? ????? ?????" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "?????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "???????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "??????? ????? ?%(value)s?" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "????? ?????????????? ?????? Kerberos ??? ????? ?????" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "??????????? ????????????? %(count)d ?????" msgstr[1] "??????????? ????????????? %(count)d ??????" msgstr[2] "??????????? ????????????? %(count)d ??????" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "????? ????????????" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "????? ?????" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "???? ?????" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "GID (?? ????????? ????? ????????? ????? ?????????? ???????? ??????)" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "????????? ????????" #: ../../ipalib/plugins/group.py:80 ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "???????????" #: ../../ipalib/plugins/group.py:84 ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "?????" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "?????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "???????? ?? ????? posix?" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "???????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "??????? ????? ?%(value)s?" #: ../../ipalib/plugins/group.py:151 msgid "change to posix group" msgstr "??????? ?? ????? posix" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "??????????? ????????????? %(count)d ?????" msgstr[1] "??????????? ????????????? %(count)d ????" msgstr[2] "??????????? ????????????? %(count)d ????" #: ../../ipalib/plugins/migration.py:40 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" "????????????? ????? Kerberos %s ??? ?????. ????????????? ???????? ?ipa " "user-mod?, ??? ?????????? ???? ????????? ??????." #: ../../ipalib/plugins/migration.py:41 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" "?? ??????? ?????? ??????????? ?? ??????? ?????. ?????? ??????????? ?????? " "????? ?? ????????? ??????? ?ipa group-add-member?." #: ../../ipalib/plugins/migration.py:165 msgid "LDAP URI" msgstr "URI LDAP" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI of DS server to migrate from" msgstr "URI LDAP ??????? DS, ? ????? ????????????????? ????????" #: ../../ipalib/plugins/migration.py:170 msgid "bind password" msgstr "?????? ?????????" #: ../../ipalib/plugins/migration.py:177 msgid "Bind DN" msgstr "DN ??? ????'????" #: ../../ipalib/plugins/migration.py:183 msgid "User container" msgstr "????????? ????????????" #: ../../ipalib/plugins/migration.py:184 msgid "RDN of container for users in DS" msgstr "RDN ?????????? ???????????? ? DS" #: ../../ipalib/plugins/migration.py:190 msgid "Group container" msgstr "????????? ????" #: ../../ipalib/plugins/migration.py:191 msgid "RDN of container for groups in DS" msgstr "RDN ?????????? ???? ? DS" #: ../../ipalib/plugins/migration.py:200 msgid "Lists of objects migrated; categorized by type." msgstr "?????? ????????, ???????? ???? ????????; ????????????? ?? ??????." #: ../../ipalib/plugins/migration.py:204 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" "?????? ????????, ???????? ???? ?? ??????? ????????; ????????????? ?? ??????." #: ../../ipalib/plugins/migration.py:208 msgid "False if migration mode was disabled." msgstr "False, ???? ????? ???????? ???? ????????." #: ../../ipalib/plugins/migration.py:212 #, python-format msgid "comma-separated list of %s to exclude from migration" msgstr "?????? %s, ????????????? ??????, ??? ???? ????????? ? ??????? ????????" #: ../../ipalib/plugins/migration.py:214 msgid "" "search results for objects to be migrated\n" "have been truncated by the server;\n" "migration process might be uncomplete\n" msgstr "" "?????? ??????????? ?????? ???????? ????????\n" "???? ???????? ????????; ????????,\n" "?????? ???????? ?? ?????????\n" #: ../../ipalib/plugins/migration.py:219 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" "????? ???????? ????????. ????????????? ???????? ?ipa config-mod?, ??? " "????????? ????." #: ../../ipalib/plugins/migration.py:222 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" "with clear text passwords. All migrated users need to\n" "login at https://your.domain/ipa/migration/ before they\n" "can use their Kerberos accounts." msgstr "" "???????? ??????? ??????? ????????? ? ??????? ?? ?????????.\n" "IPA ?? ???????? ???????? ????? Kerberos, ???? ?? ????\n" "?????? ????????? ???????. ???? ???????????? ? ????????????\n" "????????, ?????????? ?????? ????????????? ??\n" "https://your.domain/ipa/migration/ ?? ????, ?? ???? ???????\n" "???????????? ?????????? ???????? Kerberos." #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "??????" #: ../../ipalib/plugins/service.py:121 ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "????????????? ?????" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "????????????? ????? ??????" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "?????? ?????? ?%(value)s?" #: ../../ipalib/plugins/service.py:144 msgid "force principal name even if not in DNS" msgstr "" "????????? ???????? ????? ?????????????? ??????, ?????? ???? ????? ????? ? DNS" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "???????? ?????? ?%(value)s?" #: ../../ipalib/plugins/passwd.py:37 ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "??'? ???????????" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "????? ???????" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "??? ??????? (????????? (allow) ?? ?????????? (deny))" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "????? ??????" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "????? ??????, ?? ???? ?????????????? ??????? (?????????, ssh)" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "????????? ????????????" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "????????? ????????????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "????????? ??????" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "????????? ??????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "????????? ?????? ???????? ?????" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "????????? ?????? ???????? ?????, ?? ???? ?????????????? ???????" #: ../../ipalib/plugins/hbac.py:87 ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "??? ???????" #: ../../ipalib/plugins/cert.py:62 ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "?? ??????? ?????????? ?????????? ? ??????" #: ../../ipalib/plugins/cert.py:105 ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "??????? ??? ??? ??????????? ?????? ?? ???????????? ??????????? (CSR)" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" "??????? ??? ??? ??????????? ?????? ?? ???????????? ??????????? (CSR): %s" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" "????????????? ????? ?????? ??? ????? ??????????? (????????? HTTP/test." "example.com)" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "??????????? ?????? ????????????? ?????, ???? ???? ?? ?????" #: ../../ipalib/plugins/cert.py:192 ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "??????" #: ../../ipalib/plugins/cert.py:196 ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "???????? ?????" #: ../../ipalib/plugins/cert.py:204 ../../ipalib/plugins/misc.py:46 msgid "Dictionary mapping variable name to value" msgstr "???????????? ????? ??????? ?? ???????? ?? ?????????" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "??. ??????" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "???? ??????" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "???????? ?????????? ????? ??? ??????????????? ????? ? ????????? 0x" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "??????? ???????????" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "???????????" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "????????" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "??????? ??????????? ??????????? (0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "??????????? ?????????" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "???????" #: ../../ipalib/plugins/baseldap.py:74 #, python-format msgid "container entry (%(container)s) not found" msgstr "?? ???????? ????? ?????????? (%(container)s)" #: ../../ipalib/plugins/baseldap.py:75 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "%(parent)s: ?? ???????? %(oname)s" #: ../../ipalib/plugins/baseldap.py:76 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "%(pkey)s: ?? ???????? %(oname)s" #: ../../ipalib/plugins/baseldap.py:126 msgid "Add an attribute/value pair. Format is attr=value" msgstr "?????? ???? ???????-????????. ??????: ???????=????????" #: ../../ipalib/plugins/baseldap.py:131 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "?????????? ??? ???????? ???? ?????-????????. ??????: ???????=????????" #: ../../ipalib/plugins/baseldap.py:318 msgid "the entry was deleted while being modified" msgstr "????? ???? ???????? ??? ??? ???????? ????" #: ../../ipalib/plugins/baseldap.py:426 msgid "Members that could not be added" msgstr "????????, ?????? ???? ?? ??????? ??????" #: ../../ipalib/plugins/baseldap.py:430 msgid "Number of members added" msgstr "????????? ??????? ?????????" #: ../../ipalib/plugins/baseldap.py:502 msgid "Number of members removed" msgstr "????????? ????????? ?????????" #: ../../ipalib/plugins/baseldap.py:506 msgid "Members that could not be removed" msgstr "????????, ?????? ???? ?? ??????? ????????" #: ../../ipalib/plugins/aci.py:81 msgid "A list of ACI values" msgstr "?????? ??????? ACI" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "type, filter, subtree ? targetgroup ? ????????????????" #: ../../ipalib/plugins/aci.py:112 msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" msgstr "" "???? ??????? ???? ? ???? ?: type, filter, subtree, targetgroup, attrs ??? " "memberof" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "group ? taskgroup ? ????????????????" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "???? ??????? group ??? taskgroup" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "????? ? ?????? ?%s? ?? ?????" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "?? ???????? ACI ? ?????? ?%s?" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACI" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "????? ACI" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "????? ???????" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "????? ???????, ?? ???? ????? ?????? ACI" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "????? ????????????" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "????? ????????????, ?? ???? ????? ?????? ACI" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "????? ???????" #: ../../ipalib/plugins/aci.py:222 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, " "selfwrite, all)" msgstr "" "????????????? ?????? ?????? ???? ???????, ??? ???? ?????? (read, write, add, " "delete, selfwrite, all)" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "????????" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "?????? ?????????, ????????????? ??????" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "???" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "??? ??????? IPA (??????????, ?????, ?????)" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "???????" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "??????? ?????" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "??????" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "??????????? ?????? LDAP (?????????, ou=Engineering)" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "?????????" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "?????????, ?? ????? ???? ??????????? ACI" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "??????? ?????" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "?????, ?? ???? ???? ??????????? ACI" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "???????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "???????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "??????? ACI ?%(value)s?" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "??????????? ????????????? %(count)d ACI" msgstr[1] "??????????? ????????????? %(count)d ACI" msgstr[2] "??????????? ????????????? %(count)d ACI" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "????????? ????????? ??????? ??????? ??????? ???????????" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "????. ????? ???" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "???????????? ????? ??? ??????" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "????. ??? ??????????" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "???????????? ???, ???????? ????? ??????? ??????????" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "????" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "????? ???? (FQDN)" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "???????? ?????? ????" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "?????? ??????????? ????? ??????????????" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "???????? ????? SOA" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "????????? SOA" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "?????????? ?????? SOA" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "???????????? SOA" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "??????????? SOA" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "????? ??? SOA" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "???? SOA" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "????????? ????????? ??????????" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "??????? ????????? BIND" #: ../../ipalib/plugins/dns.py:393 ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "????? ????" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "????? ???????" #: ../../ipalib/plugins/dns.py:472 ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "??? ??????" #: ../../ipalib/plugins/dns.py:476 ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "????" #: ../../ipalib/plugins/dns.py:477 ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "?????????? ??? ???? ????" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "????? ???" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "????" #: ../../ipalib/plugins/dns.py:582 ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "????? ???????" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "???????? ??????" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "?????????? ??? ???? ????" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "?????? ??????????????" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "?????" #: ../../ipalib/plugins/automount.py:225 msgid "Automount map name" msgstr "????? ????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "????" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "????? ????? ????????????? ??????????" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "?????????? ???? ??????????" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "????" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "????? ??????????????" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "????? ??????????" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "??????????? ?????" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "????? ???????????? ????? ?????????????? (?????? ????????: auto.master)" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "???????? ?????" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "????? ????????? ?????" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "???? ????????? ?????" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "????? ?????? NIS" #: ../../ipalib/plugins/netgroup.py:68 msgid "IPA unique ID" msgstr "?????????? ??. IPA" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "?????-???????" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "????????? ?????" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d ???????" #: ../../ipalib/plugins/misc.py:50 msgid "Total number of variables env (>= count)" msgstr "????????? ??????? env (>= count)" #: ../../ipalib/plugins/misc.py:54 msgid "Number of variables returned (<= total)" msgstr "????????? ?????????? ??????? (<= ?????????)" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "??????????? %(count)d ???????" msgstr[1] "??????????? %(count)d ???????" msgstr[2] "??????????? %(count)d ????????" #: ../../ipalib/plugins/misc.py:103 msgid "Number of plugins loaded" msgstr "????????? ???????????? ????????" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "??????????" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "??'?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "????????" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "???? GECOS" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "???????? ?????" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "????????????? ????? Kerberos" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "?????? ??. ?????" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "??????" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "?????????? ?????? ???????????" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "UID (?? ????????? ????? ????????? ????? ?????????? ???????? ??????)" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "?????? ? ???????" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "???????? ?????" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "????? ?????" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "????? ???????" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "?????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "???????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "??????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "??????????? ????????????? %(count)d ???????????" msgstr[1] "??????????? ????????????? %(count)d ????????????" msgstr[2] "??????????? ????????????? %(count)d ????????????" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "??????????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "???????????? ??????????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "????? ???????" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "????? ????? ???????" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "???? ????? ???????" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "????? ?????-????????" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "?????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "???????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "??????? ????? ??????? ?%(value)s?" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ???????" msgstr[1] "??????????? ????????????? %(count)d ???? ???????" msgstr[2] "??????????? ????????????? %(count)d ???? ???????" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "????? ??????" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "????? ??????" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "????? ????? ??????" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "???? ???? ????? ??????" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "?????-????????" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "????? ??????-????????" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "?????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "???????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "??????? ????? ?????? ?%(value)s?" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "??????????? ????????????? %(count)d ????? ??????" msgstr[1] "??????????? ????????????? %(count)d ???? ??????" msgstr[2] "??????????? ????????????? %(count)d ???? ??????" #: ../../ipalib/plugins/pwpolicy.py:121 ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "?????" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "????. ????? ??? (? ????)" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "???????????? ????? ??? ?????? (? ????)" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "???. ????? ??? (? ???????)" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "??????????? ????? ??? ?????? (? ???????)" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "?????? ???????" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "?????? ??????? ???????" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "????? ????????" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "?????????? ????????? ?????? ????????" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "???. ???????" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "?????????? ??????? ??????" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "?????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:174 ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "?????, ??? ???? ?????????????? ???????" #: ../../ipalib/plugins/pwpolicy.py:179 ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "?????????" #: ../../ipalib/plugins/pwpolicy.py:180 ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "????????? ?????? (?????? ????? ? ?????? ?????????)" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "??????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "??? ????????? ?????? ?? ???? ????????????? ??????????" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "???????? ??????? ??? ????? ?%(value)s?" #: ../../ipalib/plugins/pwpolicy.py:280 msgid "Group to remove policy from" msgstr "?????, ??? ???? ??????????? ???????" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "????? ??? ?????? ??????" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "??????????" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "???????? ???????, ??????????? ?? ????????? ???????????" #: ../../ipaserver/install/certs.py:576 ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "?? ??????? ?????????? ?????? ? CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form \"%" "(subject_base)s\"" msgstr "" "?????? ?????? ?%(request_subject)s? ??????? ? ?????, ????????? ??? ?%" "(subject_base)s?" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "?? ??????? ?????????? csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "??? ??? ???????" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "?? ??????? ???????? ????????? ???????? ?????" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "??????? certutil" #: ../../ipaserver/plugins/join.py:54 msgid "The hostname to register as" msgstr "????? ????? ??? ??????????" #: ../../ipaserver/plugins/join.py:62 msgid "The IPA realm" msgstr "??????? IPA" #: ../../ipaserver/plugins/join.py:68 msgid "Hardware platform of the host (e.g. Lenovo T61)" msgstr "???????? ????????? ????? (?????????, ?Lenovo T61?)" #: ../../ipaserver/plugins/join.py:72 msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "?????????? ??????? ????? ? ?? ?????? (?????????, ?Fedora 9?)" From jderose at redhat.com Wed Mar 17 04:42:29 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Tue, 16 Mar 2010 22:42:29 -0600 Subject: [Freeipa-devel] [PATCH] 369 fix word usage in installer In-Reply-To: <4B69D53C.9000306@redhat.com> References: <4B69D53C.9000306@redhat.com> Message-ID: <1268800949.10908.752.camel@jgd-dsk> On Wed, 2010-02-03 at 14:57 -0500, Rob Crittenden wrote: > Proper use of "set up" vs "setup". > > rob > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-devel ack. pushed to master. From jderose at redhat.com Wed Mar 17 04:59:40 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Tue, 16 Mar 2010 22:59:40 -0600 Subject: [Freeipa-devel] [PATCH] 372 check for group but no user In-Reply-To: <4B9FFEE1.3070600@redhat.com> References: <4B9FFEE1.3070600@redhat.com> Message-ID: <1268801980.10908.772.camel@jgd-dsk> On Tue, 2010-03-16 at 17:57 -0400, Rob Crittenden wrote: > Handle the case where the DS group exists but the user does not > > If the group exists but the user doesn't then useradd blows up > trying to create the user and group. So test to see if the group > exists and if it does pass along the -g argument to useradd. > > rob ack. pushed to master. From jderose at redhat.com Wed Mar 17 05:17:22 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Wed, 17 Mar 2010 05:17:22 +0000 Subject: [Freeipa-devel] [PATCH] 392 retrieve schema using kerberos credentials In-Reply-To: <4B87F62D.30405@redhat.com> References: <4B87F62D.30405@redhat.com> Message-ID: <1268803047.10908.803.camel@jgd-dsk> On Fri, 2010-02-26 at 11:26 -0500, Rob Crittenden wrote: > Retrieve the LDAP schema using kerberos credentials. > > This is required so we can disable anonymous access in 389-ds. > > rob I'm getting a merge conflict with the migration plugin: error: patch failed: ipalib/plugins/migration.py:30 Sorry this patch slipped through the cracks for so long. From jdennis at redhat.com Wed Mar 17 13:35:22 2010 From: jdennis at redhat.com (John Dennis) Date: Wed, 17 Mar 2010 09:35:22 -0400 Subject: [Freeipa-devel] [PATCH 12/12] Update Ukrainian translations Message-ID: <201003171335.o2HDZMs8026645@int-mx08.intmail.prod.int.phx2.redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0012-Update-Ukrainian-translations.patch Type: text/x-patch Size: 17513 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 17 14:02:08 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 17 Mar 2010 10:02:08 -0400 Subject: [Freeipa-devel] [PATCH] 392 retrieve schema using kerberos credentials In-Reply-To: <1268803047.10908.803.camel@jgd-dsk> References: <4B87F62D.30405@redhat.com> <1268803047.10908.803.camel@jgd-dsk> Message-ID: <4BA0E0E0.2090900@redhat.com> Jason Gerard DeRose wrote: > On Fri, 2010-02-26 at 11:26 -0500, Rob Crittenden wrote: >> Retrieve the LDAP schema using kerberos credentials. >> >> This is required so we can disable anonymous access in 389-ds. >> >> rob > > I'm getting a merge conflict with the migration plugin: > > error: patch failed: ipalib/plugins/migration.py:30 > > Sorry this patch slipped through the cracks for so long. > Updated patch attached. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-392-2-bind.patch Type: application/mbox Size: 5056 bytes Desc: not available URL: From jdennis at redhat.com Wed Mar 17 14:37:37 2010 From: jdennis at redhat.com (John Dennis) Date: Wed, 17 Mar 2010 10:37:37 -0400 Subject: [Freeipa-devel] [PATCH 12/12] Update Ukrainian translations Message-ID: <201003171437.o2HEbbep014227@int-mx05.intmail.prod.int.phx2.redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0012-Update-Ukrainian-translations.patch Type: text/x-patch Size: 17789 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 17 14:58:58 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 17 Mar 2010 10:58:58 -0400 Subject: [Freeipa-devel] [PATCH 12/12] Update Ukrainian translations In-Reply-To: <201003171437.o2HEbbep014227@int-mx05.intmail.prod.int.phx2.redhat.com> References: <201003171437.o2HEbbep014227@int-mx05.intmail.prod.int.phx2.redhat.com> Message-ID: <4BA0EE32.20806@redhat.com> John Dennis wrote: > > > ------------------------------------------------------------------------ > > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-devel pushed to master From rcritten at redhat.com Wed Mar 17 19:03:44 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 17 Mar 2010 15:03:44 -0400 Subject: [Freeipa-devel] [PATCH] 409 configure CRL URI Message-ID: <4BA12790.9030102@redhat.com> Configure the CRL URI in dogtag. Also print out a restart message after applying the custom subject. It takes a while to restart dogtag and this lets the user know things are moving forward. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-409-dogtag.patch Type: application/mbox Size: 2266 bytes Desc: not available URL: From admin at transifex.net Wed Mar 17 19:59:40 2010 From: admin at transifex.net (admin at transifex.net) Date: Wed, 17 Mar 2010 19:59:40 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100317195940.13965.93330@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by raven Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # translation of pl.po to Polish # Piotr Dr?g , 2010. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" "newticket\n" "POT-Creation-Date: 2010-03-16 17:21-0400\n" "PO-Revision-Date: 2010-03-07 20:58+0100\n" "Last-Translator: Piotr Dr?g \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "niepoprawny typ" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "Dozwolona jest tylko jedna warto??" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "musi by? prawd? lub fa?szem" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "musi by? liczba ca?kowit?" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "musi wynosi? co najmniej %(minvalue)d" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "mo?e wynosi? co najwy?ej %(maxvalue)d" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "musi by? liczb? dziesi?tn?" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "musi wynosi? co najmniej %(minvalue)f" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "mo?e wynosi? co najwy?ej %(maxvalue)f" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "musi pasowa? do wzorca \"%(pattern)s\"" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "musi by? danymi binarnymi" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "musi wynosi? co najmniej %(minlength)d bajt?w" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "mo?e wynosi? co najwy?ej %(maxlength)d bajt?w" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "musi wynosi? dok?adnie %(length)d bajt?w" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "musi by? tekstem w unikodzie" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "musi wynosi? co najmniej %(minlength)d znak?w" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "mo?e wynosi? co najwy?ej %(maxlength)d znak?w" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "musi wynosi? dok?adnie %(length)d znak?w" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "musi by? jednym z %(values)r" #: ../../ipalib/output.py:92 msgid "A dictionary representing an LDAP entry" msgstr "S?ownik reprezentuj?cy wpis LDAP" #: ../../ipalib/output.py:100 msgid "A list of LDAP entries" msgstr "Lista wpis?w LDAP" #: ../../ipalib/output.py:111 msgid "All commands should at least have a result" msgstr "Wszystkie polecenia powinny powiada? przynajmniej wynik" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "Prosz? poda? %(label)s ponownie, aby sprawdzi?: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "Has?a si? nie zgadzaj?." #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "Anulowano." #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "" "Wyniki zosta?y obci?te, prosz? spr?bowa? bardziej konkretnego wyszukiwania" #: ../../ipalib/frontend.py:785 msgid "retrieve all attributes" msgstr "odbi?r wszystkich atrybut?w" #: ../../ipalib/frontend.py:790 msgid "print entries as stored on the server" msgstr "wy?wietlenie wpis?w przechowywanych w serwerze" #: ../../ipalib/frontend.py:883 msgid "Forward to server instead of running locally" msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" "klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na %" "(server)r" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "nieznany b??d %(code)d z %(server)s: %(error)s" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "wyst?pi? wewn?trzny b??d" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "wyst?pi? wewn?trzny b??d w serwerze na %(server)r" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "nieznane polecenie %(name)r" #: ../../ipalib/errors.py:386 ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "b??d w serwerze %(server)r: %(error)s" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "nie mo?na po??czy? si? z %(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "Nieprawid?owe ??danie JSON-RPC: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "B??d Kerberosa: %(major)s/%(minor)s" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "nie otrzymano danych uwierzytelniaj?cych Kerberosa" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "Nie odnaleziono us?ugi %(service)r w bazie danych Kerberosa" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "Nie odnaleziono pami?ci podr?cznej danych uwierzytelniaj?cych" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "Zg?oszenie wygas?o" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "" "Uprawnienia pami?ci podr?cznej danych uwierzytelniaj?cych s? niepoprawne" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "B??dny format w pami?ci podr?cznej danych uwierzytelniaj?cych" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "Nie mo?na rozwi?za? KDC dla ??danego obszaru" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "Niewystarczaj?cy dost?p: %(info)s" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "polecenie %(name)r nie przyjmuje parametr?w" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametr" msgstr[1] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametry" msgstr[2] "polecenie %(name)r przyjmuje co najwy?ej %(count)d parametr?w" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "pokrywanie parametr?w i opcji: %(names)r" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "%(name)r jest wymagane" #: ../../ipalib/errors.py:706 ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "nieprawid?owe %(name)r: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "API nie posiada takiej przestrzeni nazw: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "Has?a si? nie zgadzaj?" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "Polecenie nie jest zaimplementowane" #: ../../ipalib/errors.py:783 ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "Ten wpis ju? istnieje" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "Nale?y zapisa? si? do komputera, aby utworzy? jego us?ug?" #: ../../ipalib/errors.py:831 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: %" "(reason)s" msgstr "" "Naczelnik us?ugi nie jest w formacie: us?uga/w pe?ni kwalifikowana nazwa " "komputera: %(reason)s" #: ../../ipalib/errors.py:847 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "Obszar naczelnika nie zgadza si? z obszarem dla tego serwera IPA" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "Te polecenie wymaga dost?pu roota" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "To jest ju? grupa POSIX" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "Naczelnik nie jest w formacie u?ytkownik at OBSZAR: %(principal)r" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "Ten wpis jest ju? odblokowany" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "Ten wpis jest ju? zablokowany" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" "Ten wpis posiada ustawione nsAccountLock, nie mo?e by? zablokowany lub " "niezablokowany" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "Ten wpis nie jest elementem grupy" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "Grupa nie mo?e by? w?asnym elementem" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "Ten wpis jest ju? elementem grupy" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "Dekodowanie base64 nie powiod?o si?: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "Nie mo?na doda? grupy jako elementu jej samej" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "Nie mo?na usun?? domy?lnej grupy u?ytkownik?w" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "zmiana koliduje z inn? zmian?" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "?adne modyfikacje nie zostan? wykonane" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "przekroczono ograniczenia dla tego zapytania" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "Nie mo?na uko?czy? dzia?ania na certyfikacie: %(error)s" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "Maksymalna d?ugo?? nazwy u?ytkownika" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "Podstawa katalogu domowego" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "Domy?lne po?o?enie katalog?w domowych" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "Domy?lna pow?oka" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "Domy?lna pow?oka dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "Domy?lna grupa u?ytkownik?w" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "Domy?lna grupa dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "Domy?lna domena e-mail" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "Domy?lna domena e-mail dla nowych u?ytkownik?w" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "Ograniczenie czasu wyszukiwania" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" "Maksymalny czas (w sekundach) wyszukiwania (-1 oznacza brak ograniczenia)" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "Ograniczenie rozmiaru wyszukiwania" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "" "Maksymalna liczba wpis?w do wyszukiwania (-1 oznacza brak ograniczenia)" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "Pola wyszukiwania u?ytkownik?w" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" "Lista p?l oddzielonych przecinkami do przeszukania podczas wyszukiwania " "u?ytkownik?w" #: ../../ipalib/plugins/config.py:88 msgid "A comma-separated list of fields to search when searching for groups" msgstr "" "Lista p?l oddzielonych przecinkami do przeszukania podczas wyszukiwania grup" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "Tryb migracji" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "W??czono tryb migracji" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "Podstawa tematu certyfikatu" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "podstawa dla temat?w certyfikat?w (OU=Test,O=Przyk?ad)" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "Grupy rol" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "Nazwa grupy rol" #: ../../ipalib/plugins/rolegroup.py:53 ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "Opis" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "Opis tej grupy rol" #: ../../ipalib/plugins/rolegroup.py:57 ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "Elementy grupy" #: ../../ipalib/plugins/rolegroup.py:61 ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "Elementy u?ytkownik?w" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "Element grupy zadaniowej" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "Dodano grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "Usuni?to grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "Zmodyfikowano grup? roli \"%(value)s\"" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "Pasuje %(count)d grupa roli" msgstr[1] "Pasuj? %(count)d grupy roli" msgstr[2] "Pasuje %(count)d grup roli" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "Komputery" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "Nazwa komputera" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "Opis tego komputera" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "Lokalizacja" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "Lokalizacja komputera (np. \"Baltimore, MD\")" #: ../../ipalib/plugins/host.py:87 ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "Po?o?enie" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "Po?o?enie komputera (np. \"Laboratorium nr 2\")" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "Platforma" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "Platforma sprz?towa komputera (np. \"Lenovo T61\")" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "System operacyjny" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "System operacyjny komputera i jego wersja (np. \"Fedora 9\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "Has?o u?ytkownika" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "Has?o u?ywane w zapisywaniu wi?kszej cz??ci" #: ../../ipalib/plugins/host.py:107 ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "Certyfikat" #: ../../ipalib/plugins/host.py:108 ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "Certyfikat serwera zakodowany za pomoc? Base-64" #: ../../ipalib/plugins/host.py:111 ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "Nazwa naczelnika" #: ../../ipalib/plugins/host.py:115 ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "Element grupy komputer?w" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "Element grupy sieci" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "Element grupy roli" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "Dodano komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "Usuni?to komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "Zmodyfikowano komputer \"%(value)s\"" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "Nazwa naczelnika Kerberosa dla tego komputera" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "Pasuje %(count)d komputer" msgstr[1] "Pasuje %(count)d komputery" msgstr[2] "Pasuje %(count)d komputer?w" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "Grupy u?ytkownik?w" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "Nazwa grupy" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "Opis grupy" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "GID (ta opcja umo?liwia jego r?czne ustawienie)" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "Elementy, kt?re si? nie powiod?y" #: ../../ipalib/plugins/group.py:80 ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "U?ytkownicy" #: ../../ipalib/plugins/group.py:84 ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "Grupy" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "Dodano grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "Utworzy? jako grup? POSIX?" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "Usuni?to grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "Zmodyfikowano grup? \"%(value)s\"" #: ../../ipalib/plugins/group.py:151 msgid "change to posix group" msgstr "zmiana na grup? POSIX" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "Pasuje %(count)d grupa" msgstr[1] "Pasuj? %(count)d grupy" msgstr[2] "Pasuje %(count)d grup" #: ../../ipalib/plugins/migration.py:40 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" "Naczelnik Kerberosa %s ju? istnieje. Nale?y u?y? polecenia \"ipa user-mod\", " "aby ustawi? go r?cznie." #: ../../ipalib/plugins/migration.py:41 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" "Dodanie u?ytkownika do domy?lnej grupy nie powiod?o si?. Nale?y u?y? " "polecenia \"ipa group-add-member\", aby doda? go r?cznie." #: ../../ipalib/plugins/migration.py:165 msgid "LDAP URI" msgstr "Adres URI LDAP" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI of DS server to migrate from" msgstr "Adres URI LDAP serwera DS, z kt?rego migrowa?" #: ../../ipalib/plugins/migration.py:170 msgid "bind password" msgstr "has?o Bind" #: ../../ipalib/plugins/migration.py:177 msgid "Bind DN" msgstr "DN dowi?zania" #: ../../ipalib/plugins/migration.py:183 msgid "User container" msgstr "Kontener u?ytkownika" #: ../../ipalib/plugins/migration.py:184 msgid "RDN of container for users in DS" msgstr "RDN kontenera dla u?ytkownik?w w DS" #: ../../ipalib/plugins/migration.py:190 msgid "Group container" msgstr "Kontener grupy" #: ../../ipalib/plugins/migration.py:191 msgid "RDN of container for groups in DS" msgstr "RDN kontenera dla grup w DS" #: ../../ipalib/plugins/migration.py:200 msgid "Lists of objects migrated; categorized by type." msgstr "Lista migrowanych obiekt?w, u?o?onych w kategorie wed?ug typu." #: ../../ipalib/plugins/migration.py:204 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" "Lista obiekt?w, kt?re nie mog?y zosta? migrowane, u?o?onych w kategorie " "wed?ug typu." #: ../../ipalib/plugins/migration.py:208 msgid "False if migration mode was disabled." msgstr "Fa?sz, je?li wy??czono tryb migracji" #: ../../ipalib/plugins/migration.py:212 #, python-format msgid "comma-separated list of %s to exclude from migration" msgstr "lista %s oddzielonych przecinkami do wykluczenia z migracji" #: ../../ipalib/plugins/migration.py:214 msgid "" "search results for objects to be migrated\n" "have been truncated by the server;\n" "migration process might be uncomplete\n" msgstr "" "wyniki wyszukiwania obiekt?w do migrowania\n" "zosta?y skr?cone przez serwer. Proces\n" "migracji m?g? nie zosta? uko?czony\n" #: ../../ipalib/plugins/migration.py:219 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" "Tryb migracji jest wy??czony. Nale?y u?y? polecenia \"ipa config-mod\", aby " "go w??czy?." #: ../../ipalib/plugins/migration.py:222 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" "with clear text passwords. All migrated users need to\n" "login at https://your.domain/ipa/migration/ before they\n" "can use their Kerberos accounts." msgstr "" "Has?a zosta?y migrowane w formacie sprzed mieszania.\n" "Program IPA nie mo?e utworzy? kluczy Kerberosa, chyba\n" "?e zosta?y podane z has?ami w zwyk?ym tek?cie. Wszyscy\n" "migrowani u?ytkownicy musz? zalogowa? si? na stronie\n" "https://twoja.domena/ipa/migration/, zanim b?d? mogli\n" "u?ywa? swoich kont Kerberosa." #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "Us?ugi" #: ../../ipalib/plugins/service.py:121 ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "Naczelnik" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "Naczelnik us?ugi" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "Dodano us?ug? \"%(value)s\"" #: ../../ipalib/plugins/service.py:144 msgid "force principal name even if not in DNS" msgstr "wymuszenie nazwy naczelnika nawet, je?li nie w DNS" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "Usuni?to us?ug? \"%(value)s\"" #: ../../ipalib/plugins/passwd.py:37 ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "Nazwa u?ytkownika" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "Nazwa regu?y" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "Typ regu?y (zezwalanie lub zabranianie)" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "Nazwa us?ugi" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "Nazwa us?ugi, do kt?rej zastosowywana jest regu?a (np. ssh)" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "Kategoria u?ytkownik?w" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "Kategoria u?ytkownik?w, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "Kategoria komputer?w" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "Kategoria komputer?w, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "Kategoria komputer?w ?r?d?owych" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "Kategoria komputer?w ?r?d?owych, do kt?rych zastosowywana jest regu?a" #: ../../ipalib/plugins/hbac.py:87 ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "Czas dost?pu" #: ../../ipalib/plugins/cert.py:62 ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "Nie mo?na dekodowa? certyfikatu we wpisie" #: ../../ipalib/plugins/cert.py:105 ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "Dekodowanie ??dania podpisywania certyfikatu nie powiod?o si?" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Dekodowanie ??dania podpisywania certyfikatu nie powiod?o si?: %s" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "Naczelnik us?ugi dla tego certyfikatu (np. HTTP/test.przyk?ad.pl)" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "automatycznie dodaj naczelnika, je?li nie istnieje" #: ../../ipalib/plugins/cert.py:192 ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "Temat" #: ../../ipalib/plugins/cert.py:196 ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "Numer seryjny" #: ../../ipalib/plugins/cert.py:204 ../../ipalib/plugins/misc.py:46 msgid "Dictionary mapping variable name to value" msgstr "Nazwa zmiennej mapowania s?ownika do ustawienia jako warto??" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "Identyfikator ??dania" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "Stan ??dania" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" "Numer seryjny w formie dziesi?tnej lub szesnastkowej, je?li poprzedzone 0x" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "Przyczyna uniewa?nienia" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "Uniewa?niono" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "Przyczyna" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "Przyczyna uniewa?nienia certyfikatu (0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "Cofni?to uniewa?nienie" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "B??d" #: ../../ipalib/plugins/baseldap.py:74 #, python-format msgid "container entry (%(container)s) not found" msgstr "nie odnaleziono wpisu kontenera (%(container)s)" #: ../../ipalib/plugins/baseldap.py:75 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "%(parent)s: nie odnaleziono %(oname)s" #: ../../ipalib/plugins/baseldap.py:76 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "%(pkey)s: nie odnaleziono %(oname)s" #: ../../ipalib/plugins/baseldap.py:126 msgid "Add an attribute/value pair. Format is attr=value" msgstr "Dodaj par? atrybut/warto??. Format to atrybut=warto??" #: ../../ipalib/plugins/baseldap.py:131 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "Ustaw atrybut dla pary nazwa/warto??. Format to atrybut=warto??" #: ../../ipalib/plugins/baseldap.py:318 msgid "the entry was deleted while being modified" msgstr "wpis zosta? usuni?ty podczas modyfikowania" #: ../../ipalib/plugins/baseldap.py:426 msgid "Members that could not be added" msgstr "Elementy, kt?re nie mog?y zosta? dodane" #: ../../ipalib/plugins/baseldap.py:430 msgid "Number of members added" msgstr "Liczba dodanych element?w" #: ../../ipalib/plugins/baseldap.py:502 msgid "Number of members removed" msgstr "Liczba usuni?tych element?w" #: ../../ipalib/plugins/baseldap.py:506 msgid "Members that could not be removed" msgstr "Liczba element?w, kt?re nie mog?y zosta? usuni?te" #: ../../ipalib/plugins/aci.py:81 msgid "A list of ACI values" msgstr "Lista warto?ci ACI" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" "warto?ci \"type\", \"filter\", \"subtree\" i \"targetgroup\" s? wzajemnie " "wy??czne" #: ../../ipalib/plugins/aci.py:112 msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" msgstr "" "co najmniej jedna z warto?ci: \"type\", \"filter\", \"subtree\", " "\"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "warto?ci \"group\" i \"taskgroup\" s? wzajemnie wy??czne" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "Wymagana jest warto?? \"group\" lub \"taskgroup\"" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "Grupa \"%s\" nie istnieje" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "Nie odnaleziono ACI o nazwie \"%s\"" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACI" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "Nazwa ACI" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "Grupa zadaniowa" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "Grupa zadaniowa, do kt?rej ACI zapewnia dost?p" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "Grupa u?ytkownik?w" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "Grupa u?ytkownik?w, do kt?rej ACI zapewnia dost?p" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "Uprawnienia" #: ../../ipalib/plugins/aci.py:222 msgid "" "comma-separated list of permissions to grant(read, write, add, delete, " "selfwrite, all)" msgstr "" "lista uprawnie? oddzielonych przecinkami do udzielenia (odczyt, zapis, " "dodanie, usuni?cie, zapisanie do siebie, wszystkie)" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "Atrybuty" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "Lista atrybut?w oddzielonych przecinkami" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "Typ" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "typ obiektu IPA (u?ytkownik, grupa, komputer)" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "Element" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "Element grupy" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "Filtr" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "Dozwolony filtr LDAP (np. ou=In?ynieria)" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "Poddrzewo" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "Poddrzewo, do kt?rego zastosowa? ACI" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "Grupa docelowa" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "Grupa, do kt?rej zastosowa? ACI" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "Utworzono ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "Usuni?to ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "Zmodyfikowano ACI \"%(value)s\"" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "Pasuje %(count)d ACI" msgstr[1] "Pasuj? %(count)d ACI" msgstr[2] "Pasuje %(count)d ACI" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "Zarz?dzaj polityk? zg?osze? dla podanego u?ytkownika" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "Maksymalny czas ?ycia" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "Minimalny czas ?ycia zg?oszenia" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "Maksymalne odnowienie" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "Maksymalny czas, w kt?rym mo?liwe jest odnowienie" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "Strefa" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "Nazwa strefy (FQDN)" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "Autorytatywny serwer nazwa" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "adres e-mail administratora" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "Numer seryjny SOA" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "Od?wie?enie SOA" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "Ponowienie SOA" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "Wygaszenie SOA" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "Minimalne SOA" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "Czas ?ycia SOA" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "Klasa SOA" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "zezwoli? na dynamiczne aktualizacje?" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "Polityka aktualizacji BIND" #: ../../ipalib/plugins/dns.py:393 ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "Nazwa strefy" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "nazwa zasobu" #: ../../ipalib/plugins/dns.py:472 ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "Typ wpisu" #: ../../ipalib/plugins/dns.py:476 ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "Dane" #: ../../ipalib/plugins/dns.py:477 ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "Dane specyficzne dla typu" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "Czas ?ycia" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "Klasa" #: ../../ipalib/plugins/dns.py:582 ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "Nazwa zasobu" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "Kryterium wyszukiwania" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "dane specyficzne dla typu" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "Automatyczne montowanie nazwy po?o?enia" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "Mapa" #: ../../ipalib/plugins/automount.py:225 msgid "Automount map name" msgstr "Automatyczne montowanie nazwy mapy" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "Automatyczne montowanie map" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "Klucz" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "Automatyczne montowanie nazw kluczy" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "Informacje o montowaniu" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "opis" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "Automatyczne montowanie kluczy" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "Punkt montowania" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "Mapa nadrz?dna" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "" "Nazwa nadrz?dnej mapy automatycznego montowania (domy?lnie: auto.master)" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "Grupy sieciowe" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "Nazwa grupy sieciowej" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "Opis grupy sieciowej" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "Nazwa domeny NIS" #: ../../ipalib/plugins/netgroup.py:68 msgid "IPA unique ID" msgstr "Unikalny identyfikator IPA" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "Komputer elementu" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "Zewn?trzny komputer" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "%(count)d zmiennych" #: ../../ipalib/plugins/misc.py:50 msgid "Total number of variables env (>= count)" msgstr "Ca?kowita liczba zmiennych ?rodowiskowych (>= licznik)" #: ../../ipalib/plugins/misc.py:54 msgid "Number of variables returned (<= total)" msgstr "Liczba zwr?conych zmiennych (<= razem)" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "Wczytano %(count)d wtyczk?" msgstr[1] "Wczytano %(count)d wtyczki" msgstr[2] "Wczytano %(count)d wtyczek" #: ../../ipalib/plugins/misc.py:103 msgid "Number of plugins loaded" msgstr "Liczba wczytanych wtyczek" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "Login u?ytkownika" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "Imi?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "Nazwisko" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "Pole GECOS" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "Pow?oka logowania" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "Naczelnik Kerberosa" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "Adres e-mail" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "Has?o" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "Ustaw has?o u?ytkownika" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "UID (ta opcja umo?liwia jego r?czne ustawienie)" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "Adres zamieszkania" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "Grupy sieciowe" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "Grupy rol" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "Grupy zadaniowe" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "Dodano u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "Usuni?to u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "Zmodyfikowano u?ytkownika \"%(value)s\"" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "Pasuje %(count)d u?ytkownik" msgstr[1] "Pasuje %(count)d u?ytkownik?w" msgstr[2] "Pasuje %(count)d u?ytkownik?w" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "Zablokowany u?ytkownik \"%(value)s\"" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "Odblokowany u?ytkownik \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "Grupy zadaniowe" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "Nazwa grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "Opis grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "Element grupy zadaniowej" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "Dodano grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "Usuni?to grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "Zmodyfikowano grup? zadaniow? \"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "Pasuje %(count)d grupa zadaniowa" msgstr[1] "Pasuj? %(count)d grupy zadaniowe" msgstr[2] "Pasuje %(count)d grup zadaniowych" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "Grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "Grupa komputer?w" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "Nazwa grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "Opis tej grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "Element komputer?w" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "Element grupy komputer?w" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "Dodano grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "Usuni?to grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "Zmodyfikowano grup? komputer?w \"%(value)s\"" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "Pasuje %(count)d grupa komputer?w" msgstr[1] "Pasuj? %(count)d grupy komputer?w" msgstr[2] "Pasuje %(count)d grup komputer?w" #: ../../ipalib/plugins/pwpolicy.py:121 ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "Grupa" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "Maksymalny czas ?ycia (w dniach)" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "Maksymalny czas ?ycia has?a (w dniach)" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "Minimalny czas ?ycia (w godzinach)" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "Minimalny czas ?ycia has?a (w godzinach)" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "Rozmiar historii" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "Rozmiar historii hase?" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "Klasy znak?w" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "Minimalna liczba klas znak?w" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "Minimalna d?ugo??" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "Minimalna d?ugo?? has?a" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "Dodano polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:174 ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "Grupa, dla kt?rej ustawi? polityk?" #: ../../ipalib/plugins/pwpolicy.py:179 ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "Priorytet" #: ../../ipalib/plugins/pwpolicy.py:180 ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "Priorytet polityki (wy?szy numer r?wna si? ni?szemu priorytetowi)" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "Zmodyfikowano polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "nie mo?na ustawia? priorytetu dla globalnej polityki" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "Usuni?to polityk? dla grupy \"%(value)s\"" #: ../../ipalib/plugins/pwpolicy.py:280 msgid "Group to remove policy from" msgstr "Grupa, z kt?rej usun?? polityk?" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "Grupa, dla kt?rej wy?wietli? polityk?" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "U?ytkownik" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "Wy?wietl polityk? zastosowan? dla podanego u?ytkownika" #: ../../ipaserver/install/certs.py:576 ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "Nie mo?na komunikowa? si? z CMS (%s)" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "" "Request subject \"%(request_subject)s\" does not match the form \"%" "(subject_base)s\"" msgstr "" "Temat ??dania \"%(request_subject)s\" nie pasuje do formatu \"%(subject_base)" "s\"" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "nie mo?na dekodowa? csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "dzia?anie na pliku" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "nie mo?na uzyska? nast?pnego numeru szeregowego" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "narz?dzie certyfikat?w nie powiod?o si?" #: ../../ipaserver/plugins/join.py:54 msgid "The hostname to register as" msgstr "Nazwa komputera, pod jak? zarejestrowa?" #: ../../ipaserver/plugins/join.py:62 msgid "The IPA realm" msgstr "Obszar IPA" #: ../../ipaserver/plugins/join.py:68 msgid "Hardware platform of the host (e.g. Lenovo T61)" msgstr "Platforma sprz?towa komputera (np. Lenovo T61)" #: ../../ipaserver/plugins/join.py:72 msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)" From rcritten at redhat.com Wed Mar 17 21:29:41 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 17 Mar 2010 17:29:41 -0400 Subject: [Freeipa-devel] [PATCH] 410 enable anonymous VLV Message-ID: <4BA149C5.3000209@redhat.com> Modify the VLV aci to allow anonymous searches. This will allow Solaris clients to function properly. A similar patch will need to be committed to the freeipa-1.2 branch. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-410-vlv.patch Type: application/mbox Size: 2231 bytes Desc: not available URL: From jderose at redhat.com Thu Mar 18 06:28:07 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Thu, 18 Mar 2010 00:28:07 -0600 Subject: [Freeipa-devel] [PATCH] 392 retrieve schema using kerberos credentials In-Reply-To: <4BA0E0E0.2090900@redhat.com> References: <4B87F62D.30405@redhat.com> <1268803047.10908.803.camel@jgd-dsk> <4BA0E0E0.2090900@redhat.com> Message-ID: <1268893687.16018.0.camel@jgd-dsk> On Wed, 2010-03-17 at 10:02 -0400, Rob Crittenden wrote: > Jason Gerard DeRose wrote: > > On Fri, 2010-02-26 at 11:26 -0500, Rob Crittenden wrote: > >> Retrieve the LDAP schema using kerberos credentials. > >> > >> This is required so we can disable anonymous access in 389-ds. > >> > >> rob > > > > I'm getting a merge conflict with the migration plugin: > > > > error: patch failed: ipalib/plugins/migration.py:30 > > > > Sorry this patch slipped through the cracks for so long. > > > > Updated patch attached. thanks. ack, pushed to master. > rob From jderose at redhat.com Thu Mar 18 06:28:30 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Thu, 18 Mar 2010 00:28:30 -0600 Subject: [Freeipa-devel] [PATCH] 394 Catch empty updates In-Reply-To: <4B950953.3030803@redhat.com> References: <4B902559.2080107@redhat.com> <4B9388C2.5010700@redhat.com> <4B950953.3030803@redhat.com> Message-ID: <1268893710.16018.1.camel@jgd-dsk> On Mon, 2010-03-08 at 09:27 -0500, Rob Crittenden wrote: > Martin Nagy wrote: > > On 03/04/2010 10:25 PM, Rob Crittenden wrote: > >> Currently if you pass in an empty update on the cli it won't throw an > >> error and can be a bit confusing. > >> > >> rob > > > > I think the change in pwpolicy.py won't preserve the original behaviour: > > + if 'group' in options: > > + group_cn = options['group'] > > + del options['group'] > > + else: > > group_cn = _global > > + > > + if not 'group' in options: > > ... > > else: > > ... > > > > Notice that at the second if, 'group' will never be in options no matter > > what. > > > > Martin > > Yes, I discovered this too. It is fixed in my patch "400 fix pwpolicy > plugin" along with a few other things. > > rob ack. pushed to master. From pzuna at redhat.com Thu Mar 18 14:00:33 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Thu, 18 Mar 2010 15:00:33 +0100 Subject: [Freeipa-devel] [PATCH] Enable LDAPObject subclasses to disable DN normalization in their methods. In-Reply-To: <4B9FCD62.20301@redhat.com> References: <4B9F9AC3.9070100@redhat.com> <4B9FCD62.20301@redhat.com> Message-ID: <4BA23201.5040208@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> New attribute in LDAPObject: normalize_dn >> >> Defaults to True. If False, LDAP* methods won't normalize DNs before >> passing them to python-ldap. >> >> Pavel >> > > This also makes entries returned by LDAPSearch a list instead of a > tuple. What is the purpose of that? It enables *-find plugins to easily add/remove entries in post_callback. > rob Pavel From admin at transifex.net Thu Mar 18 14:44:01 2010 From: admin at transifex.net (admin at transifex.net) Date: Thu, 18 Mar 2010 14:44:01 -0000 Subject: [Freeipa-devel] [Transifex] File submitted via email to FreeIPA | master Message-ID: <20100318144401.1281.91577@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The following attached files were submitted to FreeIPA | master by gnozil Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/c/master/ in order to see the component page. Thank you, Transifex -------------- next part -------------- # Copyright (C) YEAR Red Hat # This file is distributed under the same license as the PACKAGE package. # # Jake Li , 2010. msgid "" msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" "POT-Creation-Date: 2010-03-01 19:57-0500\n" "PO-Revision-Date: 2010-03-18 22:43+0800\n" "Last-Translator: Jake Li \n" "Language-Team: Chinese Simplified \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-Language: Chinese\n" "X-Poedit-Country: CHINA\n" "X-Generator: Lokalize 1.0\n" #: ../../ipalib/parameters.py:295 msgid "incorrect type" msgstr "??????" #: ../../ipalib/parameters.py:298 msgid "Only one value is allowed" msgstr "??????" #: ../../ipalib/parameters.py:862 msgid "must be True or False" msgstr "???True?False" #: ../../ipalib/parameters.py:963 msgid "must be an integer" msgstr "???????" #: ../../ipalib/parameters.py:1014 #, python-format msgid "must be at least %(minvalue)d" msgstr "" #: ../../ipalib/parameters.py:1024 #, python-format msgid "can be at most %(maxvalue)d" msgstr "" #: ../../ipalib/parameters.py:1034 msgid "must be a decimal number" msgstr "?????????" #: ../../ipalib/parameters.py:1056 #, python-format msgid "must be at least %(minvalue)f" msgstr "" #: ../../ipalib/parameters.py:1066 #, python-format msgid "can be at most %(maxvalue)f" msgstr "" #: ../../ipalib/parameters.py:1126 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "" #: ../../ipalib/parameters.py:1144 msgid "must be binary data" msgstr "????????" #: ../../ipalib/parameters.py:1159 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "" #: ../../ipalib/parameters.py:1169 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "" #: ../../ipalib/parameters.py:1179 #, python-format msgid "must be exactly %(length)d bytes" msgstr "" #: ../../ipalib/parameters.py:1197 msgid "must be Unicode text" msgstr "???Unicode??" #: ../../ipalib/parameters.py:1227 #, python-format msgid "must be at least %(minlength)d characters" msgstr "" #: ../../ipalib/parameters.py:1237 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "" #: ../../ipalib/parameters.py:1247 #, python-format msgid "must be exactly %(length)d characters" msgstr "" #: ../../ipalib/parameters.py:1286 #, python-format msgid "must be one of %(values)r" msgstr "" #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " msgstr "???? %(label)s????: " #: ../../ipalib/cli.py:511 msgid "Passwords do not match!" msgstr "??????" #: ../../ipalib/cli.py:516 msgid "Cancelled." msgstr "???" #: ../../ipalib/frontend.py:377 msgid "Results are truncated, try a more specific search" msgstr "???????????????" #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" #: ../../ipalib/errors.py:315 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" #: ../../ipalib/errors.py:331 msgid "an internal error has occurred" msgstr "?????????" #: ../../ipalib/errors.py:353 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "???%(server)r??????????" #: ../../ipalib/errors.py:369 #, python-format msgid "unknown command %(name)r" msgstr "?????%(name)r" #: ../../ipalib/errors.py:386 #: ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "" #: ../../ipalib/errors.py:402 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "?????%(uri)r: %(error)s" #: ../../ipalib/errors.py:420 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "???JSON-RPC??: %(error)s" #: ../../ipalib/errors.py:448 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" #: ../../ipalib/errors.py:465 msgid "did not receive Kerberos credentials" msgstr "" #: ../../ipalib/errors.py:481 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "" #: ../../ipalib/errors.py:497 msgid "No credentials cache found" msgstr "" #: ../../ipalib/errors.py:513 msgid "Ticket expired" msgstr "" #: ../../ipalib/errors.py:529 msgid "Credentials cache permissions incorrect" msgstr "" #: ../../ipalib/errors.py:545 msgid "Bad format in credentials cache" msgstr "" #: ../../ipalib/errors.py:561 msgid "Cannot resolve KDC for requested realm" msgstr "" #: ../../ipalib/errors.py:580 #, python-format msgid "Insufficient access: %(info)s" msgstr "" #: ../../ipalib/errors.py:624 #, python-format msgid "command %(name)r takes no arguments" msgstr "?? %(name)r?????" #: ../../ipalib/errors.py:644 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "?? %(name)r????%(count)d???" msgstr[1] "?? %(name)r????%(count)d???" #: ../../ipalib/errors.py:674 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "" #: ../../ipalib/errors.py:690 #, python-format msgid "%(name)r is required" msgstr "??%(name)r" #: ../../ipalib/errors.py:706 #: ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "%(name)r??: %(error)s" #: ../../ipalib/errors.py:738 #, python-format msgid "api has no such namespace: %(name)r" msgstr "API????????: %(name)r" #: ../../ipalib/errors.py:747 msgid "Passwords do not match" msgstr "?????" #: ../../ipalib/errors.py:755 msgid "Command not implemented" msgstr "??????" #: ../../ipalib/errors.py:783 #: ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" #: ../../ipalib/errors.py:799 msgid "This entry already exists" msgstr "??????" #: ../../ipalib/errors.py:815 msgid "You must enroll a host in order to create a host service" msgstr "" #: ../../ipalib/errors.py:831 #, python-format msgid "Service principal is not of the form: service/fully-qualified host name: %(reason)s" msgstr "" #: ../../ipalib/errors.py:847 msgid "The realm for the principal does not match the realm for this IPA server" msgstr "" #: ../../ipalib/errors.py:863 msgid "This command requires root access" msgstr "?????root????" #: ../../ipalib/errors.py:879 msgid "This is already a posix group" msgstr "??????posix?" #: ../../ipalib/errors.py:895 #, python-format msgid "Principal is not of the form user at REALM: %(principal)r" msgstr "" #: ../../ipalib/errors.py:911 msgid "This entry is already unlocked" msgstr "???????" #: ../../ipalib/errors.py:927 msgid "This entry is already locked" msgstr "????????" #: ../../ipalib/errors.py:943 msgid "This entry has nsAccountLock set, it cannot be locked or unlocked" msgstr "" #: ../../ipalib/errors.py:959 msgid "This entry is not a member of the group" msgstr "??????????" #: ../../ipalib/errors.py:975 msgid "A group may not be a member of itself" msgstr "???????????" #: ../../ipalib/errors.py:991 msgid "This entry is already a member of the group" msgstr "???????????" #: ../../ipalib/errors.py:1007 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "Base64????: %(reason)s" #: ../../ipalib/errors.py:1039 msgid "A group may not be added as a member of itself" msgstr "???????????" #: ../../ipalib/errors.py:1055 msgid "The default users group cannot be removed" msgstr "???????????" #: ../../ipalib/errors.py:1078 #, python-format msgid "no command nor help topic %(topic)r" msgstr "" #: ../../ipalib/errors.py:1102 msgid "change collided with another change" msgstr "????" #: ../../ipalib/errors.py:1118 msgid "no modifications to be performed" msgstr "" #: ../../ipalib/errors.py:1134 #, python-format msgid "%(desc)s:%(info)s" msgstr "%(desc)s:%(info)s" #: ../../ipalib/errors.py:1150 msgid "limits exceeded for this query" msgstr "" #: ../../ipalib/errors.py:1165 #, python-format msgid "%(info)s" msgstr "%(info)s" #: ../../ipalib/errors.py:1190 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" #: ../../ipalib/plugins/config.py:45 msgid "Max username length" msgstr "???????" #: ../../ipalib/plugins/config.py:50 msgid "Home directory base" msgstr "???" #: ../../ipalib/plugins/config.py:51 msgid "Default location of home directories" msgstr "????????" #: ../../ipalib/plugins/config.py:55 msgid "Default shell" msgstr "??shell" #: ../../ipalib/plugins/config.py:56 msgid "Default shell for new users" msgstr "??????shell" #: ../../ipalib/plugins/config.py:60 msgid "Default users group" msgstr "?????" #: ../../ipalib/plugins/config.py:61 msgid "Default group for new users" msgstr "??????" #: ../../ipalib/plugins/config.py:65 msgid "Default e-mail domain" msgstr "???????" #: ../../ipalib/plugins/config.py:66 msgid "Default e-mail domain new users" msgstr "??????????" #: ../../ipalib/plugins/config.py:70 msgid "Search time limit" msgstr "??????" #: ../../ipalib/plugins/config.py:71 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" #: ../../ipalib/plugins/config.py:76 msgid "Search size limit" msgstr "" #: ../../ipalib/plugins/config.py:77 msgid "Max. number of records to search (-1 is unlimited)" msgstr "" #: ../../ipalib/plugins/config.py:82 msgid "User search fields" msgstr "??????" #: ../../ipalib/plugins/config.py:83 msgid "A comma-separated list of fields to search when searching for users" msgstr "" #: ../../ipalib/plugins/config.py:92 msgid "Migration mode" msgstr "????" #: ../../ipalib/plugins/config.py:93 msgid "Enabled migration mode" msgstr "??????" #: ../../ipalib/plugins/config.py:97 msgid "Certificate Subject base" msgstr "" #: ../../ipalib/plugins/config.py:98 msgid "base for certificate subjects (OU=Test,O=Example)" msgstr "" #: ../../ipalib/plugins/rolegroup.py:42 msgid "Role Groups" msgstr "???" #: ../../ipalib/plugins/rolegroup.py:47 msgid "Role-group name" msgstr "?????" #: ../../ipalib/plugins/rolegroup.py:53 #: ../../ipalib/plugins/host.py:77 #: ../../ipalib/plugins/group.py:59 #: ../../ipalib/plugins/hbac.py:91 #: ../../ipalib/plugins/automount.py:230 #: ../../ipalib/plugins/netgroup.py:58 #: ../../ipalib/plugins/taskgroup.py:54 #: ../../ipalib/plugins/hostgroup.py:55 msgid "Description" msgstr "??" #: ../../ipalib/plugins/rolegroup.py:54 msgid "A description of this role-group" msgstr "???????" #: ../../ipalib/plugins/rolegroup.py:57 #: ../../ipalib/plugins/group.py:68 #: ../../ipalib/plugins/taskgroup.py:58 msgid "Member groups" msgstr "???" #: ../../ipalib/plugins/rolegroup.py:61 #: ../../ipalib/plugins/group.py:72 #: ../../ipalib/plugins/taskgroup.py:62 msgid "Member users" msgstr "????" #: ../../ipalib/plugins/rolegroup.py:65 msgid "Member of task-groups" msgstr "?????" #: ../../ipalib/plugins/rolegroup.py:78 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:88 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:98 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/rolegroup.py:109 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/host.py:66 msgid "Hosts" msgstr "??" #: ../../ipalib/plugins/host.py:71 msgid "Host name" msgstr "???" #: ../../ipalib/plugins/host.py:78 msgid "A description of this host" msgstr "" #: ../../ipalib/plugins/host.py:82 msgid "Locality" msgstr "" #: ../../ipalib/plugins/host.py:83 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "????(?\"Baltimore, MD\")" #: ../../ipalib/plugins/host.py:87 #: ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "??" #: ../../ipalib/plugins/host.py:88 msgid "Host location (e.g. \"Lab 2\")" msgstr "????(?\"Lab 2\")" #: ../../ipalib/plugins/host.py:92 msgid "Platform" msgstr "??" #: ../../ipalib/plugins/host.py:93 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "?????? (e.g. \"Lenovo T61\")" #: ../../ipalib/plugins/host.py:97 msgid "Operating system" msgstr "????" #: ../../ipalib/plugins/host.py:98 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "?????????(e.g. \"Fedora 9\")" #: ../../ipalib/plugins/host.py:102 msgid "User password" msgstr "????" #: ../../ipalib/plugins/host.py:103 msgid "Password used in bulk enrollment" msgstr "" #: ../../ipalib/plugins/host.py:107 #: ../../ipalib/plugins/service.py:128 #: ../../ipalib/plugins/cert.py:188 #: ../../ipalib/plugins/cert.py:370 msgid "Certificate" msgstr "??" #: ../../ipalib/plugins/host.py:108 #: ../../ipalib/plugins/service.py:129 msgid "Base-64 encoded server certificate" msgstr "Base-64 ??????????" #: ../../ipalib/plugins/host.py:111 #: ../../ipalib/plugins/host.py:214 msgid "Principal name" msgstr "" #: ../../ipalib/plugins/host.py:115 #: ../../ipalib/plugins/hostgroup.py:67 msgid "Member of host-groups" msgstr "?????" #: ../../ipalib/plugins/host.py:119 msgid "Member of net-groups" msgstr "?????" #: ../../ipalib/plugins/host.py:123 msgid "Member of role-groups" msgstr "" #: ../../ipalib/plugins/host.py:152 #, python-format msgid "Added host \"%(value)s\"" msgstr "???? \"%(value)s\"" #: ../../ipalib/plugins/host.py:181 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "????? \"%(value)s\"" #: ../../ipalib/plugins/host.py:209 #, python-format msgid "Modified host \"%(value)s\"" msgstr "????? \"%(value)s\"" #: ../../ipalib/plugins/host.py:215 msgid "Kerberos principal name for this host" msgstr "" #: ../../ipalib/plugins/host.py:259 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/group.py:48 msgid "User Groups" msgstr "???" #: ../../ipalib/plugins/group.py:53 msgid "Group name" msgstr "??" #: ../../ipalib/plugins/group.py:60 msgid "Group description" msgstr "???" #: ../../ipalib/plugins/group.py:64 msgid "GID" msgstr "GID" #: ../../ipalib/plugins/group.py:65 msgid "GID (use this option to set it manually)" msgstr "" #: ../../ipalib/plugins/group.py:76 msgid "Failed members" msgstr "?????" #: ../../ipalib/plugins/group.py:80 #: ../../ipalib/plugins/user.py:48 msgid "Users" msgstr "??" #: ../../ipalib/plugins/group.py:84 #: ../../ipalib/plugins/user.py:109 msgid "Groups" msgstr "???" #: ../../ipalib/plugins/group.py:97 #, python-format msgid "Added group \"%(value)s\"" msgstr "????\"%(value)s\"" #: ../../ipalib/plugins/group.py:102 msgid "Create as posix group?" msgstr "" #: ../../ipalib/plugins/group.py:120 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "????\"%(value)s\"" #: ../../ipalib/plugins/group.py:146 #, python-format msgid "Modified group \"%(value)s\"" msgstr "????\"%(value)s\"" #: ../../ipalib/plugins/group.py:175 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d ????" msgstr[1] "%(count)d ????" #: ../../ipalib/plugins/migration.py:166 msgid "LDAP URI" msgstr "LDAP URI" #: ../../ipalib/plugins/migration.py:167 msgid "LDAP URI of DS server to migrate from" msgstr "" #: ../../ipalib/plugins/migration.py:178 msgid "Bind DN" msgstr "" #: ../../ipalib/plugins/migration.py:184 msgid "User container" msgstr "????" #: ../../ipalib/plugins/migration.py:185 msgid "RDN of container for users in DS" msgstr "" #: ../../ipalib/plugins/migration.py:191 msgid "Group container" msgstr "???" #: ../../ipalib/plugins/migration.py:192 msgid "RDN of container for groups in DS" msgstr "" #: ../../ipalib/plugins/service.py:116 msgid "Services" msgstr "??" #: ../../ipalib/plugins/service.py:121 #: ../../ipalib/plugins/cert.py:175 msgid "Principal" msgstr "" #: ../../ipalib/plugins/service.py:122 msgid "Service principal" msgstr "" #: ../../ipalib/plugins/service.py:140 #, python-format msgid "Added service \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/service.py:187 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/passwd.py:37 #: ../../ipalib/plugins/krbtpolicy.py:47 msgid "User name" msgstr "???" #: ../../ipalib/plugins/hbac.py:48 msgid "HBAC" msgstr "HBAC" #: ../../ipalib/plugins/hbac.py:53 msgid "Rule name" msgstr "???" #: ../../ipalib/plugins/hbac.py:58 msgid "Rule type (allow or deny)" msgstr "????(?????)" #: ../../ipalib/plugins/hbac.py:63 msgid "Service name" msgstr "???" #: ../../ipalib/plugins/hbac.py:64 msgid "Name of service the rule applies to (e.g. ssh)" msgstr "" #: ../../ipalib/plugins/hbac.py:69 msgid "User category" msgstr "????" #: ../../ipalib/plugins/hbac.py:70 msgid "User category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:75 msgid "Host category" msgstr "????" #: ../../ipalib/plugins/hbac.py:76 msgid "Host category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:81 msgid "Source host category" msgstr "?????" #: ../../ipalib/plugins/hbac.py:82 msgid "Source host category the rule applies to" msgstr "" #: ../../ipalib/plugins/hbac.py:87 #: ../../ipalib/plugins/hbac.py:221 #: ../../ipalib/plugins/hbac.py:259 msgid "Access time" msgstr "????" #: ../../ipalib/plugins/cert.py:62 #: ../../ipalib/plugins/cert.py:83 msgid "Unable to decode certificate in entry" msgstr "??????????" #: ../../ipalib/plugins/cert.py:105 #: ../../ipalib/plugins/cert.py:119 #: ../../ipalib/plugins/cert.py:136 msgid "Failure decoding Certificate Signing Request" msgstr "" #: ../../ipalib/plugins/cert.py:138 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" #: ../../ipalib/plugins/cert.py:176 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" #: ../../ipalib/plugins/cert.py:183 msgid "automatically add the principal if it doesn't exist" msgstr "" #: ../../ipalib/plugins/cert.py:192 #: ../../ipalib/plugins/cert.py:374 msgid "Subject" msgstr "??" #: ../../ipalib/plugins/cert.py:196 #: ../../ipalib/plugins/cert.py:357 msgid "Serial number" msgstr "???" #: ../../ipalib/plugins/cert.py:334 msgid "Request id" msgstr "???" #: ../../ipalib/plugins/cert.py:340 msgid "Request status" msgstr "????" #: ../../ipalib/plugins/cert.py:358 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" #: ../../ipalib/plugins/cert.py:378 msgid "Revocation reason" msgstr "????" #: ../../ipalib/plugins/cert.py:403 msgid "Revoked" msgstr "??" #: ../../ipalib/plugins/cert.py:412 msgid "Reason" msgstr "??" #: ../../ipalib/plugins/cert.py:413 msgid "Reason for revoking the certificate (0-10)" msgstr "???????(0-10)" #: ../../ipalib/plugins/cert.py:438 msgid "Unrevoked" msgstr "" #: ../../ipalib/plugins/cert.py:442 msgid "Error" msgstr "??" #: ../../ipalib/plugins/baseldap.py:115 msgid "Add an attribute/value pair. Format is attr=value" msgstr "" #: ../../ipalib/plugins/baseldap.py:120 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "" #: ../../ipalib/plugins/aci.py:109 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" #: ../../ipalib/plugins/aci.py:112 msgid "at least one of: type, filter, subtree, targetgroup, attrs or memberof are required" msgstr "" #: ../../ipalib/plugins/aci.py:117 msgid "group and taskgroup are mutually exclusive" msgstr "" #: ../../ipalib/plugins/aci.py:119 msgid "One of group or taskgroup is required" msgstr "" #: ../../ipalib/plugins/aci.py:140 #, python-format msgid "Group '%s' does not exist" msgstr "? '%s' ???" #: ../../ipalib/plugins/aci.py:184 #, python-format msgid "ACI with name \"%s\" not found" msgstr "" #: ../../ipalib/plugins/aci.py:201 msgid "ACIs" msgstr "ACIs" #: ../../ipalib/plugins/aci.py:206 msgid "ACI name" msgstr "ACI??" #: ../../ipalib/plugins/aci.py:211 msgid "Taskgroup" msgstr "???" #: ../../ipalib/plugins/aci.py:212 msgid "Taskgroup ACI grants access to" msgstr "" #: ../../ipalib/plugins/aci.py:216 msgid "User group" msgstr "???" #: ../../ipalib/plugins/aci.py:217 msgid "User group ACI grants access to" msgstr "" #: ../../ipalib/plugins/aci.py:221 msgid "Permissions" msgstr "??" #: ../../ipalib/plugins/aci.py:222 msgid "comma-separated list of permissions to grant(read, write, add, delete, selfwrite, all)" msgstr "" #: ../../ipalib/plugins/aci.py:228 msgid "Attributes" msgstr "??" #: ../../ipalib/plugins/aci.py:229 msgid "Comma-separated list of attributes" msgstr "" #: ../../ipalib/plugins/aci.py:233 msgid "Type" msgstr "??" #: ../../ipalib/plugins/aci.py:234 msgid "type of IPA object (user, group, host)" msgstr "" #: ../../ipalib/plugins/aci.py:239 msgid "Member of" msgstr "" #: ../../ipalib/plugins/aci.py:240 msgid "Member of a group" msgstr "???" #: ../../ipalib/plugins/aci.py:244 msgid "Filter" msgstr "??" #: ../../ipalib/plugins/aci.py:245 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" #: ../../ipalib/plugins/aci.py:249 msgid "Subtree" msgstr "??" #: ../../ipalib/plugins/aci.py:250 msgid "Subtree to apply ACI to" msgstr "" #: ../../ipalib/plugins/aci.py:254 msgid "Target group" msgstr "???" #: ../../ipalib/plugins/aci.py:255 msgid "Group to apply ACI to" msgstr "" #: ../../ipalib/plugins/aci.py:267 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:317 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/aci.py:417 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/krbtpolicy.py:48 msgid "Manage ticket policy for specific user" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:53 msgid "Max life" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:54 msgid "Maximum ticket life" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:58 msgid "Max renew" msgstr "" #: ../../ipalib/plugins/krbtpolicy.py:59 msgid "Maximum renewable age" msgstr "" #: ../../ipalib/plugins/dns.py:113 msgid "DNS" msgstr "DNS" #: ../../ipalib/plugins/dns.py:118 msgid "Zone" msgstr "" #: ../../ipalib/plugins/dns.py:119 msgid "Zone name (FQDN)" msgstr "" #: ../../ipalib/plugins/dns.py:125 msgid "Authoritative name server" msgstr "" #: ../../ipalib/plugins/dns.py:129 msgid "administrator e-mail address" msgstr "???????" #: ../../ipalib/plugins/dns.py:135 msgid "SOA serial" msgstr "" #: ../../ipalib/plugins/dns.py:139 msgid "SOA refresh" msgstr "" #: ../../ipalib/plugins/dns.py:143 msgid "SOA retry" msgstr "" #: ../../ipalib/plugins/dns.py:147 msgid "SOA expire" msgstr "" #: ../../ipalib/plugins/dns.py:151 msgid "SOA minimum" msgstr "" #: ../../ipalib/plugins/dns.py:155 msgid "SOA time to live" msgstr "" #: ../../ipalib/plugins/dns.py:159 msgid "SOA class" msgstr "" #: ../../ipalib/plugins/dns.py:164 msgid "allow dynamic update?" msgstr "???????" #: ../../ipalib/plugins/dns.py:168 msgid "BIND update policy" msgstr "" #: ../../ipalib/plugins/dns.py:393 #: ../../ipalib/plugins/dns.py:427 #: ../../ipalib/plugins/dns.py:462 #: ../../ipalib/plugins/dns.py:577 #: ../../ipalib/plugins/dns.py:662 #: ../../ipalib/plugins/dns.py:786 msgid "Zone name" msgstr "" #: ../../ipalib/plugins/dns.py:467 msgid "resource name" msgstr "????" #: ../../ipalib/plugins/dns.py:472 #: ../../ipalib/plugins/dns.py:587 #: ../../ipalib/plugins/dns.py:678 msgid "Record type" msgstr "????" #: ../../ipalib/plugins/dns.py:476 #: ../../ipalib/plugins/dns.py:591 msgid "Data" msgstr "??" #: ../../ipalib/plugins/dns.py:477 #: ../../ipalib/plugins/dns.py:592 msgid "Type-specific data" msgstr "" #: ../../ipalib/plugins/dns.py:484 msgid "Time to live" msgstr "" #: ../../ipalib/plugins/dns.py:489 msgid "Class" msgstr "" #: ../../ipalib/plugins/dns.py:582 #: ../../ipalib/plugins/dns.py:674 #: ../../ipalib/plugins/dns.py:791 msgid "Resource name" msgstr "????" #: ../../ipalib/plugins/dns.py:667 msgid "Search criteria" msgstr "????" #: ../../ipalib/plugins/dns.py:682 msgid "type-specific data" msgstr "" #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "" #: ../../ipalib/plugins/automount.py:224 msgid "Map" msgstr "" #: ../../ipalib/plugins/automount.py:225 msgid "Aautomount map name" msgstr "" #: ../../ipalib/plugins/automount.py:234 msgid "Automount Maps" msgstr "" #: ../../ipalib/plugins/automount.py:306 msgid "Key" msgstr "" #: ../../ipalib/plugins/automount.py:307 msgid "Automount key name" msgstr "" #: ../../ipalib/plugins/automount.py:312 msgid "Mount information" msgstr "" #: ../../ipalib/plugins/automount.py:316 msgid "description" msgstr "??" #: ../../ipalib/plugins/automount.py:320 msgid "Automount Keys" msgstr "" #: ../../ipalib/plugins/automount.py:340 msgid "Mount point" msgstr "???" #: ../../ipalib/plugins/automount.py:344 msgid "Parent map" msgstr "" #: ../../ipalib/plugins/automount.py:345 msgid "Name of parent automount map (default: auto.master)" msgstr "" #: ../../ipalib/plugins/netgroup.py:47 msgid "Net Groups" msgstr "???" #: ../../ipalib/plugins/netgroup.py:52 msgid "Netgroup name" msgstr "?????" #: ../../ipalib/plugins/netgroup.py:59 msgid "Netgroup description" msgstr "?????" #: ../../ipalib/plugins/netgroup.py:63 msgid "NIS domain name" msgstr "NIS??" #: ../../ipalib/plugins/netgroup.py:80 msgid "Member host" msgstr "????" #: ../../ipalib/plugins/netgroup.py:88 msgid "External host" msgstr "????" #: ../../ipalib/plugins/misc.py:37 #, python-format msgid "%(count)d variables" msgstr "" #: ../../ipalib/plugins/misc.py:96 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/user.py:53 msgid "User login" msgstr "?????" #: ../../ipalib/plugins/user.py:60 msgid "First name" msgstr "?" #: ../../ipalib/plugins/user.py:64 msgid "Last name" msgstr "?" #: ../../ipalib/plugins/user.py:72 msgid "GECOS field" msgstr "GECOS??" #: ../../ipalib/plugins/user.py:78 msgid "Login shell" msgstr "??shell" #: ../../ipalib/plugins/user.py:83 msgid "Kerberos principal" msgstr "" #: ../../ipalib/plugins/user.py:89 msgid "Email address" msgstr "????" #: ../../ipalib/plugins/user.py:93 msgid "Password" msgstr "??" #: ../../ipalib/plugins/user.py:94 msgid "Set the user password" msgstr "??????" #: ../../ipalib/plugins/user.py:101 msgid "UID" msgstr "UID" #: ../../ipalib/plugins/user.py:102 msgid "UID (use this option to set it manually)" msgstr "" #: ../../ipalib/plugins/user.py:106 msgid "Street address" msgstr "????" #: ../../ipalib/plugins/user.py:113 msgid "Netgroups" msgstr "???" #: ../../ipalib/plugins/user.py:117 msgid "Rolegroups" msgstr "???" #: ../../ipalib/plugins/user.py:121 msgid "Taskgroups" msgstr "???" #: ../../ipalib/plugins/user.py:134 #, python-format msgid "Added user \"%(value)s\"" msgstr "????\"%(value)s\"" #: ../../ipalib/plugins/user.py:179 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "?????\"%(value)s\"" #: ../../ipalib/plugins/user.py:198 #, python-format msgid "Modified user \"%(value)s\"" msgstr "?????\"%(value)s\"" #: ../../ipalib/plugins/user.py:209 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/user.py:229 #, python-format msgid "Locked user \"%(value)s\"" msgstr "?????\"%(value)s\"" #: ../../ipalib/plugins/user.py:255 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "?????\"%(value)s\"" #: ../../ipalib/plugins/taskgroup.py:43 msgid "Task Groups" msgstr "???" #: ../../ipalib/plugins/taskgroup.py:48 msgid "Task-group name" msgstr "?????" #: ../../ipalib/plugins/taskgroup.py:55 msgid "Task-group description" msgstr "?????" #: ../../ipalib/plugins/taskgroup.py:66 msgid "Member role-groups" msgstr "" #: ../../ipalib/plugins/taskgroup.py:79 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:89 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:99 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/taskgroup.py:110 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/hostgroup.py:43 msgid "Host Groups" msgstr "???" #: ../../ipalib/plugins/hostgroup.py:48 msgid "Host-group" msgstr "???" #: ../../ipalib/plugins/hostgroup.py:49 msgid "Name of host-group" msgstr "?????" #: ../../ipalib/plugins/hostgroup.py:56 msgid "A description of this host-group" msgstr "" #: ../../ipalib/plugins/hostgroup.py:59 msgid "Member hosts" msgstr "????" #: ../../ipalib/plugins/hostgroup.py:63 msgid "Member host-groups" msgstr "?????" #: ../../ipalib/plugins/hostgroup.py:80 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:90 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:100 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/hostgroup.py:111 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" msgstr[1] "" #: ../../ipalib/plugins/pwpolicy.py:121 #: ../../ipalib/plugins/pwpolicy.py:173 #: ../../ipalib/plugins/pwpolicy.py:225 #: ../../ipalib/plugins/pwpolicy.py:321 msgid "Group" msgstr "?" #: ../../ipalib/plugins/pwpolicy.py:126 msgid "Max lifetime (days)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:127 msgid "Maximum password lifetime (in days)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:133 msgid "Min lifetime (hours)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:134 msgid "Minimum password lifetime (in hours)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:140 msgid "History size" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:141 msgid "Password history size" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:147 msgid "Character classes" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:148 msgid "Minimum number of character classes" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:154 msgid "Min length" msgstr "????" #: ../../ipalib/plugins/pwpolicy.py:155 msgid "Minimum length of password" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:169 #, python-format msgid "Added policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:174 #: ../../ipalib/plugins/pwpolicy.py:226 msgid "Group to set policy for" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:179 #: ../../ipalib/plugins/pwpolicy.py:230 msgid "Priority" msgstr "???" #: ../../ipalib/plugins/pwpolicy.py:180 #: ../../ipalib/plugins/pwpolicy.py:231 msgid "Priority of the policy (higher number equals lower priority)" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:222 #, python-format msgid "Modified policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:244 msgid "priority cannot be set on global policy" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:277 #, python-format msgid "Deleted policy for group \"%(value)s\"" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:322 msgid "Group to display policy" msgstr "" #: ../../ipalib/plugins/pwpolicy.py:325 msgid "User" msgstr "??" #: ../../ipalib/plugins/pwpolicy.py:326 msgid "Display policy applied to a given user" msgstr "" #: ../../ipaserver/install/certs.py:576 #: ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 #: ../../ipaserver/plugins/dogtag.py:1602 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" #: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "Request subject \"%(request_subject)s\" does not match the form \"%(subject_base)s\"" msgstr "" #: ../../ipaserver/plugins/selfsign.py:107 #, python-format msgid "unable to decode csr: %s" msgstr "????csr: %s" #: ../../ipaserver/plugins/selfsign.py:128 #: ../../ipaserver/plugins/selfsign.py:143 msgid "file operation" msgstr "????" #: ../../ipaserver/plugins/selfsign.py:157 msgid "cannot obtain next serial number" msgstr "??????????" #: ../../ipaserver/plugins/selfsign.py:192 msgid "certutil failure" msgstr "" #, fuzzy #~ msgid "bind password" #~ msgstr "????" From jderose at redhat.com Fri Mar 19 10:22:07 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 04:22:07 -0600 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod In-Reply-To: <4B9151B1.7050502@redhat.com> References: <4B9151B1.7050502@redhat.com> Message-ID: <1268994127.19515.1.camel@jgd-dsk> On Fri, 2010-03-05 at 13:47 -0500, Rob Crittenden wrote: > Raise an error if no modifications were performed in an update. > > This will alert the user that nothing was done and is handy when used > with --attr=''. This can be used to delete a non-required attribute but > can be set to any valid attribute, present or not. We should alert the > user if they attempt to delete a non-existant value. > > rob Tiny conflict, but I'm not going to guess. :) Can you rebase this? error: patch failed: ipalib/plugins/baseldap.py:272 From jderose at redhat.com Fri Mar 19 11:24:41 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 05:24:41 -0600 Subject: [Freeipa-devel] [PATCH] 399 Include params in Method.output_params In-Reply-To: <4B96C298.1090405@redhat.com> References: <4B9173AA.2000602@redhat.com> <4B966418.4050406@redhat.com> <4B96C298.1090405@redhat.com> Message-ID: <1268997881.19515.51.camel@jgd-dsk> On Tue, 2010-03-09 at 16:50 -0500, Rob Crittenden wrote: > Pavel Zuna wrote: > > Rob Crittenden wrote: > >> Method overrides the Command get_output_params() method and only > >> returns the object params, not anything defined within the method > >> itself. Return > >> those as well so they are displayed in output. Some care needs to be > >> taken to avoid returning duplicate values. In the case of duplicates > >> the value in obj.params wins. > >> > >> I tested this with the pwpolicy plugin which is a Method and defines > >> its own takes_options. I need this to display the priority to the user. > >> > >> rob > >> > > Applies with minor modifications due to recent gettext patches. > > Shouldn't there be a check for 'no_output' when going through > > self.obj.params? > > > > Pavel > > Yup, new patch attached, good catch. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 11:25:04 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 05:25:04 -0600 Subject: [Freeipa-devel] [PATCH] 400 fix pwpolicy plugin In-Reply-To: <4B917484.3050000@redhat.com> References: <4B917484.3050000@redhat.com> Message-ID: <1268997904.19515.52.camel@jgd-dsk> On Fri, 2010-03-05 at 16:15 -0500, Rob Crittenden wrote: > This patch relies on patch #399 > > Fix a number of bugs in the pwpolicy plugin > > This fixes: > - Consistent usage of priority vs cospriority in options > - Fixes bug introduced with recent patch where global policy couldn't be > updated > - Doesn't allow cospriority to be removed for groups (#570536) > - returns the priority with group policy so it can be displayed > - Properly unicode encode group names for display > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 11:25:23 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 05:25:23 -0600 Subject: [Freeipa-devel] [PATCH] 401 fix ipa-server-certinstall In-Reply-To: <4B97C630.8000204@redhat.com> References: <4B97C630.8000204@redhat.com> Message-ID: <1268997923.19515.53.camel@jgd-dsk> On Wed, 2010-03-10 at 11:17 -0500, Rob Crittenden wrote: > This command was broken because the api needed to be bootstrapped. I > also switched to a new function in certs that makes it easier to trust > all CAs found in a PKCS#12 file. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 11:25:37 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 05:25:37 -0600 Subject: [Freeipa-devel] [PATCH] 402 location of root CA In-Reply-To: <4B97D00E.3000605@redhat.com> References: <4B97D00E.3000605@redhat.com> Message-ID: <1268997937.19515.54.camel@jgd-dsk> On Wed, 2010-03-10 at 11:59 -0500, Rob Crittenden wrote: > Make CA PKCS#12 location arg for ipa-replica-prepare, default > /root/cacert.p12 > > pki-silent puts a copy of the root CA into /root/tmp-ca.p12. Rename this > to /root/cacert.p12. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 11:25:49 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 05:25:49 -0600 Subject: [Freeipa-devel] [PATCH] 403 correct installation CA output In-Reply-To: <4B97D040.6000406@redhat.com> References: <4B97D040.6000406@redhat.com> Message-ID: <1268997949.19515.55.camel@jgd-dsk> On Wed, 2010-03-10 at 12:00 -0500, Rob Crittenden wrote: > Better customize the message regarding the CA based on the install options. > > There are now 3 cases: > > - Install a dogtag CA and issue server certs using that > - Install a selfsign CA and issue server certs using that > - Install using either dogtag or selfsign and use the provided PKCS#12 > files for the server certs. The installed CA will still be used by the > cert plugin to issue any server certs. > > rob ack. pushed to master. From rcritten at redhat.com Fri Mar 19 13:48:18 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 09:48:18 -0400 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod In-Reply-To: <1268994127.19515.1.camel@jgd-dsk> References: <4B9151B1.7050502@redhat.com> <1268994127.19515.1.camel@jgd-dsk> Message-ID: <4BA380A2.60402@redhat.com> Jason Gerard DeRose wrote: > On Fri, 2010-03-05 at 13:47 -0500, Rob Crittenden wrote: >> Raise an error if no modifications were performed in an update. >> >> This will alert the user that nothing was done and is handy when used >> with --attr=''. This can be used to delete a non-required attribute but >> can be set to any valid attribute, present or not. We should alert the >> user if they attempt to delete a non-existant value. >> >> rob > > Tiny conflict, but I'm not going to guess. :) Can you rebase this? > > error: patch failed: ipalib/plugins/baseldap.py:272 > > Re-based patch attached. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-397-2.patch Type: application/mbox Size: 1095 bytes Desc: not available URL: From jderose at redhat.com Fri Mar 19 14:29:20 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 08:29:20 -0600 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4B9AC7DD.6060504@redhat.com> References: <4B9AC7DD.6060504@redhat.com> Message-ID: <1269008960.19515.56.camel@jgd-dsk> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: > Ensure that the group policy priority is unique. > > We use CoS to determine the order in which group policy is applied. The > behavior in CoS is undefined for multiple entries with the same > cospriority. > > This likely relies on some other outstanding pwpolicy patches. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 14:29:41 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 08:29:41 -0600 Subject: [Freeipa-devel] [PATCH] 405 Fix the client make target In-Reply-To: <4B9E7140.9040706@redhat.com> References: <4B9E7140.9040706@redhat.com> Message-ID: <1269008981.19515.57.camel@jgd-dsk> On Mon, 2010-03-15 at 13:41 -0400, Rob Crittenden wrote: > Fix the client make target. It was broken due to the addition of the > i18n code which lives inside the server code. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 14:29:53 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 08:29:53 -0600 Subject: [Freeipa-devel] [PATCH] 406 add option for pam_mkhomedirs to client installer In-Reply-To: <4B9E7178.2070609@redhat.com> References: <4B9E7178.2070609@redhat.com> Message-ID: <1269008993.19515.58.camel@jgd-dsk> On Mon, 2010-03-15 at 13:42 -0400, Rob Crittenden wrote: > Add a new option, --mkhomedirs, to the ipa-client-install script. We > pass this along to authconfig so that pam_mkhomedirs is configured. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 14:30:06 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 08:30:06 -0600 Subject: [Freeipa-devel] [PATCH] 407 make ipautil.run() logging more flexible In-Reply-To: <4B9EA1CF.8030704@redhat.com> References: <4B9EA1CF.8030704@redhat.com> Message-ID: <1269009006.19515.59.camel@jgd-dsk> On Mon, 2010-03-15 at 17:08 -0400, Rob Crittenden wrote: > Provide mechanism in ipautil.run() to not log all arguments. > > This is primarily designed to not log passwords but it could have other > uses. > > rob ack. pushed to master. From jderose at redhat.com Fri Mar 19 14:38:45 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 19 Mar 2010 08:38:45 -0600 Subject: [Freeipa-devel] [PATCH] 397 raise exception on empty mod In-Reply-To: <4BA380A2.60402@redhat.com> References: <4B9151B1.7050502@redhat.com> <1268994127.19515.1.camel@jgd-dsk> <4BA380A2.60402@redhat.com> Message-ID: <1269009525.19515.60.camel@jgd-dsk> On Fri, 2010-03-19 at 09:48 -0400, Rob Crittenden wrote: > Jason Gerard DeRose wrote: > > On Fri, 2010-03-05 at 13:47 -0500, Rob Crittenden wrote: > >> Raise an error if no modifications were performed in an update. > >> > >> This will alert the user that nothing was done and is handy when used > >> with --attr=''. This can be used to delete a non-required attribute but > >> can be set to any valid attribute, present or not. We should alert the > >> user if they attempt to delete a non-existant value. > >> > >> rob > > > > Tiny conflict, but I'm not going to guess. :) Can you rebase this? > > > > error: patch failed: ipalib/plugins/baseldap.py:272 > > > > > > Re-based patch attached. > > rob ack. pushed to master. From pzuna at redhat.com Fri Mar 19 14:40:56 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Fri, 19 Mar 2010 15:40:56 +0100 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <1269008960.19515.56.camel@jgd-dsk> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> Message-ID: <4BA38CF8.5010503@redhat.com> Jason Gerard DeRose wrote: > On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >> Ensure that the group policy priority is unique. >> >> We use CoS to determine the order in which group policy is applied. The >> behavior in CoS is undefined for multiple entries with the same >> cospriority. >> >> This likely relies on some other outstanding pwpolicy patches. >> >> rob > > ack. pushed to master. > The patch works, but I find the way it checks for priority uniqueness highly ineffective. It pulls out all policies and then retrieves their CoS entries one by one to do the checking. Instead it should just make a search for a CoS entry with the given priority. Pavel From pzuna at redhat.com Fri Mar 19 15:34:55 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Fri, 19 Mar 2010 16:34:55 +0100 Subject: [Freeipa-devel] [PATCH] Add new pwpolicy plugin based on baseldap classes. Message-ID: <4BA3999F.8010408@redhat.com> Last week, I spent a good amount of time investigating about the way we build/normalize DNs. Most issues, that came up recently originated in the password policy plugin as it needed specially crafted DNs for class of service (CoS) entries. As I was playing around with it, I decided to rewrite it, so that it blends with all the other "baseldap plugins" we have. I didn't want to override Rob's original pwpolicy plugin right away, so I named it pwpolicy2, so that we can have both plugins available for now. pwpolicy2 includes all functionality the original plugin had including the latest changes like priority uniqueness etc. There is a small interface change - group names are entered as the first positional argument. If no group is specified, the plugin assumes the global password policy. It supports --all/--raw and has fine grained searching capabilities (the original plugin was only able to return all policies). It also shows priority when displaying policies. There is a lot of technical changes. It's a complete rewrite. Everything is based on baseldap classes, so the code should be a bit simpler and commands behavior more consistent with other plugins. CoS objects are modeled separately and have their own CRUD commands. I flagged the CoS commands as INTERNAL (see my recent patch), so that users aren't able to access CoS entries directly, but pwpolicy2 can take advantage of our plugin infrastructure to manage them. I think this is a good example of how internal plugin are useful. It's also very handy for testing, you can just remove the INTERNAL flag and use `ipa cosentry-find --all --raw` to check if the entries were created/modified/whatever correctly. Unit test included. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Add-new-pwpolicy-plugin-based-on-baseldap-classes.patch Type: application/mbox Size: 18724 bytes Desc: not available URL: From pzuna at redhat.com Fri Mar 19 15:37:17 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Fri, 19 Mar 2010 16:37:17 +0100 Subject: [Freeipa-devel] [PATCH] Add new pwpolicy plugin based on baseldap classes. In-Reply-To: <4BA3999F.8010408@redhat.com> References: <4BA3999F.8010408@redhat.com> Message-ID: <4BA39A2D.5020008@redhat.com> Pavel Zuna wrote: > Last week, I spent a good amount of time investigating about the way we > build/normalize DNs. Most issues, that came up recently originated in > the password policy plugin as it needed specially crafted DNs for class > of service (CoS) entries. As I was playing around with it, I decided to > rewrite it, so that it blends with all the other "baseldap plugins" we > have. > > I didn't want to override Rob's original pwpolicy plugin right away, so > I named it pwpolicy2, so that we can have both plugins available for now. > > pwpolicy2 includes all functionality the original plugin had including > the latest changes like priority uniqueness etc. There is a small > interface change - group names are entered as the first positional > argument. If no group is specified, the plugin assumes the global > password policy. It supports --all/--raw and has fine grained searching > capabilities (the original plugin was only able to return all policies). > It also shows priority when displaying policies. > > There is a lot of technical changes. It's a complete rewrite. Everything > is based on baseldap classes, so the code should be a bit simpler and > commands behavior more consistent with other plugins. CoS objects are > modeled separately and have their own CRUD commands. I flagged the CoS > commands as INTERNAL (see my recent patch), so that users aren't able to > access CoS entries directly, but pwpolicy2 can take advantage of our > plugin infrastructure to manage them. I think this is a good example of > how internal plugin are useful. It's also very handy for testing, you > can just remove the INTERNAL flag and use `ipa cosentry-find --all > --raw` to check if the entries were created/modified/whatever correctly. > > Unit test included. > > Pavel This patch depends on: [PATCH] Enable LDAPObject subclasses to disable DN normalization in their methods. [PATCH] Don't escape DN characters between quotes in attribute values. and this (it will work w/o it, but users will be able to access cosentry CRUD commands): [PATCH] Add INTERNAL flag to frontend plugins. If set, the plugin won't show up in UI. Pavel From rcritten at redhat.com Fri Mar 19 17:25:52 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 13:25:52 -0400 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4BA38CF8.5010503@redhat.com> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> <4BA38CF8.5010503@redhat.com> Message-ID: <4BA3B3A0.30708@redhat.com> Pavel Zuna wrote: > Jason Gerard DeRose wrote: >> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >>> Ensure that the group policy priority is unique. >>> >>> We use CoS to determine the order in which group policy is applied. >>> The behavior in CoS is undefined for multiple entries with the same >>> cospriority. >>> >>> This likely relies on some other outstanding pwpolicy patches. >>> >>> rob >> >> ack. pushed to master. >> > The patch works, but I find the way it checks for priority uniqueness > highly ineffective. It pulls out all policies and then retrieves their > CoS entries one by one to do the checking. Instead it should just make a > search for a CoS entry with the given priority. > > Pavel Well, we may need to store the group policy entries in a subtree then. All CoS policies are currently dumped into the same place making this impossible. rob From rcritten at redhat.com Fri Mar 19 18:42:29 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 14:42:29 -0400 Subject: [Freeipa-devel] [PATCH] 410 enable anonymous VLV In-Reply-To: <4BA149C5.3000209@redhat.com> References: <4BA149C5.3000209@redhat.com> Message-ID: <4BA3C595.70601@redhat.com> Rob Crittenden wrote: > Modify the VLV aci to allow anonymous searches. This will allow Solaris > clients to function properly. > > A similar patch will need to be committed to the freeipa-1.2 branch. > > rob I'm going to withdraw this patch and do it another way. We don't need to enable this by default, only when the compat plugin is enabled. rob From rcritten at redhat.com Fri Mar 19 20:21:31 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 16:21:31 -0400 Subject: [Freeipa-devel] [PATCH] Add new pwpolicy plugin based on baseldap classes. In-Reply-To: <4BA3999F.8010408@redhat.com> References: <4BA3999F.8010408@redhat.com> Message-ID: <4BA3DCCB.4030209@redhat.com> Pavel Zuna wrote: > Last week, I spent a good amount of time investigating about the way we > build/normalize DNs. Most issues, that came up recently originated in > the password policy plugin as it needed specially crafted DNs for class > of service (CoS) entries. As I was playing around with it, I decided to > rewrite it, so that it blends with all the other "baseldap plugins" we > have. > > I didn't want to override Rob's original pwpolicy plugin right away, so > I named it pwpolicy2, so that we can have both plugins available for now. > > pwpolicy2 includes all functionality the original plugin had including > the latest changes like priority uniqueness etc. There is a small > interface change - group names are entered as the first positional > argument. If no group is specified, the plugin assumes the global > password policy. It supports --all/--raw and has fine grained searching > capabilities (the original plugin was only able to return all policies). > It also shows priority when displaying policies. > > There is a lot of technical changes. It's a complete rewrite. Everything > is based on baseldap classes, so the code should be a bit simpler and > commands behavior more consistent with other plugins. CoS objects are > modeled separately and have their own CRUD commands. I flagged the CoS > commands as INTERNAL (see my recent patch), so that users aren't able to > access CoS entries directly, but pwpolicy2 can take advantage of our > plugin infrastructure to manage them. I think this is a good example of > how internal plugin are useful. It's also very handy for testing, you > can just remove the INTERNAL flag and use `ipa cosentry-find --all > --raw` to check if the entries were created/modified/whatever correctly. > > Unit test included. > > Pavel nack. There should be a comment expressing why the policy entry is named the way it is and why the DN can't be normalized. cos entries other than password policy are stored in cn=cosTemplates so the uniqueness check will return false positives. It is not legal for a group policy to not have a cospriority so there is no need to catch this condition in pwpolicy2_mod. rob From rcritten at redhat.com Fri Mar 19 20:56:25 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 16:56:25 -0400 Subject: [Freeipa-devel] [PATCH] 410 enable anonymous VLV In-Reply-To: <4BA3C595.70601@redhat.com> References: <4BA149C5.3000209@redhat.com> <4BA3C595.70601@redhat.com> Message-ID: <4BA3E4F9.7060007@redhat.com> Rob Crittenden wrote: > Rob Crittenden wrote: >> Modify the VLV aci to allow anonymous searches. This will allow >> Solaris clients to function properly. >> >> A similar patch will need to be committed to the freeipa-1.2 branch. >> >> rob > > I'm going to withdraw this patch and do it another way. We don't need to > enable this by default, only when the compat plugin is enabled. > > rob Revised patch attached. I don't see a need to enable this in all cases, just when the compat plugin is enabled. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-410-2-vlv.patch Type: application/mbox Size: 1291 bytes Desc: not available URL: From rcritten at redhat.com Fri Mar 19 21:18:15 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 19 Mar 2010 17:18:15 -0400 Subject: [Freeipa-devel] [PATCH] 386 replica management In-Reply-To: <4B7EDA0F.2070808@redhat.com> References: <4B7EDA0F.2070808@redhat.com> Message-ID: <4BA3EA17.6040304@redhat.com> Rob Crittenden wrote: > ipa-replica-manage used to require the DM password for every operation. > This adds a couple of ACIs so a privileged user can use the 'list' and > 'del' commands. Doing add is possible but tricky since we use the same > replication password for all replicas (currently the DM password). We'd > probably want to create a separate user for each replica if this were > the case and prompt for a password to use. > > This also has a problem where it can't distinguish between "there are no > replication agreements" and "you aren't allowed to see them" because > queries to cn=config don't return an error if you are not authorized. > Pavel is in the process of switching to using ldap2 for all LDAP access > and this module already has Get Effective Rights support. Once the > switch is done we can improve the logic here. > > rob I got an ack from Rich Megginson from the 389-ds team who ok'd the aci work I did. He mentioned that we're using LDAPv2-style dn escaping and should switch this but I'm going to take that up as a separate task. pushed to master. David, this provides a new way to do an old thing. rob From jdennis at redhat.com Sat Mar 20 00:27:29 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 19 Mar 2010 20:27:29 -0400 Subject: [Freeipa-devel] [PATCH 13/13] Update Polish and Chinese translations Message-ID: <201003200027.o2K0RTlG013144@int-mx05.intmail.prod.int.phx2.redhat.com> -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0013-Update-Polish-and-Chinese-translations.patch Type: text/x-patch Size: 43959 bytes Desc: not available URL: From pzuna at redhat.com Mon Mar 22 09:41:04 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Mon, 22 Mar 2010 10:41:04 +0100 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4BA3B3A0.30708@redhat.com> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> <4BA38CF8.5010503@redhat.com> <4BA3B3A0.30708@redhat.com> Message-ID: <4BA73B30.9020702@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> Jason Gerard DeRose wrote: >>> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >>>> Ensure that the group policy priority is unique. >>>> >>>> We use CoS to determine the order in which group policy is applied. >>>> The behavior in CoS is undefined for multiple entries with the same >>>> cospriority. >>>> >>>> This likely relies on some other outstanding pwpolicy patches. >>>> >>>> rob >>> >>> ack. pushed to master. >>> >> The patch works, but I find the way it checks for priority uniqueness >> highly ineffective. It pulls out all policies and then retrieves their >> CoS entries one by one to do the checking. Instead it should just make >> a search for a CoS entry with the given priority. >> >> Pavel > > Well, we may need to store the group policy entries in a subtree then. > All CoS policies are currently dumped into the same place making this > impossible. Not necessarily. It's just a matter of tweaking the search filter. We can search only for CoS entries, that have the krbContainer object class and their krbPwdReference attribute contains a group DN. > rob Pavel From pzuna at redhat.com Mon Mar 22 10:30:40 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Mon, 22 Mar 2010 11:30:40 +0100 Subject: [Freeipa-devel] about DNs Message-ID: <4BA746D0.4010501@redhat.com> Hi, I didn't want to quote the already over-quoted e-mail about DNs from Rich, so I'm "starting a new thread". :) Anyway, if I understand correctly, we should stop using quoted strings in DNs and use escapes instead, so: This: cn="dc=example,dc=com",dc=example,dc=com Becomes this: cn=dc\=example\,dc\=com,dc=example,dc=com ldap2 was designed to produces DNs like this, but we still use the old LDAPv2 style in a lot of places, so we made it possible to disable DN normalization and stopped escaping characters in quoted attribute values. This introduced the recent problems with python-ldap functions blowing up in our faces, when a plugin author didn't check his DNs manually. With your approval, I would like to make sure we switch to the new LDAPv3 style DNs everywhere, because: 1) it's going to prevent future problems if strict DN syntax checking is turned on (Rich was talking about this) 2) we'll be able to use ldap2 methods to build DNs everywhere, preventing python-ldap calls from blowing up 3) we'll be able to remove the ability to disable DN normalization as it won't be needed anymore, thus simplifying our LDAP API When this is done, we should encourage plugin authors to use our framework to build DNs instead of doing it manually, because it's fail-safe and will work even if the location where the entries are stored changes. Example: building DNs for CoS entries of password policies: group = 'some_group_name' container_cos = 'cn=cosTemplates,%s' % api.env.container_accounts group_dn = api.Object.group.get_dn(group) cos_dn = ldap2.make_dn_from_attr( 'cn', group_dn, container_costemplates ) Pavel From rcritten at redhat.com Mon Mar 22 13:26:07 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 09:26:07 -0400 Subject: [Freeipa-devel] [PATCH 13/13] Update Polish and Chinese translations In-Reply-To: <201003200027.o2K0RTlG013144@int-mx05.intmail.prod.int.phx2.redhat.com> References: <201003200027.o2K0RTlG013144@int-mx05.intmail.prod.int.phx2.redhat.com> Message-ID: <4BA76FEF.2020007@redhat.com> John Dennis wrote: > > This patch does not apply patch -p1 --dry-run < /tmp/0013-Update-Polish-and-Chinese-translations.patch patching file install/po/pl.po Hunk #1 FAILED at 6. Hunk #2 FAILED at 104. Hunk #4 FAILED at 443. Hunk #5 FAILED at 675. Hunk #6 FAILED at 687. Hunk #7 FAILED at 802. Hunk #8 FAILED at 894. Hunk #9 FAILED at 935. Hunk #10 FAILED at 1250. Hunk #11 FAILED at 1306. Hunk #12 succeeded at 692 (offset -631 lines). Hunk #13 FAILED at 708. Hunk #14 FAILED at 967. Hunk #15 succeeded at 1477 (offset -172 lines). 12 out of 15 hunks FAILED -- saving rejects to file install/po/pl.po.rej patching file install/po/zh_CN.po From rcritten at redhat.com Mon Mar 22 14:02:56 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 10:02:56 -0400 Subject: [Freeipa-devel] about DNs In-Reply-To: <4BA746D0.4010501@redhat.com> References: <4BA746D0.4010501@redhat.com> Message-ID: <4BA77890.80303@redhat.com> Pavel Z?na wrote: > Hi, > I didn't want to quote the already over-quoted e-mail about DNs from > Rich, so I'm "starting a new thread". :) > > Anyway, if I understand correctly, we should stop using quoted strings > in DNs and use escapes instead, so: > > This: cn="dc=example,dc=com",dc=example,dc=com > Becomes this: cn=dc\=example\,dc\=com,dc=example,dc=com > > ldap2 was designed to produces DNs like this, but we still use the old > LDAPv2 style in a lot of places, so we made it possible to disable DN > normalization and stopped escaping characters in quoted attribute > values. This introduced the recent problems with python-ldap functions > blowing up in our faces, when a plugin author didn't check his DNs > manually. > > With your approval, I would like to make sure we switch to the new > LDAPv3 style DNs everywhere, because: > 1) it's going to prevent future problems if strict DN syntax checking is > turned on (Rich was talking about this) > 2) we'll be able to use ldap2 methods to build DNs everywhere, > preventing python-ldap calls from blowing up > 3) we'll be able to remove the ability to disable DN normalization as it > won't be needed anymore, thus simplifying our LDAP API > > When this is done, we should encourage plugin authors to use our > framework to build DNs instead of doing it manually, because it's > fail-safe and will work even if the location where the entries are > stored changes. > > > Example: building DNs for CoS entries of password policies: > > group = 'some_group_name' > container_cos = 'cn=cosTemplates,%s' % api.env.container_accounts > > group_dn = api.Object.group.get_dn(group) > > cos_dn = ldap2.make_dn_from_attr( > 'cn', group_dn, container_costemplates > ) > Yes go ahead, we need to do this to support the upcoming strict enforcement in 389-ds. Note that you may still need to retain the ability to skip the normalizer. The KDC ldap plugin is extremely picky about DN format. You'll know quickly enough if things are working by creating some group password policy and see if it is enforced. rob From rcritten at redhat.com Mon Mar 22 14:27:08 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 10:27:08 -0400 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4BA73B30.9020702@redhat.com> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> <4BA38CF8.5010503@redhat.com> <4BA3B3A0.30708@redhat.com> <4BA73B30.9020702@redhat.com> Message-ID: <4BA77E3C.9090202@redhat.com> Pavel Z?na wrote: > Rob Crittenden wrote: >> Pavel Zuna wrote: >>> Jason Gerard DeRose wrote: >>>> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >>>>> Ensure that the group policy priority is unique. >>>>> >>>>> We use CoS to determine the order in which group policy is applied. >>>>> The behavior in CoS is undefined for multiple entries with the same >>>>> cospriority. >>>>> >>>>> This likely relies on some other outstanding pwpolicy patches. >>>>> >>>>> rob >>>> >>>> ack. pushed to master. >>>> >>> The patch works, but I find the way it checks for priority uniqueness >>> highly ineffective. It pulls out all policies and then retrieves >>> their CoS entries one by one to do the checking. Instead it should >>> just make a search for a CoS entry with the given priority. >>> >>> Pavel >> >> Well, we may need to store the group policy entries in a subtree then. >> All CoS policies are currently dumped into the same place making this >> impossible. > Not necessarily. It's just a matter of tweaking the search filter. We > can search only for CoS entries, that have the krbContainer object class > and their krbPwdReference attribute contains a group DN. Oh right, duh. Yeah, it is even simpler than that as we don't need to look at group dns because only group policy is stored this way. New patch attached. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-404-2-pwpolicy.patch Type: application/mbox Size: 8259 bytes Desc: not available URL: From jdennis at redhat.com Mon Mar 22 14:38:40 2010 From: jdennis at redhat.com (John Dennis) Date: Mon, 22 Mar 2010 10:38:40 -0400 Subject: [Freeipa-devel] [PATCH 13/13] Update Polish and Chinese translations In-Reply-To: <4BA76FEF.2020007@redhat.com> References: <201003200027.o2K0RTlG013144@int-mx05.intmail.prod.int.phx2.redhat.com> <4BA76FEF.2020007@redhat.com> Message-ID: <4BA780F0.5040006@redhat.com> On 03/22/2010 09:26 AM, Rob Crittenden wrote: > John Dennis wrote: >> >> > > This patch does not apply > > patch -p1 --dry-run < > /tmp/0013-Update-Polish-and-Chinese-translations.patch > patching file install/po/pl.po > Hunk #1 FAILED at 6. > Hunk #2 FAILED at 104. > Hunk #4 FAILED at 443. > Hunk #5 FAILED at 675. > Hunk #6 FAILED at 687. > Hunk #7 FAILED at 802. > Hunk #8 FAILED at 894. > Hunk #9 FAILED at 935. > Hunk #10 FAILED at 1250. > Hunk #11 FAILED at 1306. > Hunk #12 succeeded at 692 (offset -631 lines). > Hunk #13 FAILED at 708. > Hunk #14 FAILED at 967. > Hunk #15 succeeded at 1477 (offset -172 lines). > 12 out of 15 hunks FAILED -- saving rejects to file install/po/pl.po.rej > patching file install/po/zh_CN.po I don't think "[PATCH 6/6] update Polish translations" was pushed, that would cause the merge failure if that were the case. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Mon Mar 22 14:41:47 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 10:41:47 -0400 Subject: [Freeipa-devel] [PATCH] Add INTERNAL flag to frontend plugins. If set, the plugin won't show up in UI. In-Reply-To: <4B9F99B5.4070309@redhat.com> References: <4B9F99B5.4070309@redhat.com> Message-ID: <4BA781AB.9070102@redhat.com> Pavel Zuna wrote: > We discussed this with Jason on IRC. There are cases when a defining an > internal command plugin might come in handy. The plugin can be used by > other plugin (for example to create "helper" objects in LDAP like Class > of Service entries). > > Pavel > ack, pushed to master From rcritten at redhat.com Mon Mar 22 15:20:28 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 11:20:28 -0400 Subject: [Freeipa-devel] [PATCH] Don't escape DN characters between quotes in attribute values. In-Reply-To: <4B9F9A2D.7060002@redhat.com> References: <4B9F9A2D.7060002@redhat.com> Message-ID: <4BA78ABC.3030601@redhat.com> Pavel Zuna wrote: > This makes it possible to create DNs as required by some class of > service plugins, where the DN actually contains another DN in quotes. > > Pavel > I guess we should skip this patch or do the reverse if we're not going to support quoted dns. rob From rcritten at redhat.com Mon Mar 22 15:49:28 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 11:49:28 -0400 Subject: [Freeipa-devel] Use ldap2.make_*dn* methods in pwpolicy plugin. In-Reply-To: <4B9F9A73.6080206@redhat.com> References: <4B9F9A73.6080206@redhat.com> Message-ID: <4BA79188.6050105@redhat.com> Pavel Zuna wrote: > Fixes bug #572423 (Providing multiple group names in pwpolicy-show > command throws internal serer error.) > > Pavel > ack, pushed to master From rcritten at redhat.com Mon Mar 22 17:46:35 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 13:46:35 -0400 Subject: [Freeipa-devel] [PATCH 6/6] update Polish translations In-Reply-To: <4B954BB5.4050404@redhat.com> References: <4B954BB5.4050404@redhat.com> Message-ID: <4BA7ACFB.2050200@redhat.com> John Dennis wrote: > > pushed to master From rcritten at redhat.com Mon Mar 22 17:47:00 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 22 Mar 2010 13:47:00 -0400 Subject: [Freeipa-devel] [PATCH 13/13] Update Polish and Chinese translations In-Reply-To: <4BA780F0.5040006@redhat.com> References: <201003200027.o2K0RTlG013144@int-mx05.intmail.prod.int.phx2.redhat.com> <4BA76FEF.2020007@redhat.com> <4BA780F0.5040006@redhat.com> Message-ID: <4BA7AD14.3050603@redhat.com> John Dennis wrote: > On 03/22/2010 09:26 AM, Rob Crittenden wrote: >> John Dennis wrote: >>> >>> >> >> This patch does not apply >> >> patch -p1 --dry-run < >> /tmp/0013-Update-Polish-and-Chinese-translations.patch >> patching file install/po/pl.po >> Hunk #1 FAILED at 6. >> Hunk #2 FAILED at 104. >> Hunk #4 FAILED at 443. >> Hunk #5 FAILED at 675. >> Hunk #6 FAILED at 687. >> Hunk #7 FAILED at 802. >> Hunk #8 FAILED at 894. >> Hunk #9 FAILED at 935. >> Hunk #10 FAILED at 1250. >> Hunk #11 FAILED at 1306. >> Hunk #12 succeeded at 692 (offset -631 lines). >> Hunk #13 FAILED at 708. >> Hunk #14 FAILED at 967. >> Hunk #15 succeeded at 1477 (offset -172 lines). >> 12 out of 15 hunks FAILED -- saving rejects to file install/po/pl.po.rej >> patching file install/po/zh_CN.po > > I don't think "[PATCH 6/6] update Polish translations" was pushed, that > would cause the merge failure if that were the case. > Yes, I missed that one. Pushed now. This one pushed too rob From pzuna at redhat.com Tue Mar 23 14:34:03 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 23 Mar 2010 15:34:03 +0100 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4BA77E3C.9090202@redhat.com> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> <4BA38CF8.5010503@redhat.com> <4BA3B3A0.30708@redhat.com> <4BA73B30.9020702@redhat.com> <4BA77E3C.9090202@redhat.com> Message-ID: <4BA8D15B.8070200@redhat.com> Rob Crittenden wrote: > Pavel Z?na wrote: >> Rob Crittenden wrote: >>> Pavel Zuna wrote: >>>> Jason Gerard DeRose wrote: >>>>> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >>>>>> Ensure that the group policy priority is unique. >>>>>> >>>>>> We use CoS to determine the order in which group policy is >>>>>> applied. The behavior in CoS is undefined for multiple entries >>>>>> with the same >>>>>> cospriority. >>>>>> >>>>>> This likely relies on some other outstanding pwpolicy patches. >>>>>> >>>>>> rob >>>>> >>>>> ack. pushed to master. >>>>> >>>> The patch works, but I find the way it checks for priority >>>> uniqueness highly ineffective. It pulls out all policies and then >>>> retrieves their CoS entries one by one to do the checking. Instead >>>> it should just make a search for a CoS entry with the given priority. >>>> >>>> Pavel >>> >>> Well, we may need to store the group policy entries in a subtree >>> then. All CoS policies are currently dumped into the same place >>> making this impossible. >> Not necessarily. It's just a matter of tweaking the search filter. We >> can search only for CoS entries, that have the krbContainer object >> class and their krbPwdReference attribute contains a group DN. > > Oh right, duh. Yeah, it is even simpler than that as we don't need to > look at group dns because only group policy is stored this way. > > New patch attached. > > rob The patch looks fine, but doesn't apply since the original patch was pushed. Pavel From pzuna at redhat.com Tue Mar 23 14:42:34 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 23 Mar 2010 15:42:34 +0100 Subject: [Freeipa-devel] [PATCH] Add new pwpolicy plugin based on baseldap classes. In-Reply-To: <4BA3DCCB.4030209@redhat.com> References: <4BA3999F.8010408@redhat.com> <4BA3DCCB.4030209@redhat.com> Message-ID: <4BA8D35A.3060208@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> Last week, I spent a good amount of time investigating about the way >> we build/normalize DNs. Most issues, that came up recently originated >> in the password policy plugin as it needed specially crafted DNs for >> class of service (CoS) entries. As I was playing around with it, I >> decided to rewrite it, so that it blends with all the other "baseldap >> plugins" we have. >> >> I didn't want to override Rob's original pwpolicy plugin right away, >> so I named it pwpolicy2, so that we can have both plugins available >> for now. >> >> pwpolicy2 includes all functionality the original plugin had including >> the latest changes like priority uniqueness etc. There is a small >> interface change - group names are entered as the first positional >> argument. If no group is specified, the plugin assumes the global >> password policy. It supports --all/--raw and has fine grained >> searching capabilities (the original plugin was only able to return >> all policies). It also shows priority when displaying policies. >> >> There is a lot of technical changes. It's a complete rewrite. >> Everything is based on baseldap classes, so the code should be a bit >> simpler and commands behavior more consistent with other plugins. CoS >> objects are modeled separately and have their own CRUD commands. I >> flagged the CoS commands as INTERNAL (see my recent patch), so that >> users aren't able to access CoS entries directly, but pwpolicy2 can >> take advantage of our plugin infrastructure to manage them. I think >> this is a good example of how internal plugin are useful. It's also >> very handy for testing, you can just remove the INTERNAL flag and use >> `ipa cosentry-find --all --raw` to check if the entries were >> created/modified/whatever correctly. >> >> Unit test included. >> >> Pavel > > nack. > > There should be a comment expressing why the policy entry is named the > way it is and why the DN can't be normalized. You mean why are policies located under the realm entry or why are they named after groups? DNs of password policies can be normalized. Only DNs of CoS entries can't be for now. > cos entries other than password policy are stored in cn=cosTemplates so > the uniqueness check will return false positives. I assume this is a false alarm, (See discussion in Rob's 404 patch thread) > It is not legal for a group policy to not have a cospriority so there is > no need to catch this condition in pwpolicy2_mod. You're not forced to modify the priority, so we do need to catch this condition. > rob Anyway, I would probably defer from pushing this in any case until we completely switch to LDAPv3 style DNs. Pavel From pzuna at redhat.com Tue Mar 23 14:43:28 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 23 Mar 2010 15:43:28 +0100 Subject: [Freeipa-devel] [PATCH] Don't escape DN characters between quotes in attribute values. In-Reply-To: <4BA78ABC.3030601@redhat.com> References: <4B9F9A2D.7060002@redhat.com> <4BA78ABC.3030601@redhat.com> Message-ID: <4BA8D390.50005@redhat.com> Rob Crittenden wrote: > Pavel Zuna wrote: >> This makes it possible to create DNs as required by some class of >> service plugins, where the DN actually contains another DN in quotes. >> >> Pavel >> > > I guess we should skip this patch or do the reverse if we're not going > to support quoted dns. Agreed. Let's drop this patch. > rob Pavel From rcritten at redhat.com Tue Mar 23 18:04:31 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 23 Mar 2010 14:04:31 -0400 Subject: [Freeipa-devel] [PATCH] 404 ensure priority is unique In-Reply-To: <4BA8D15B.8070200@redhat.com> References: <4B9AC7DD.6060504@redhat.com> <1269008960.19515.56.camel@jgd-dsk> <4BA38CF8.5010503@redhat.com> <4BA3B3A0.30708@redhat.com> <4BA73B30.9020702@redhat.com> <4BA77E3C.9090202@redhat.com> <4BA8D15B.8070200@redhat.com> Message-ID: <4BA902AF.20209@redhat.com> Pavel Zuna wrote: > Rob Crittenden wrote: >> Pavel Z?na wrote: >>> Rob Crittenden wrote: >>>> Pavel Zuna wrote: >>>>> Jason Gerard DeRose wrote: >>>>>> On Fri, 2010-03-12 at 18:01 -0500, Rob Crittenden wrote: >>>>>>> Ensure that the group policy priority is unique. >>>>>>> >>>>>>> We use CoS to determine the order in which group policy is >>>>>>> applied. The behavior in CoS is undefined for multiple entries >>>>>>> with the same >>>>>>> cospriority. >>>>>>> >>>>>>> This likely relies on some other outstanding pwpolicy patches. >>>>>>> >>>>>>> rob >>>>>> >>>>>> ack. pushed to master. >>>>>> >>>>> The patch works, but I find the way it checks for priority >>>>> uniqueness highly ineffective. It pulls out all policies and then >>>>> retrieves their CoS entries one by one to do the checking. Instead >>>>> it should just make a search for a CoS entry with the given priority. >>>>> >>>>> Pavel >>>> >>>> Well, we may need to store the group policy entries in a subtree >>>> then. All CoS policies are currently dumped into the same place >>>> making this impossible. >>> Not necessarily. It's just a matter of tweaking the search filter. We >>> can search only for CoS entries, that have the krbContainer object >>> class and their krbPwdReference attribute contains a group DN. >> >> Oh right, duh. Yeah, it is even simpler than that as we don't need to >> look at group dns because only group policy is stored this way. >> >> New patch attached. >> >> rob > The patch looks fine, but doesn't apply since the original patch was > pushed. > > Pavel > Ok, I just pushed out the diff in unique_priority then. rob From jdennis at redhat.com Tue Mar 23 18:35:27 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 23 Mar 2010 14:35:27 -0400 Subject: [Freeipa-devel] [PATCH] 409 configure CRL URI In-Reply-To: <4BA12790.9030102@redhat.com> References: <4BA12790.9030102@redhat.com> Message-ID: <4BA909EF.504@redhat.com> On 03/17/2010 03:03 PM, Rob Crittenden wrote: > Configure the CRL URI in dogtag. > > Also print out a restart message after applying the custom subject. > It takes a while to restart dogtag and this lets the user know things > are moving forward. ACK -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From jdennis at redhat.com Tue Mar 23 19:34:24 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 23 Mar 2010 15:34:24 -0400 Subject: [Freeipa-devel] [PATCH] 410 enable anonymous VLV In-Reply-To: <4BA3E4F9.7060007@redhat.com> References: <4BA149C5.3000209@redhat.com> <4BA3C595.70601@redhat.com> <4BA3E4F9.7060007@redhat.com> Message-ID: <4BA917C0.1020700@redhat.com> On 03/19/2010 04:56 PM, Rob Crittenden wrote: > Rob Crittenden wrote: >> Rob Crittenden wrote: >>> Modify the VLV aci to allow anonymous searches. This will allow >>> Solaris clients to function properly. >>> >>> A similar patch will need to be committed to the freeipa-1.2 branch. >>> >>> rob >> >> I'm going to withdraw this patch and do it another way. We don't need >> to enable this by default, only when the compat plugin is enabled. >> >> rob > > Revised patch attached. I don't see a need to enable this in all cases, > just when the compat plugin is enabled. Looks harmless, ACK -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Tue Mar 23 20:40:27 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 23 Mar 2010 16:40:27 -0400 Subject: [Freeipa-devel] Use ldap2 instead of legacy LDAP code from v1 in installer scripts. In-Reply-To: <4B9F9B50.7070103@redhat.com> References: <4B9F9B50.7070103@redhat.com> Message-ID: <4BA9273B.9030004@redhat.com> Pavel Zuna wrote: > This is the first in a series of patches, that replace all the legacy > code from v1 related to LDAP. I did some limited testing of the > installer after this patch and nothing seems to break, but I didn't do > replicas etc... > > Pavel nack. This breaks at least ipa-replica-manage, ipa-replica-prepare, ipa-server-certinstall and ipa-replica-install. rob From pzuna at redhat.com Wed Mar 24 11:08:13 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Wed, 24 Mar 2010 12:08:13 +0100 Subject: [Freeipa-devel] [PATCH] Fix output of commands, that do not return entries. Message-ID: <4BA9F29D.2070601@redhat.com> This patch fixes Command.output_for_cli for the env plugin. Before we assumed, that a list/tuple is always a list of entries and a dict is always an entry. Still, this solution isn't perfect. I think, that in the future, we should allow Output subclasses to control the way we output values instead of doing type-based output in Command.output_for_cli. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-output-for-commands-that-do-not-return-entries.patch Type: application/mbox Size: 2042 bytes Desc: not available URL: From pzuna at redhat.com Wed Mar 24 11:12:02 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Wed, 24 Mar 2010 12:12:02 +0100 Subject: [Freeipa-devel] [PATCH] Fix output of commands, that do not return entries. In-Reply-To: <4BA9F29D.2070601@redhat.com> References: <4BA9F29D.2070601@redhat.com> Message-ID: <4BA9F382.9090101@redhat.com> Pavel Z?na wrote: > This patch fixes Command.output_for_cli for the env plugin. Before we > assumed, that a list/tuple is always a list of entries and a dict is > always an entry. > > Still, this solution isn't perfect. I think, that in the future, we > should allow Output subclasses to control the way we output values > instead of doing type-based output in Command.output_for_cli. > > Pavel Before anyone asks... :) I also changed the default value of the print_all argument in textui.print_entry from False to True. It think it makes more sense this way, because: 1) if order is None, it will still print something 2) if order is not None, it will print what's in order first and then the rest 3) commands that care about the print_all argument have to set it in any case, those that don't care usually want to print everything Pavel From pzuna at redhat.com Wed Mar 24 11:29:52 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Wed, 24 Mar 2010 12:29:52 +0100 Subject: [Freeipa-devel] [PATCH] Fix output of env plugin. It displayed more than it should. Message-ID: <4BA9F7B0.4060905@redhat.com> Some outputs were missing the 'no_display' flag. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-output-of-env-plugin.-It-displayed-more-than-it-.patch Type: application/mbox Size: 860 bytes Desc: not available URL: From rcritten at redhat.com Wed Mar 24 14:18:47 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 24 Mar 2010 10:18:47 -0400 Subject: [Freeipa-devel] [PATCH] Fix output of commands, that do not return entries. In-Reply-To: <4BA9F382.9090101@redhat.com> References: <4BA9F29D.2070601@redhat.com> <4BA9F382.9090101@redhat.com> Message-ID: <4BAA1F47.3050108@redhat.com> Pavel Z?na wrote: > Pavel Z?na wrote: >> This patch fixes Command.output_for_cli for the env plugin. Before we >> assumed, that a list/tuple is always a list of entries and a dict is >> always an entry. >> >> Still, this solution isn't perfect. I think, that in the future, we >> should allow Output subclasses to control the way we output values >> instead of doing type-based output in Command.output_for_cli. >> >> Pavel > Before anyone asks... :) > > I also changed the default value of the print_all argument in > textui.print_entry from False to True. It think it makes more sense this > way, because: > 1) if order is None, it will still print something > 2) if order is not None, it will print what's in order first and then > the rest > 3) commands that care about the print_all argument have to set it in any > case, those that don't care usually want to print everything Why not set the default for print_all in print_entries() to True as well? Seems like this reasoning should be documented in the function as well. Particularly how print_all gets handled when one returns Entries or a ListOfEntries vs just returning a dict/tuple (where --all controls whether everything is printed in the former and defaults to everything in the later assuming print_entries also ends up defaulting to True). rob From pzuna at redhat.com Wed Mar 24 15:04:49 2010 From: pzuna at redhat.com (=?UTF-8?B?UGF2ZWwgWsWvbmE=?=) Date: Wed, 24 Mar 2010 16:04:49 +0100 Subject: [Freeipa-devel] [PATCH] Fix output of commands, that do not return entries. In-Reply-To: <4BAA1F47.3050108@redhat.com> References: <4BA9F29D.2070601@redhat.com> <4BA9F382.9090101@redhat.com> <4BAA1F47.3050108@redhat.com> Message-ID: <4BAA2A11.9050606@redhat.com> Rob Crittenden wrote: > Pavel Z?na wrote: >> Pavel Z?na wrote: >>> This patch fixes Command.output_for_cli for the env plugin. Before we >>> assumed, that a list/tuple is always a list of entries and a dict is >>> always an entry. >>> >>> Still, this solution isn't perfect. I think, that in the future, we >>> should allow Output subclasses to control the way we output values >>> instead of doing type-based output in Command.output_for_cli. >>> >>> Pavel >> Before anyone asks... :) >> >> I also changed the default value of the print_all argument in >> textui.print_entry from False to True. It think it makes more sense >> this way, because: >> 1) if order is None, it will still print something >> 2) if order is not None, it will print what's in order first and then >> the rest >> 3) commands that care about the print_all argument have to set it in >> any case, those that don't care usually want to print everything > > Why not set the default for print_all in print_entries() to True as well? That's just a mistake I made. Fixed. > Seems like this reasoning should be documented in the function as well. > Particularly how print_all gets handled when one returns Entries or a > ListOfEntries vs just returning a dict/tuple (where --all controls > whether everything is printed in the former and defaults to everything > in the later assuming print_entries also ends up defaulting to True). Added docstring for Command.output_for_cli and also updated the docstring for Command.get_options with info about --all/--raw. > rob New patch attached. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-output-for-commands-that-do-not-return-entries.patch Type: application/mbox Size: 3770 bytes Desc: not available URL: From jderose at redhat.com Fri Mar 26 11:24:34 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 26 Mar 2010 05:24:34 -0600 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change Message-ID: <1269602674.10264.15.camel@jgd-dsk> This quick patch changes the XML-RPC signature to match the complementary change being made in certmonger. The signature is now: [args, options] This doesn't yet include the [args, options, extra] change... that is coming in my rpcserver patch once it's done. But this provides what needed for current IPA <=> certmonger compatibility. -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-jderose-053-XML-RPC-signature-change.patch Type: text/x-patch Size: 2840 bytes Desc: not available URL: From pzuna at redhat.com Fri Mar 26 13:01:52 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Fri, 26 Mar 2010 14:01:52 +0100 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. Message-ID: <4BACB040.4000206@redhat.com> This patch effectively removes all LDAPv2 style quoted DNs and makes sure we don't use them anymore. KDC doesn't seem to have any problems with LDAPv3 style DNs, but I kept the option to disable DN normalization for now. I also had to add a new dollar variable for LDIF files: $ESCAPED_SUFFIX. We need it to create entries that contain the DN of another entry in their own, like the account activated/inactivated CoS entries. what I tested: - playing around with password policies and CoS entries using both pwpolicy and pwpolicy2 - changing user passwords to see if the policies apply - re-installing IPA to see if the activated/inactived CoS entries where OK - user-lock/user-unlock The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on it, but won't apply without. I didn't realize before committing and couldn't get it back by re-basing, so... Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Use-escapes-in-DNs-instead-of-quoting.patch Type: application/mbox Size: 10070 bytes Desc: not available URL: From jdennis at redhat.com Fri Mar 26 13:22:37 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 26 Mar 2010 09:22:37 -0400 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change In-Reply-To: <1269602674.10264.15.camel@jgd-dsk> References: <1269602674.10264.15.camel@jgd-dsk> Message-ID: <4BACB51D.10307@redhat.com> On 03/26/2010 07:24 AM, Jason Gerard DeRose wrote: > This quick patch changes the XML-RPC signature to match the > complementary change being made in certmonger. > > The signature is now: > > [args, options] > > This doesn't yet include the [args, options, extra] change... that is > coming in my rpcserver patch once it's done. But this provides what > needed for current IPA<=> certmonger compatibility. NAK Is there a reason for the type inconsistency? Why is it a list in one case and a tuple in the other? I realize they'll both operate the same way but the inconsistency is confusing especially if there is no reason to use different type objects (e.g. no need for a mutable sequence). -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Fri Mar 26 15:56:21 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 26 Mar 2010 11:56:21 -0400 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BACB040.4000206@redhat.com> References: <4BACB040.4000206@redhat.com> Message-ID: <4BACD925.2090107@redhat.com> Pavel Zuna wrote: > This patch effectively removes all LDAPv2 style quoted DNs and makes > sure we don't use them anymore. > > KDC doesn't seem to have any problems with LDAPv3 style DNs, but I kept > the option to disable DN normalization for now. > > I also had to add a new dollar variable for LDIF files: $ESCAPED_SUFFIX. > We need it to create entries that contain the DN of another entry in > their own, like the account activated/inactivated CoS entries. > > what I tested: > - playing around with password policies and CoS entries using both > pwpolicy and pwpolicy2 > - changing user passwords to see if the policies apply > - re-installing IPA to see if the activated/inactived CoS entries where OK > - user-lock/user-unlock > > The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on > it, but won't apply without. I didn't realize before committing and > couldn't get it back by re-basing, so... > > Pavel replication also uses v2-style escaping. This code looks ok for what it touches but it isn't complete. rob From rcritten at redhat.com Fri Mar 26 20:58:04 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 26 Mar 2010 16:58:04 -0400 Subject: [Freeipa-devel] [PATCH] Fix output of commands, that do not return entries. In-Reply-To: <4BAA2A11.9050606@redhat.com> References: <4BA9F29D.2070601@redhat.com> <4BA9F382.9090101@redhat.com> <4BAA1F47.3050108@redhat.com> <4BAA2A11.9050606@redhat.com> Message-ID: <4BAD1FDC.2060800@redhat.com> Pavel Z?na wrote: > Rob Crittenden wrote: >> Pavel Z?na wrote: >>> Pavel Z?na wrote: >>>> This patch fixes Command.output_for_cli for the env plugin. Before >>>> we assumed, that a list/tuple is always a list of entries and a dict >>>> is always an entry. >>>> >>>> Still, this solution isn't perfect. I think, that in the future, we >>>> should allow Output subclasses to control the way we output values >>>> instead of doing type-based output in Command.output_for_cli. >>>> >>>> Pavel >>> Before anyone asks... :) >>> >>> I also changed the default value of the print_all argument in >>> textui.print_entry from False to True. It think it makes more sense >>> this way, because: >>> 1) if order is None, it will still print something >>> 2) if order is not None, it will print what's in order first and then >>> the rest >>> 3) commands that care about the print_all argument have to set it in >>> any case, those that don't care usually want to print everything >> >> Why not set the default for print_all in print_entries() to True as well? > That's just a mistake I made. Fixed. > >> Seems like this reasoning should be documented in the function as >> well. Particularly how print_all gets handled when one returns Entries >> or a ListOfEntries vs just returning a dict/tuple (where --all >> controls whether everything is printed in the former and defaults to >> everything in the later assuming print_entries also ends up defaulting >> to True). > Added docstring for Command.output_for_cli and also updated the > docstring for Command.get_options with info about --all/--raw. > >> rob > > New patch attached. > > Pavel Ok. I'm a little uneasy about printing everything but we'll address that case when it comes up. So far everything works. I added your reasoning to the commit message. ack, pushed to master. From jderose at redhat.com Fri Mar 26 21:18:57 2010 From: jderose at redhat.com (Jason Gerard DeRose) Date: Fri, 26 Mar 2010 15:18:57 -0600 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change In-Reply-To: <4BACB51D.10307@redhat.com> References: <1269602674.10264.15.camel@jgd-dsk> <4BACB51D.10307@redhat.com> Message-ID: <1269638337.10264.24.camel@jgd-dsk> On Fri, 2010-03-26 at 09:22 -0400, John Dennis wrote: > On 03/26/2010 07:24 AM, Jason Gerard DeRose wrote: > > This quick patch changes the XML-RPC signature to match the > > complementary change being made in certmonger. > > > > The signature is now: > > > > [args, options] > > > > This doesn't yet include the [args, options, extra] change... that is > > coming in my rpcserver patch once it's done. But this provides what > > needed for current IPA<=> certmonger compatibility. > > NAK > > Is there a reason for the type inconsistency? Why is it a list in one > case and a tuple in the other? I realize they'll both operate the same > way but the inconsistency is confusing especially if there is no reason > to use different type objects (e.g. no need for a mutable sequence). We use lists and tuples interchangeability. Tuple are nice because they aren't mutable and are a bit more efficient in terms of memory use, but both json.loads() and xmlrpclib.loads() return lists. My general plan has been to move to using just lists. json.dumps() and xmlrpclib.dumps() also treat tuples and lists the same... both are serialized to a list type. So there's no type change of any consequence in this patch. From jdennis at redhat.com Fri Mar 26 21:51:56 2010 From: jdennis at redhat.com (John Dennis) Date: Fri, 26 Mar 2010 17:51:56 -0400 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change In-Reply-To: <1269638337.10264.24.camel@jgd-dsk> References: <1269602674.10264.15.camel@jgd-dsk> <4BACB51D.10307@redhat.com> <1269638337.10264.24.camel@jgd-dsk> Message-ID: <4BAD2C7C.4050900@redhat.com> On 03/26/2010 05:18 PM, Jason Gerard DeRose wrote: > On Fri, 2010-03-26 at 09:22 -0400, John Dennis wrote: >> On 03/26/2010 07:24 AM, Jason Gerard DeRose wrote: >>> This quick patch changes the XML-RPC signature to match the >>> complementary change being made in certmonger. >>> >>> The signature is now: >>> >>> [args, options] >>> >>> This doesn't yet include the [args, options, extra] change... that is >>> coming in my rpcserver patch once it's done. But this provides what >>> needed for current IPA<=> certmonger compatibility. >> >> NAK >> >> Is there a reason for the type inconsistency? Why is it a list in one >> case and a tuple in the other? I realize they'll both operate the same >> way but the inconsistency is confusing especially if there is no reason >> to use different type objects (e.g. no need for a mutable sequence). > > We use lists and tuples interchangeability. Tuple are nice because they > aren't mutable and are a bit more efficient in terms of memory use, but > both json.loads() and xmlrpclib.loads() return lists. My general plan > has been to move to using just lists. So if the plan is to converge on just using lists then what better time to start than now? > > json.dumps() and xmlrpclib.dumps() also treat tuples and lists the > same... both are serialized to a list type. > > So there's no type change of any consequence in this patch. As I said, I know they are interchangeable in most cases. When I read code and see differing usage I presume there is a reason and I go looking for the reason so that I can follow the correct usage model. If there is no actual difference then I've wasted time trying to understand why things are different. Consistency has value especially in a huge body of code contributed to by many developers. I realize in this particular case I'm nit-picking and I fully understand the API's of xmlrpclib and json but I'm going to push for things like consistency, removal of dead code and no code duplication whenever I see it. All those things just make it harder to understand the code. It's part of the reason we do patch reviews along with finding logic errors. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Fri Mar 26 21:57:45 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Fri, 26 Mar 2010 17:57:45 -0400 Subject: [Freeipa-devel] super of crud.Delete Message-ID: <4BAD2DD9.5050602@redhat.com> I was poking around at the base classes today and I'm wondering if we need to change the parent of crud.Delete(). The use case is host-del. We store the short and the fqdn name of hosts. I think that for deleting we want enforce using the fqdn to be sure bad things never happen. If we use the short name then we'll need to make some fixes in the delete pre_callback() because right now you can delete with a short name and the services for that host won't be deleted. This is the bug that got me looking into this. So lets assume we want to require fqdn. This should be easy since the fqdn Param has a validator for this. Unfortunately for things based on the PKQuery class validators aren't executed. I had a couple ideas how to address this, throwing it out there for discussion: 1. Make the query argument a class attribute that can be overridden. 2. Base crud.Delete on crud.Method instead 3. Add a get_args() implementation to baseldap.LDAPDelete 4. Do nothing with the class inheritance and handle this in host_del pre_callback(). rob From admin at transifex.net Sun Mar 28 17:34:11 2010 From: admin at transifex.net (admin at transifex.net) Date: Sun, 28 Mar 2010 17:34:11 -0000 Subject: [Freeipa-devel] [www.transifex.net] Team User Joining Requested: Russian Message-ID: <20100328173411.9865.15039@web1.transifex.net> Hello freeipa, this is Transifex at http://www.transifex.net. The user 'kruvalig' has asked to join the 'Russian' translation team of the 'FreeIPA' project. Please, visit Transifex at http://www.transifex.net/projects/p/freeipa/team/ru/ in order to manage this team. For changing how you receive notifications, please go to http://www.transifex.net/notices/. Thank you, Transifex From pzuna at redhat.com Mon Mar 29 12:38:10 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Mon, 29 Mar 2010 14:38:10 +0200 Subject: [Freeipa-devel] [PATCH] Add ipa man page. Message-ID: <4BB09F32.7040004@redhat.com> Oops, forgot to post the patch. Sorry and thanks to Rob for reminding me. :) The man page is installed/uninstalled automatically with IPA. It's under 1 (User commands). I also attached the man page separately for more convenient reviews. Use `man ./ipa.1.gz` to view it. By the way, I'm not used to write "formal" English, so feel free to point out any mistakes or reword sentences that don't make sense. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-ipa-man-page.patch Type: application/mbox Size: 9632 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ipa.1.gz Type: application/x-gzip Size: 2728 bytes Desc: not available URL: From pzuna at redhat.com Mon Mar 29 13:04:59 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Mon, 29 Mar 2010 15:04:59 +0200 Subject: [Freeipa-devel] super of crud.Delete In-Reply-To: <4BAD2DD9.5050602@redhat.com> References: <4BAD2DD9.5050602@redhat.com> Message-ID: <4BB0A57B.5050703@redhat.com> On 03/26/2010 10:57 PM, Rob Crittenden wrote: > I was poking around at the base classes today and I'm wondering if we > need to change the parent of crud.Delete(). > > The use case is host-del. We store the short and the fqdn name of hosts. > I think that for deleting we want enforce using the fqdn to be sure bad > things never happen. If we use the short name then we'll need to make > some fixes in the delete pre_callback() because right now you can delete > with a short name and the services for that host won't be deleted. This > is the bug that got me looking into this. > > So lets assume we want to require fqdn. This should be easy since the > fqdn Param has a validator for this. Unfortunately for things based on > the PKQuery class validators aren't executed. > > I had a couple ideas how to address this, throwing it out there for > discussion: > > 1. Make the query argument a class attribute that can be overridden. [OT] I already had a similar idea many times. I think we should have a method similar to Param.clone() that wouldn't override kwargs set explicitly. It could be used in situations like this one or when we want to define parameters for Object that aren't necessarily attributes (for example because we don't want them to be processed by Command.args_options_2_params). [/OT] > 2. Base crud.Delete on crud.Method instead > 3. Add a get_args() implementation to baseldap.LDAPDelete > 4. Do nothing with the class inheritance and handle this in host_del > pre_callback(). > > rob > I think this is an issue specific to the host plugin - it overrides LDAPObject.get_dn, so that users can refer to hosts by either hostname or fqdn. We should probably go with option 4: retrieve the host entry fqdn attribute in pre_callback first and then search for services with it. Pavel From rcritten at redhat.com Mon Mar 29 15:33:19 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 29 Mar 2010 11:33:19 -0400 Subject: [Freeipa-devel] [PATCH] 411 better handling for hostname Message-ID: <4BB0C83F.5040501@redhat.com> If we deleted a host not using the FQDN then its services would not be removed. Catch this situation and handle the deletion. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-411-host.patch Type: application/mbox Size: 5590 bytes Desc: not available URL: From rcritten at redhat.com Mon Mar 29 21:05:44 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Mon, 29 Mar 2010 17:05:44 -0400 Subject: [Freeipa-devel] [PATCH] 412 log information on result Message-ID: <4BB11628.807@redhat.com> We currently log just the connection open/close and the command being executed. This adds something about what the result of the request was, either an exception or the number of records returned. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-412-result.patch Type: text/x-patch Size: 923 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 30 10:51:24 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 12:51:24 +0200 Subject: [Freeipa-devel] [PATCH] 411 better handling for hostname In-Reply-To: <4BB0C83F.5040501@redhat.com> References: <4BB0C83F.5040501@redhat.com> Message-ID: <4BB1D7AC.3010908@redhat.com> On 03/29/2010 05:33 PM, Rob Crittenden wrote: > If we deleted a host not using the FQDN then its services would not be > removed. Catch this situation and handle the deletion. > > rob > ack. Pavel From pzuna at redhat.com Tue Mar 30 11:08:10 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 13:08:10 +0200 Subject: [Freeipa-devel] [PATCH] 412 log information on result In-Reply-To: <4BB11628.807@redhat.com> References: <4BB11628.807@redhat.com> Message-ID: <4BB1DB9A.8070508@redhat.com> On 03/29/2010 11:05 PM, Rob Crittenden wrote: > We currently log just the connection open/close and the command being > executed. This adds something about what the result of the request was, > either an exception or the number of records returned. > > rob > How is the number of entries returned useful? What about commands that don't return entries? Other than that, it works and doesn't hurt anybody :), so ack. Pavel From pzuna at redhat.com Tue Mar 30 12:53:23 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 14:53:23 +0200 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BACD925.2090107@redhat.com> References: <4BACB040.4000206@redhat.com> <4BACD925.2090107@redhat.com> Message-ID: <4BB1F443.5040809@redhat.com> On 03/26/2010 04:56 PM, Rob Crittenden wrote: > Pavel Zuna wrote: >> This patch effectively removes all LDAPv2 style quoted DNs and makes >> sure we don't use them anymore. >> >> KDC doesn't seem to have any problems with LDAPv3 style DNs, but I >> kept the option to disable DN normalization for now. >> >> I also had to add a new dollar variable for LDIF files: >> $ESCAPED_SUFFIX. We need it to create entries that contain the DN of >> another entry in their own, like the account activated/inactivated CoS >> entries. >> >> what I tested: >> - playing around with password policies and CoS entries using both >> pwpolicy and pwpolicy2 >> - changing user passwords to see if the policies apply >> - re-installing IPA to see if the activated/inactived CoS entries >> where OK >> - user-lock/user-unlock >> >> The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on >> it, but won't apply without. I didn't realize before committing and >> couldn't get it back by re-basing, so... >> >> Pavel > > replication also uses v2-style escaping. This code looks ok for what it > touches but it isn't complete. Maybe I'm wrong, but it seems that the cn="SUFFIX",cn=mapping tree,cn=config entry is created automatically by DS and there's no much we can do about it. We could delete the entry and create a new one, but I suspect replication won't like it. > rob Pavel From rcritten at redhat.com Tue Mar 30 13:41:24 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 09:41:24 -0400 Subject: [Freeipa-devel] [PATCH] 411 better handling for hostname In-Reply-To: <4BB1D7AC.3010908@redhat.com> References: <4BB0C83F.5040501@redhat.com> <4BB1D7AC.3010908@redhat.com> Message-ID: <4BB1FF84.5000106@redhat.com> Pavel Zuna wrote: > On 03/29/2010 05:33 PM, Rob Crittenden wrote: >> If we deleted a host not using the FQDN then its services would not be >> removed. Catch this situation and handle the deletion. >> >> rob >> > ack. > > Pavel pushed to master From rcritten at redhat.com Tue Mar 30 13:41:33 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 09:41:33 -0400 Subject: [Freeipa-devel] [PATCH] 412 log information on result In-Reply-To: <4BB1DB9A.8070508@redhat.com> References: <4BB11628.807@redhat.com> <4BB1DB9A.8070508@redhat.com> Message-ID: <4BB1FF8D.4020907@redhat.com> Pavel Zuna wrote: > On 03/29/2010 11:05 PM, Rob Crittenden wrote: >> We currently log just the connection open/close and the command being >> executed. This adds something about what the result of the request was, >> either an exception or the number of records returned. >> >> rob >> > How is the number of entries returned useful? What about commands that > don't return entries? I'm not entirely sure either. Those that don't have a count will display 1. It seemed like we should show something here, we can remove it if it ends up being useless. > > Other than that, it works and doesn't hurt anybody :), so ack. ok, pushed to master From rcritten at redhat.com Tue Mar 30 13:42:19 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 09:42:19 -0400 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BB1F443.5040809@redhat.com> References: <4BACB040.4000206@redhat.com> <4BACD925.2090107@redhat.com> <4BB1F443.5040809@redhat.com> Message-ID: <4BB1FFBB.4090202@redhat.com> Pavel Zuna wrote: > On 03/26/2010 04:56 PM, Rob Crittenden wrote: >> Pavel Zuna wrote: >>> This patch effectively removes all LDAPv2 style quoted DNs and makes >>> sure we don't use them anymore. >>> >>> KDC doesn't seem to have any problems with LDAPv3 style DNs, but I >>> kept the option to disable DN normalization for now. >>> >>> I also had to add a new dollar variable for LDIF files: >>> $ESCAPED_SUFFIX. We need it to create entries that contain the DN of >>> another entry in their own, like the account activated/inactivated CoS >>> entries. >>> >>> what I tested: >>> - playing around with password policies and CoS entries using both >>> pwpolicy and pwpolicy2 >>> - changing user passwords to see if the policies apply >>> - re-installing IPA to see if the activated/inactived CoS entries >>> where OK >>> - user-lock/user-unlock >>> >>> The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on >>> it, but won't apply without. I didn't realize before committing and >>> couldn't get it back by re-basing, so... >>> >>> Pavel >> >> replication also uses v2-style escaping. This code looks ok for what it >> touches but it isn't complete. > Maybe I'm wrong, but it seems that the cn="SUFFIX",cn=mapping > tree,cn=config entry is created automatically by DS and there's no much > we can do about it. We could delete the entry and create a new one, but > I suspect replication won't like it. Yes, looks like you're right. Rich, any thoughts on this? rob From rmeggins at redhat.com Tue Mar 30 14:19:54 2010 From: rmeggins at redhat.com (Rich Megginson) Date: Tue, 30 Mar 2010 08:19:54 -0600 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BB1F443.5040809@redhat.com> References: <4BACB040.4000206@redhat.com> <4BACD925.2090107@redhat.com> <4BB1F443.5040809@redhat.com> Message-ID: <4BB2088A.6050806@redhat.com> Pavel Zuna wrote: > On 03/26/2010 04:56 PM, Rob Crittenden wrote: >> Pavel Zuna wrote: >>> This patch effectively removes all LDAPv2 style quoted DNs and makes >>> sure we don't use them anymore. >>> >>> KDC doesn't seem to have any problems with LDAPv3 style DNs, but I >>> kept the option to disable DN normalization for now. >>> >>> I also had to add a new dollar variable for LDIF files: >>> $ESCAPED_SUFFIX. We need it to create entries that contain the DN of >>> another entry in their own, like the account activated/inactivated CoS >>> entries. >>> >>> what I tested: >>> - playing around with password policies and CoS entries using both >>> pwpolicy and pwpolicy2 >>> - changing user passwords to see if the policies apply >>> - re-installing IPA to see if the activated/inactived CoS entries >>> where OK >>> - user-lock/user-unlock >>> >>> The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on >>> it, but won't apply without. I didn't realize before committing and >>> couldn't get it back by re-basing, so... >>> >>> Pavel >> >> replication also uses v2-style escaping. This code looks ok for what it >> touches but it isn't complete. > Maybe I'm wrong, but it seems that the cn="SUFFIX",cn=mapping > tree,cn=config entry is created automatically by DS Yes. > and there's no much we can do about it. Right. > We could delete the entry and create a new one, but I suspect > replication won't like it. Right. Don't do that. There are still a number of places in the directory server where quotes are still used in DNs. We have not gone through and removed all of those. We won't get around to doing this for 389-ds-base 1.2.6, probably in some later release. However, you should still be able to search for the cn="SUFFIX",cn=mapping tree,cn=config entry using LDAPv3 style escapes - the escapes should match the quotes inside the server. Just make sure SUFFIX is the normalized DN (and that assumes the server is using the normalized DN too). /me grumbles at the fact that someone thought it was a good idea to use DNs as values within other DNs in non-DN syntax attributes . . . > >> rob > > Pavel > > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel at redhat.com > https://www.redhat.com/mailman/listinfo/freeipa-devel From pzuna at redhat.com Tue Mar 30 14:20:52 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 16:20:52 +0200 Subject: [Freeipa-devel] [PATCH] Fix http(s)_request in dogtag. Was blowing up because of unicode strings. Message-ID: <4BB208C4.4040700@redhat.com> Fixed while fixing my "ldap2 for installer" patch. :) Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-http-s-_request-in-dogtag.-Was-blowing-up-becaus.patch Type: application/mbox Size: 1118 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 30 14:22:37 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 16:22:37 +0200 Subject: [Freeipa-devel] Use ldap2 instead of legacy LDAP code from v1 in installer scripts. In-Reply-To: <4BA9273B.9030004@redhat.com> References: <4B9F9B50.7070103@redhat.com> <4BA9273B.9030004@redhat.com> Message-ID: <4BB2092D.9090306@redhat.com> On 03/23/2010 09:40 PM, Rob Crittenden wrote: > Pavel Zuna wrote: >> This is the first in a series of patches, that replace all the legacy >> code from v1 related to LDAP. I did some limited testing of the >> installer after this patch and nothing seems to break, but I didn't do >> replicas etc... >> >> Pavel > > nack. This breaks at least ipa-replica-manage, ipa-replica-prepare, > ipa-server-certinstall and ipa-replica-install. > > rob Fixed patch attached. Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Use-ldap2-instead-of-legacy-LDAP-code-from-v1-in-ins.patch Type: application/mbox Size: 24263 bytes Desc: not available URL: From pzuna at redhat.com Tue Mar 30 14:37:10 2010 From: pzuna at redhat.com (Pavel Zuna) Date: Tue, 30 Mar 2010 16:37:10 +0200 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BB2088A.6050806@redhat.com> References: <4BACB040.4000206@redhat.com> <4BACD925.2090107@redhat.com> <4BB1F443.5040809@redhat.com> <4BB2088A.6050806@redhat.com> Message-ID: <4BB20C96.7050903@redhat.com> On 03/30/2010 04:19 PM, Rich Megginson wrote: > Pavel Zuna wrote: >> On 03/26/2010 04:56 PM, Rob Crittenden wrote: >>> Pavel Zuna wrote: >>>> This patch effectively removes all LDAPv2 style quoted DNs and makes >>>> sure we don't use them anymore. >>>> >>>> KDC doesn't seem to have any problems with LDAPv3 style DNs, but I >>>> kept the option to disable DN normalization for now. >>>> >>>> I also had to add a new dollar variable for LDIF files: >>>> $ESCAPED_SUFFIX. We need it to create entries that contain the DN of >>>> another entry in their own, like the account activated/inactivated CoS >>>> entries. >>>> >>>> what I tested: >>>> - playing around with password policies and CoS entries using both >>>> pwpolicy and pwpolicy2 >>>> - changing user passwords to see if the policies apply >>>> - re-installing IPA to see if the activated/inactived CoS entries >>>> where OK >>>> - user-lock/user-unlock >>>> >>>> The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on >>>> it, but won't apply without. I didn't realize before committing and >>>> couldn't get it back by re-basing, so... >>>> >>>> Pavel >>> >>> replication also uses v2-style escaping. This code looks ok for what it >>> touches but it isn't complete. >> Maybe I'm wrong, but it seems that the cn="SUFFIX",cn=mapping >> tree,cn=config entry is created automatically by DS > Yes. >> and there's no much we can do about it. > Right. >> We could delete the entry and create a new one, but I suspect >> replication won't like it. > Right. Don't do that. > > There are still a number of places in the directory server where quotes > are still used in DNs. We have not gone through and removed all of > those. We won't get around to doing this for 389-ds-base 1.2.6, probably > in some later release. > > However, you should still be able to search for the > cn="SUFFIX",cn=mapping tree,cn=config entry using LDAPv3 style escapes - > the escapes should match the quotes inside the server. Just make sure > SUFFIX is the normalized DN (and that assumes the server is using the > normalized DN too). Ok cool. Thanks for the info. I did an extended version of the patch, that uses LDAPv3 DN with replication. Attached, so you can take a look, but don't hurry with pushing it. The replication code still uses legacy LDAP code from v1 that is going away soon anyway. I would push the patch in its original state and include the replication changes in my next patch in the "ldap2 for installer" series. > /me grumbles at the fact that someone thought it was a good idea to use > DNs as values within other DNs in non-DN syntax attributes . . . >> >>> rob >> >> Pavel Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Use-escapes-in-DNs-instead-of-quoting.patch Type: application/mbox Size: 14270 bytes Desc: not available URL: From rmeggins at redhat.com Tue Mar 30 14:39:50 2010 From: rmeggins at redhat.com (Rich Megginson) Date: Tue, 30 Mar 2010 08:39:50 -0600 Subject: [Freeipa-devel] [PATCH] Use escapes in DNs instead of quoting. In-Reply-To: <4BB20C96.7050903@redhat.com> References: <4BACB040.4000206@redhat.com> <4BACD925.2090107@redhat.com> <4BB1F443.5040809@redhat.com> <4BB2088A.6050806@redhat.com> <4BB20C96.7050903@redhat.com> Message-ID: <4BB20D36.80702@redhat.com> Pavel Zuna wrote: > On 03/30/2010 04:19 PM, Rich Megginson wrote: >> Pavel Zuna wrote: >>> On 03/26/2010 04:56 PM, Rob Crittenden wrote: >>>> Pavel Zuna wrote: >>>>> This patch effectively removes all LDAPv2 style quoted DNs and makes >>>>> sure we don't use them anymore. >>>>> >>>>> KDC doesn't seem to have any problems with LDAPv3 style DNs, but I >>>>> kept the option to disable DN normalization for now. >>>>> >>>>> I also had to add a new dollar variable for LDIF files: >>>>> $ESCAPED_SUFFIX. We need it to create entries that contain the DN of >>>>> another entry in their own, like the account activated/inactivated >>>>> CoS >>>>> entries. >>>>> >>>>> what I tested: >>>>> - playing around with password policies and CoS entries using both >>>>> pwpolicy and pwpolicy2 >>>>> - changing user passwords to see if the policies apply >>>>> - re-installing IPA to see if the activated/inactived CoS entries >>>>> where OK >>>>> - user-lock/user-unlock >>>>> >>>>> The patch depends on the pwpolicy2 plugin. Well, it doesn't depend on >>>>> it, but won't apply without. I didn't realize before committing and >>>>> couldn't get it back by re-basing, so... >>>>> >>>>> Pavel >>>> >>>> replication also uses v2-style escaping. This code looks ok for >>>> what it >>>> touches but it isn't complete. >>> Maybe I'm wrong, but it seems that the cn="SUFFIX",cn=mapping >>> tree,cn=config entry is created automatically by DS >> Yes. >>> and there's no much we can do about it. >> Right. >>> We could delete the entry and create a new one, but I suspect >>> replication won't like it. >> Right. Don't do that. >> >> There are still a number of places in the directory server where quotes >> are still used in DNs. We have not gone through and removed all of >> those. We won't get around to doing this for 389-ds-base 1.2.6, probably >> in some later release. >> >> However, you should still be able to search for the >> cn="SUFFIX",cn=mapping tree,cn=config entry using LDAPv3 style escapes - >> the escapes should match the quotes inside the server. Just make sure >> SUFFIX is the normalized DN (and that assumes the server is using the >> normalized DN too). > Ok cool. Thanks for the info. > > I did an extended version of the patch, that uses LDAPv3 DN with > replication. Attached, so you can take a look, but don't hurry with > pushing it. Looks good. > > The replication code still uses legacy LDAP code from v1 that is going > away soon anyway. I would push the patch in its original state and > include the replication changes in my next patch in the "ldap2 for > installer" series. > >> /me grumbles at the fact that someone thought it was a good idea to use >> DNs as values within other DNs in non-DN syntax attributes . . . >>> >>>> rob >>> >>> Pavel > > Pavel From jdennis at redhat.com Tue Mar 30 15:27:51 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 30 Mar 2010 11:27:51 -0400 Subject: [Freeipa-devel] [PATCH] Fix http(s)_request in dogtag. Was blowing up because of unicode strings. In-Reply-To: <4BB208C4.4040700@redhat.com> References: <4BB208C4.4040700@redhat.com> Message-ID: <4BB21877.5010704@redhat.com> On 03/30/2010 10:20 AM, Pavel Zuna wrote: > Fixed while fixing my "ldap2 for installer" patch. :) This is actually a bug in python-nss, it should accept Unicode strings. I'm going to push a bug fix release for python-nss in a day or two because I found another bug in python-nss we were hitting. We should remove this workaround when the new python-nss gets pushed. In the mean time ACK. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From jdennis at redhat.com Tue Mar 30 15:30:46 2010 From: jdennis at redhat.com (John Dennis) Date: Tue, 30 Mar 2010 11:30:46 -0400 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change In-Reply-To: <4BACB51D.10307@redhat.com> References: <1269602674.10264.15.camel@jgd-dsk> <4BACB51D.10307@redhat.com> Message-ID: <4BB21926.6040307@redhat.com> On 03/26/2010 09:22 AM, John Dennis wrote: > On 03/26/2010 07:24 AM, Jason Gerard DeRose wrote: >> This quick patch changes the XML-RPC signature to match the >> complementary change being made in certmonger. >> >> The signature is now: >> >> [args, options] >> >> This doesn't yet include the [args, options, extra] change... that is >> coming in my rpcserver patch once it's done. But this provides what >> needed for current IPA<=> certmonger compatibility. > > NAK > > Is there a reason for the type inconsistency? Why is it a list in one > case and a tuple in the other? I realize they'll both operate the same > way but the inconsistency is confusing especially if there is no reason > to use different type objects (e.g. no need for a mutable sequence). > Jason has promised to fix the consistency issue in a subsequent patch so I'll ACK this now so it can get in. -- John Dennis Looking to carve out IT costs? www.redhat.com/carveoutcosts/ From rcritten at redhat.com Tue Mar 30 19:11:06 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 15:11:06 -0400 Subject: [Freeipa-devel] [PATCH] jderose 053 XML-RPC signature change In-Reply-To: <4BB21926.6040307@redhat.com> References: <1269602674.10264.15.camel@jgd-dsk> <4BACB51D.10307@redhat.com> <4BB21926.6040307@redhat.com> Message-ID: <4BB24CCA.3020605@redhat.com> John Dennis wrote: > On 03/26/2010 09:22 AM, John Dennis wrote: >> On 03/26/2010 07:24 AM, Jason Gerard DeRose wrote: >>> This quick patch changes the XML-RPC signature to match the >>> complementary change being made in certmonger. >>> >>> The signature is now: >>> >>> [args, options] >>> >>> This doesn't yet include the [args, options, extra] change... that is >>> coming in my rpcserver patch once it's done. But this provides what >>> needed for current IPA<=> certmonger compatibility. >> >> NAK >> >> Is there a reason for the type inconsistency? Why is it a list in one >> case and a tuple in the other? I realize they'll both operate the same >> way but the inconsistency is confusing especially if there is no reason >> to use different type objects (e.g. no need for a mutable sequence). >> > > Jason has promised to fix the consistency issue in a subsequent patch so > I'll ACK this now so it can get in. > Ok, pushed to master rob From rcritten at redhat.com Tue Mar 30 19:12:14 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 15:12:14 -0400 Subject: [Freeipa-devel] [PATCH] Fix http(s)_request in dogtag. Was blowing up because of unicode strings. In-Reply-To: <4BB21877.5010704@redhat.com> References: <4BB208C4.4040700@redhat.com> <4BB21877.5010704@redhat.com> Message-ID: <4BB24D0E.4030303@redhat.com> John Dennis wrote: > On 03/30/2010 10:20 AM, Pavel Zuna wrote: >> Fixed while fixing my "ldap2 for installer" patch. :) > > This is actually a bug in python-nss, it should accept Unicode strings. > I'm going to push a bug fix release for python-nss in a day or two > because I found another bug in python-nss we were hitting. We should > remove this workaround when the new python-nss gets pushed. In the mean > time ACK. > Pushed to master From rcritten at redhat.com Tue Mar 30 19:44:51 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 15:44:51 -0400 Subject: [Freeipa-devel] [PATCH] 413 fix ca location Message-ID: <4BB254B3.2020207@redhat.com> For consistency I had changed ca.p12 to cacert.p12 in a few places. I missed two in ipa-replica-install. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-413-ca.patch Type: application/mbox Size: 1315 bytes Desc: not available URL: From rcritten at redhat.com Tue Mar 30 19:46:38 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 15:46:38 -0400 Subject: [Freeipa-devel] [PATCH] 414 MITM compatibility fixes for dogtag Message-ID: <4BB2551E.3020602@redhat.com> dogtag has its final nss MITM fixes committed into 1.3.3. This patch reverses the previous fixes we used, they are no longer needed. We just need to configure an additional port (that we don't use ourselves). This also changes the mechanism we use to determine which security database to use. I'm not sure why I relied on api.env.home instead of api.env.in_tree up to now. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-414-dogtag.patch Type: application/mbox Size: 5421 bytes Desc: not available URL: From rcritten at redhat.com Tue Mar 30 20:27:17 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Tue, 30 Mar 2010 16:27:17 -0400 Subject: [Freeipa-devel] Use ldap2 instead of legacy LDAP code from v1 in installer scripts. In-Reply-To: <4BB2092D.9090306@redhat.com> References: <4B9F9B50.7070103@redhat.com> <4BA9273B.9030004@redhat.com> <4BB2092D.9090306@redhat.com> Message-ID: <4BB25EA5.20702@redhat.com> Pavel Zuna wrote: > On 03/23/2010 09:40 PM, Rob Crittenden wrote: >> Pavel Zuna wrote: >>> This is the first in a series of patches, that replace all the legacy >>> code from v1 related to LDAP. I did some limited testing of the >>> installer after this patch and nothing seems to break, but I didn't do >>> replicas etc... >>> >>> Pavel >> >> nack. This breaks at least ipa-replica-manage, ipa-replica-prepare, >> ipa-server-certinstall and ipa-replica-install. >> >> rob > Fixed patch attached. > > Pavel I'm not sure if you attached the wrong patch or not (it's dated 3/24) but things are still not working: # ipa-replica-install replica-info-tiger.example.com.gpg Directory Manager (existing master) password: creation of replica failed: 'Env' object has no attribute 'basedn' Your system may be partly configured. Run /usr/sbin/ipa-server-install --uninstall to clean up. rob From rcritten at redhat.com Wed Mar 31 20:17:55 2010 From: rcritten at redhat.com (Rob Crittenden) Date: Wed, 31 Mar 2010 16:17:55 -0400 Subject: [Freeipa-devel] [PATCH] Add ipa man page. In-Reply-To: <4BB09F32.7040004@redhat.com> References: <4BB09F32.7040004@redhat.com> Message-ID: <4BB3ADF3.3010801@redhat.com> Pavel Zuna wrote: > Oops, forgot to post the patch. > Sorry and thanks to Rob for reminding me. :) > > The man page is installed/uninstalled automatically with IPA. It's under > 1 (User commands). > > I also attached the man page separately for more convenient reviews. Use > `man ./ipa.1.gz` to view it. > > By the way, I'm not used to write "formal" English, so feel free to > point out any mistakes or reword sentences that don't make sense. > > Pavel Here is a replacement patch that does the following: - Moves the man page to the root directory, where ipa is located. - Enhance setup.py so the man page gets installed and gzipped properly - Add the copyright header to the man page - Make a few minor corrections to the man page contents - Move the man page from the server package to the admintools package This patch completely replaces Pavel's original patch. rob -------------- next part -------------- A non-text attachment was scrubbed... Name: freeipa-415-man.patch Type: application/mbox Size: 11384 bytes Desc: not available URL: