Commit Graph
100 Commits
Author SHA1 Message Date
John Dennis 97fc2ed0ef Ticket 1718 - Fix Spanish po translation file
There were quite errors in es.po, it was difficult or impossible to
track down where they came from, Transifex does not have good revision
history.

I fixed about 20% of the msgstr's in the file that had obvious
problems which could be spotted by a non-Spanish speaking person.

Spurious backslashes and backslash-newlines had been introduced. I
tracked this particular problem down to a bug in polib. polib is a
Python library which can read/write po/mo files. In Fedora it's
packaged as python-polib. polib is used by the Transifex instance to
read/write po files. We don't currently use polib in IPA (that will
change soon though) but I wrote utilities using polib to help fix the
bad po file and analyze what had gone wrong. I discovered that if one
simply uses polib to read a po file into memory and they write that po
file back out from memory you don't end up with the same contents if
there are backslashed escapes in the file. I tracked this down to the
escape() and unescape() functions in polib. This caused me to look to
see if upstream polib had been fixed. It had. Therefore I think the
spurious backslashes were introduced when Transifex was using an older
broken version of polib. I filed this Fedora bug
https://bugzilla.redhat.com/show_bug.cgi?id=744419 to get the fixes
into python-polib. I manually corrected all the backslash errors.

I compared all 1329 translations from a known good version of es.po
with the current version and generated a new es.po by taking the
translation (e.g. msgstr) from the two po files which was obviously
correct. In those instances where neither msgstr was obviosuly correct
the deleted the translation entirely.

I also wrote utilities to validate any "substitution" variables
appearing in the text. I discovered a number of instances where the
substitution variable had been malformed by the translator such that
it was syntactically invalid. This is how we originally discovered
problems with the translation, it was throwing Python exceptions. I
fixed all those errors.

I also found approximately 80 translations where the leading
whitespace had been altered by the translator. Those also were fixed.

I cannot verify that the remaining translations are a correct Spanish
translation of the original text (in fact a number of them I looked at
seemed dubious to me, for example it omitted recongnizable
keywords). But I do believe that the obvious errors are fixed and we
shouldn't be throwing any more Python exceptions because of malformed
substitution variables.
2011-10-11 22:46:02 -04:00
John Dennis 1b4eab0411 ticket 1669 - improve i18n docstring extraction
This patch reverts the use of pygettext for i18n string extraction. It
was originally introduced because the help documentation for commands
are in the class docstring and module docstring.

Docstrings are a Python construct whereby any string which immediately
follows a class declaration, function/method declaration or appears
first in a module is taken to be the documentation for that
object. Python automatically assigns that string to the __doc__
variable associated with the object. Explicitly assigning to the
__doc__ variable is equivalent and permitted.

We mark strings in the source for i18n translation by embedding them
in _() or ngettext(). Specialized extraction tools (e.g. xgettext)
scan the source code looking for strings with those markers and
extracts the string for inclusion in a translation catalog.

It was mistakingly assumed one could not mark for translation Python
docstrings. Since some docstrings are vital for our command help
system some method had to be devised to extract docstrings for the
translation catalog. pygettext has the ability to locate and extract
docstrings and it was introduced to acquire the documentation for our
commands located in module and class docstrings.

However pygettext was too large a hammer for this task, it lacked any
fined grained ability to extract only the docstrings we were
interested in. In practice it extracted EVERY docstring in each file
it was presented with. This caused a large number strings to be
extracted for translation which had no reason to be translated, the
string might have been internal code documentation never meant to be
seen by users. Often the superfluous docstrings were long, complex and
likely difficult to translate. This placed an unnecessary burden on
our volunteer translators.

Instead what is needed is some method to extract only those strings
intended for translation. We already have such a mechanism and it is
already widely used, namely wrapping strings intended for translation
in calls to _() or _negettext(), i.e. marking a string for i18n
translation. Thus the solution to the docstring translation problem is
to mark the docstrings exactly as we have been doing, it only requires
that instead of a bare Python docstring we instead assign the marked
string to the __doc__ variable. Using the hypothetical class foo as
an example.

class foo(Command):
    '''
    The foo command takes out the garbage.
    '''

Would become:

class foo(Command):
    __doc__ = _('The foo command takes out the garbage.')

But which docstrings need to be marked for translation? The makeapi
tool knows how to iterate over every command in our public API. It was
extended to validate every command's documentation and report if any
documentation is missing or not marked for translation. That
information was then used to identify each docstring in the code which
needed to be transformed.

In summary what this patch does is:

* Remove the use of pygettext (modification to install/po/Makefile.in)

* Replace every docstring with an explicit assignment to __doc__ where
  the rhs of the assignment is an i18n marking function.

* Single line docstrings appearing in multi-line string literals
  (e.g. ''' or """) were replaced with single line string literals
  because the multi-line literals were introducing unnecessary
  whitespace and newlines in the string extracted for translation. For
  example:

  '''
  The foo command takes out the garbage.
  '''

  Would appear in the translation catalog as:

"\n
  The foo command takes out the garbage.\n
  "

  The superfluous whitespace and newlines are confusing to translators
  and requires us to strip leading and trailing whitespace from the
  translation at run time.

* Import statements were moved from below the docstring to above
  it. This was necessary because the i18n markers are imported
  functions and must be available before the the doc is
  parsed. Technically only the import of the i18n markers had to
  appear before the doc but stylistically it's better to keep all the
  imports together.

* It was observed during the docstring editing process that the
  command documentation was inconsistent with respect to the use of
  periods to terminate a sentence. Some doc had a trailing period,
  others didn't. Consistency was enforced by adding a period to end of
  every docstring if one was missing.
2011-08-24 23:13:16 -04:00
John Dennis 7746e22fe7 ticket 1706 - internationalize cli help framework
In cli.py is a framework for printing out help information. The
command documentation being displayed is internationalized, however
the text generated by the help framework itself is not
internationalized.

The strings output by the help subsystem need to be internationalized.
2011-08-24 23:06:28 -04:00
John Dennis a4fadbfe63 ticket 1705 - internationalize help topics
* Wrap each topic description in _()

* Replace the use of if 'topic' in dir(module) with the more
  Pythonic and efficient getattr(module, 'topic', None)

* Make sure to invoke unicode on the value returned from _()
  otherwise you'll get a GettextFactory instance, not a string

* Clean up trailing whitespace errors
2011-08-24 23:05:17 -04:00
John Dennis f4ad749126 ticket 1707 - add documentation validation to makeapi tool
Iterate over all API commands and perform the following validation:

* Every command must have documentation
  and it must be marked for international translation

* Every module hosting a command must have documentation
  and it must be marked for international translation

* Every module topic must be marked for international translation

For every error found emit a diagnostic.
Emit a summary of total errors found.

Return error flag if errors found, zero otherwise.
2011-08-24 23:03:48 -04:00
John Dennis 4015667bbe ticket 1650 - compute accurate translation statistics
ticket 1650 (https://fedorahosted.org/freeipa/ticket/1650) has
an extensive discussion of the issues, please refer to that.

This patch does the following:

* does not count fuzzy translations when computing translation
  statistics via the "msg-stats" make target in install/po

* adds a new make target called "pull-po" which pulls updated po files
  from Transifex (configure.ac includes some trailing whitespace fixes)

* turns off the generation of fuzzy translation suggestions during the
  message merge phase.
2011-08-18 14:25:58 +02:00
John Dennis da139c1777 ticket 1661 - Update all po files
After updating po's current translation status is:

ipa.pot has 1329 messages. There are 21 po translation files.
as:          0/1329   0.0%  1329 untranslated,     0 fuzzy
bn_IN:      13/1329   1.0%  1316 untranslated,     0 fuzzy
zh_CN:     133/1329  10.0%  1196 untranslated,     0 fuzzy
zh_TW:       0/1329   0.0%  1329 untranslated,     0 fuzzy
nl:          1/1329   0.1%  1328 untranslated,     0 fuzzy
fr:          0/1329   0.0%  1329 untranslated,     0 fuzzy
de:         27/1329   2.0%  1302 untranslated,     0 fuzzy
el:          0/1329   0.0%  1329 untranslated,     0 fuzzy
gu:          0/1329   0.0%  1329 untranslated,     0 fuzzy
id:         89/1329   6.7%  1240 untranslated,     0 fuzzy
ja_JP:       0/1329   0.0%  1329 untranslated,     0 fuzzy
ja:          0/1329   0.0%  1329 untranslated,     0 fuzzy
kn:        243/1329  18.3%  1086 untranslated,     0 fuzzy
fa:          0/1329   0.0%  1329 untranslated,     0 fuzzy
pl:        492/1329  37.0%   837 untranslated,     0 fuzzy
pt_BR:       0/1329   0.0%  1329 untranslated,     0 fuzzy
pt:          0/1329   0.0%  1329 untranslated,     0 fuzzy
ru:        162/1329  12.2%  1167 untranslated,     0 fuzzy
es:       1329/1329 100.0%     0 untranslated,     0 fuzzy
sv:          0/1329   0.0%  1329 untranslated,     0 fuzzy
uk:       1329/1329 100.0%     0 untranslated,     0 fuzzy
2011-08-18 13:20:40 +02:00
John Dennis 2bc657acab ticket 1660 - update LINGUAS file, add missing po files
Our LINGUAS file and the set of po files have diverged from what's on
Transifex. We should update the LINGUAS file to match the set of
translations on Transifex and add po files currently on Transifex but
not in our git repo to our git repo.
2011-08-18 13:20:06 +02:00
John Dennis 05bdfc6852 ticket 1659 - invalid i18n string in dns.py
dns.py at line 976 has an invalid i18n string and cannot be processed
during message extraction causing message catalog generation to fail.

The format parameters are trapped inside the i18n string. Also it's
not necessary to promote the i18n string literal to unicode via the u
prefix because the _() function returns unicode.
2011-08-18 13:19:11 +02:00
John Dennis 2673782aec ticket 1600 - convert unittests to use DN objects
We have a larger goal of replacing all DN creation via string
formatting/concatenation with DN object operations because string
operations are not a safe way to form a DN nor to compare a DN. This
work needs to be broken into smaller chunks for easier review and
testing.

Addressing the unit tests first makes sense because we don't want to
be modifying both the core code and the tests used to verify the core
code simultaneously. If we modify the unittests first with existing
core code and no regressions are found then we can move on to
modifying parts of the core code with the belief the unittests can
validate the changes in the core code. Also by doing the unittests
first we also help to validate the DN objects are working correctly
(although they do have an extensive unittest).

The fundamental changes are:

* replace string substitution & concatenation with DN object
  constructor

* when comparing dn's the comparision is done after promotion
  to a DN object, then two DN objects are compared

* when a list of string dn's are to be compared a new list is
  formed where each string dn is replaced by a DN object

* because the unittest framework accepts a complex data structure of
  expected values where dn's are represeted as strings the unittest
  needs to express the expected value of a dn as a callable object
  (e.g. a lambda expression) which promotes the dn string to a DN
  object in order to do the comparision.
2011-08-16 23:52:26 -04:00
John Dennis b6006f78f0 ticket 1569 - Test DN object non-latin Unicode support
The DN unittest was lacking a test for i18n. The unittest was
updated to store "Hello" in Arabic with both utf-8 and unicode
and verify the values could be properly retrieved and converted
to dn string syntax.

During the testing a few problems were discovered and corrected.

* passing in utf-8 caused an ASCII decode error becuase of Python's
  silly default encoding of ASCII. The fix was to explictly use
  the utf-8 codec.

* there were a couple of places where encode/decode were not
  called correctly.

* the internal attr and value members of the AVA class were renamed
  to explicitly show they are stored as unicode.

Of course the unittest was updated as well.
2011-08-16 23:28:31 -04:00
John Dennis fae07f8154 ticket 1568 - DN objects should support the insert method
Add dn.insert() and update unittest
2011-08-16 23:25:01 -04:00
John Dennis 7d77afd0f8 transifex translation adjustment
Pull the new translations for Spanish (es) and Ukrainian (uk)

Update the LINGUAS file to add comment showing the friendly
name for the language abbreviation.

The make target msg-stats which produces a report about the state
of the translations no longer maintained it's column alignment
due to larger numbers so the formating was tweaked to maintain
column alignment.
2011-08-12 09:38:11 +02:00
John Dennis 442973edc5 Clean up existing DN object usage 2011-07-29 13:13:55 +02:00
John Dennis 264ed38fa2 Make AVA, RDN & DN comparison case insensitive. No need for lowercase normalization.
Replace deepcopy with constructor (i.e. type call)
Can now "clone" with configuration changes by passing object
of the same type to it's constructor, e.g.
dn1 = DN(('cn', 'foo'))
dn2 = DN(dn1)
dn2 = DN(dn1, first_key_match=False)

Remove pairwise grouping for RDN's. Had previously removed it
for DN's, left it in for RDN's because it seemed to make sense
because of the way RDN's work but consistency is a higher goal.

Add keyword constructor parameters to pass configuration options.

Make first_key_match a configuration keyword.

Updated documentation.

Updated unit test.

FWIW, I noticed the unittest is now running 2x faster, not sure why,
removal of deepcopy? Anyway, hard to argue with performance doubling.
2011-07-27 20:58:48 -04:00
John Dennis ad3cf68ac2 Ticket 1485 - DN pairwise grouping
The pairwise grouping used to form RDN's and AVA's proved to be
confusing in practice, this patch removes that functionality thus
requiring programmers to explicitly pair attr,value using a tuple or
list.

In addition it was discovered additional functionality was needed to
support some DN operations in freeipa. DN objects now support
startswith(), endswith() and the "in" membership test. These functions
and operators will accept either a DN or RDN.

The unittest was modified to remove the pairwise tests and add new
explicit tests. The unittest was augmented to test the new
functionality. In addition the unittest was cleaned up a bit to use
common utilty functions for improved readabilty and robustness.

The documentation was updated.

fix test_role_plugin use of DN to avoid pairwise grouping
2011-07-21 00:29:38 -04:00
John Dennis d9d00f1522 Update test_role_plugin test to include a comma in a privilege
Introduce a comma into a privilege name to assure we can handle
commas.

Commas must be escaped for some parameters, add escape_comma() utility
and invoke it for the necessary parameters.

Utilize a DN object to properly construct a DN and most importantly to
allow equality testing beween the DN we expect and the one
returned. This is necessary because a DN can be encoded according to
different encoding syntaxes all of which are valid. DN objects always
decode from their input. DN objects can test for equality between DN's
without being affected by DN encoding.

Add a equality callback for the dn in the expected dict. When the test
framework tests for equality between the expected value and the
returned value it will call back into a function we provide which will
convert the returned dn into a DN object. An equality test is then
performed between two DN objects. This is the only way to properly
compare two dn's.
2011-06-22 02:06:02 -04:00
John Dennis 8c95eb68d2 Use DN class in get_primary_key_from_dn to return decoded value 2011-06-22 01:26:01 -04:00
John Dennis 032b77ac23 Add backslash escape support for cvs reader 2011-06-22 01:20:27 -04:00
John Dennis 4c1bfdb919 assert_deepequal supports callback for equality testing 2011-06-22 01:16:31 -04:00
John Dennis 1a7d05cc0f Module for DN objects plus unit test 2011-06-22 01:05:44 -04:00
John Dennis fb899760ea Add Transifex tx client configuration file 2011-03-07 16:05:33 -05:00
John Dennis 4e1ed0c11f Update Polish & Ukrainian translations 2011-02-18 10:30:32 -05:00
John Dennis a7b926420f fixes CA install problem in trac ticket 682
Do not call status after pkisilent, it will return non-zero.
Instead restart server after pkisilent so configuration
changes take effect, the check the status.
2011-01-05 13:11:44 -05:00
John Dennis 091b07790e Update Ukrainian (uk.po) translation 2010-10-19 14:14:23 -04:00
John Dennis 538646c04c Update Polish translation 2010-10-15 10:07:01 -04:00
John Dennis 31027c6183 use NSS for SSL operations 2010-06-15 15:03:36 -04:00
John Dennis 792f58fae3 Update Kannada translations 2010-05-11 14:22:49 -04:00
John Dennis 5b9d1ee180 Add gettext translation test using test language. 2010-04-16 10:56:48 -04:00
John Dennis f5afc9bed5 Update Spanish translations 2010-04-13 13:59:07 -04:00
John Dennis 04cb57eeb6 Update Polish and Chinese translations 2010-03-22 13:46:10 -04:00
John Dennis 1b31415343 update Polish translations 2010-03-22 13:46:05 -04:00
John Dennis c1b828563b Update Ukrainian translations 2010-03-17 10:58:44 -04:00
John Dennis f932123e4d Add Ukrainian translations 2010-03-16 13:59:48 -04:00
John Dennis ae1d6d38f0 remove .pot target from Makefile.in
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.
2010-03-16 13:58:17 -04:00
John Dennis a0a94a9a04 Update Spanish translations 2010-03-09 17:28:42 -05:00
John Dennis f72c26f956 Add Chinese Simplified (zh_CN) translation 2010-03-09 17:28:37 -05:00
John Dennis b75d06e189 localize doc strings
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.
2010-03-08 21:10:36 -07:00
John Dennis 789cba4378 fix bug 570392, command help traceback
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.

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.
2010-03-05 10:03:41 -05:00
John Dennis 1289285d49 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.
2010-03-04 15:30:16 -05:00
John Dennis 06e5b8bd6b Install Contributors.txt 2010-03-04 14:52:39 -05:00
John Dennis 00d67b6a2c Rework contributors list from Simo's input 2010-03-04 14:51:52 -05:00
John Dennis abe4e4526d update POT 2010-03-02 18:22:13 -05:00
John Dennis 5220c949a4 More Kannada translations 2010-03-01 16:59:36 -05:00
John Dennis 2ddaf09802 full Spanish translations as of 20100225 2010-03-01 16:58:49 -05:00
John Dennis 9873ec1ca3 Add more Spanish translations 2010-02-26 12:36:18 -05:00
John Dennis fc13134455 Add contributors file.
This gets installed along side the LICENSE and README files in the doc
dir for each rpm package.
2010-02-24 15:01:24 -05:00
John Dennis 4dfbf46062 minor makefile cleanup 2010-02-22 14:59:32 -07:00
John Dennis cf8237af69 fix i18n build problem
There was a typo in install/po/Makefile.in which caused (some) of
the .po files to be overwritten because the test to see if a po
file existed had a typo in it.

This patch also removes the unnecessary rebuilding of the pot which was
happening when using the "all" target (the default). The pot file now
must be manually remade, which is what we want.

Added a new target "mo-files" to manually generate the .mo files.
This is useful to run before checking in a new .po file just to
assure it "compiles" and we don't have to discover this during a
build.
2010-02-22 14:30:30 -07:00
John Dennis dc235910a0 Add Spanish translation 2010-02-22 16:40:52 -05:00
John Dennis e7df28b677 Add more Kannada translations 2010-02-22 16:40:42 -05:00
John Dennis 2d3d093d4f make update-pot will not touch pot file if msgid's are unmodified
Formerly running 'make update-pot' would write an insignificantly
different pot file even if the msgid's xgettext found were unmodfied.
Now the result of running xgettext is compared to the existing
pot file after adjusting for things like timestamps, and only
copies the result of xgettext to the new pot file if there
were differences.

This will help eliminate git commits on the pot file if all one
did was see if the pot file was up to date, if it was up to date
git won't see any modifications. It used to be that timestamps
would be different in the pot file just by virtue of checking
if the pot file was current.

fix exit status; replace POT with $(DOMAN).pot
2010-02-22 16:38:56 -05:00
John Dennis 23ac2c31e7 Add new Russian translation, update Polish
Add new Russian translation.
Update the Polish translation.
Add count of how many po translations we have in msg-stats.

Current translation statistics with this patch:

ipa.pot has 133 messages. There are 5 po translation files.
bn_IN:    14/133  10.5%  106 po untranslated,   13 missing,  119 untranslated
id:      107/133  80.5%   13 po untranslated,   13 missing,   26 untranslated
kn:        4/133   3.0%  116 po untranslated,   13 missing,  129 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
2010-02-22 16:33:08 -05:00
John Dennis ec7433313f strip .po file suffix in translation statistics
The goal is to get the statistics to line up in
columns and not exceed an 80 character line which might
cause wrapping. Removing .po suffix from the translation
name gives us 3 extra characters. Formatting problems were
observed when bn_IN.po was added.
2010-02-19 14:57:30 -05:00
John Dennis 25d555f9c4 add Bengali India translation 2010-02-19 14:55:27 -05:00
John Dennis e7dbbd96b4 Add translation statistics
The Makefile in install/po has a new target "msg-stats" which
prints out statistics concerning the current pot and po files.
Here is an example:

% make msg-stats
ipa.pot has 133 messages
id.po:   107/133  80.5%   13 po untranslated,   13 missing,   26 untranslated
kn.po:     4/133   3.0%  116 po untranslated,   13 missing,  129 untranslated
pl.po:   120/133  90.2%    0 po untranslated,   13 missing,   13 untranslated

Also update configure.ac to search for msgcmp, awk & sed programs.
2010-02-19 14:53:43 -05:00
John Dennis 7ef9cc94ed Add new translations (Polish,Indonesian,Kannada)
Add 3 new translations for Polish, Indonesian, Kannada.

Remove the dummy Italian translation (it.po), it's only purpose was to
have some translation in the tarball so %{find_lang} wouldn't fail.

Add a new file contributing_translators.txt so we can track our
translators contributions and give them credit.
2010-02-19 14:49:41 -05:00
John Dennis eadca473a9 Make test_i18n.py diagnostics friendlier 2010-02-11 14:58:39 -05:00
John Dennis 37ced5571b Add 1 intital language translation
The %{find_lang} macro in the ipa.spec file will fail if there
are no language translations causing the build to fail.
This patch creates an Italian translation (in honor of Simo).
The Italian translation is initially fully untranslated.
2010-02-10 11:48:08 -05:00
John Dennis 64b7192d00 Pass target locale to msginit
msginit should have been passed the locale because the resulting
.po file is parameterized from the locale. Also, if the target
locale is not specified it defaults to the current locale.
If the target locale is Engish msgid's are copied to their msgstr's
resulting in a fully translated .po instead of a fully untranslated
.po.

Add some comments to better explain some of the cryptic sed commands.
2010-02-10 11:48:06 -05:00
John Dennis 9fa5e4f118 Add i18n test 2010-02-10 11:48:03 -05:00
John Dennis 4461a74403 Add support for building internationalized translations.
A new directory install/po has been added which contains all
the translations for all files in IPA.

The build has been agumented to build these files. Also the
autogen.sh script was mostly replaced by autoreconf, the preferred
method. The old autogen.sh sript also had some serious bugs in the
way it compared versions which caused it to run old versions of some
of the tools, using standared autoreconf is much better.
2010-02-09 22:07:18 -05:00
John Dennis 487e1cadc8 fix error message to be i18n translator friendly
This error message was producing a warning from xgettext
because there were multiple substations in the string.
In some languages it may be necessary to reorder the
substitutions for a proper translation, this is only
possible if the substitutions use named values.
2010-02-03 14:43:31 -05:00
John Dennis 9409b5cf2e Remove (un)wrap_binary_data cruft from */ipautil.py
Remove SAFE_STRING_PATTERN, safe_string_re, needs_base64(),
wrap_binary_data(), unwrap_binary_data() from both instances
of ipautil.py. This code is no longer in use and the
SAFE_STRING_PATTERN regular expression string was causing xgettext
to abort because it wasn't a valid ASCII string.
2010-01-28 14:26:29 -05:00
John Dennis baba8e91b2 Create pkiuser before calling pkicreate, pkicreate depends on the user existing 2010-01-20 11:32:41 -05:00
John Dennis 30bc14a15e pass DER flag to x509.get_serial_number() 2010-01-19 17:28:40 -05:00
John Dennis ee909d871c rebase dogtag clean-up patch 2009-12-09 01:57:08 -07:00
John Dennis 5d2bbf5325 Reading INT parameter class should respect radix prefix
This modifies the original patch by including a unit test, handling floats
when passed as unicode, and handling large magnitude values beyond maxint.

The INT parameter class was not respecting any radix prefix (e.g. 0x) the user
may have supplied. This patch implements _convert_scalar method for the Int
class so that we can pass the special radix base of zero to the int constructor
telling it to determine the radix from the prefix (if present).
2009-11-23 16:53:43 -05:00
John Dennis 55422cb7b9 Require current versions of python-nss & python-lxml
ipa.spec.in         |    3 ++-
 ipapython/nsslib.py |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
2009-11-23 16:52:06 -05:00
John Dennis b1b2654ddb along with stdout, stderr also log the initial command
Signed-off-by: John Dennis <jdennis@redhat.com>

along with stdout,stderr also log the initial command

This implements better logging of external commands. Formerly we were
just outputting stdout and stderr without labeling which was which. We
also omitted the initial command and it's arguments. This made it
difficult when reviewing the logs to know what the command was and
what was stdout vs. stderr. This patch fixes that.
2009-11-23 16:31:02 -05:00
John Dennis dbb5721e7c If plugin fails to load log the traceback
Signed-off-by: John Dennis <jdennis@redhat.com>

If plugin fails to load log the traceback

If a plugin fails to load due to some kind of error it would be nice
if the error log contained the traceback so you can examine what went
wrong rather than being left blind as to why it failed to load.
2009-11-23 16:30:01 -05:00
John Dennis ce3df4f74a Make NotImplementedError in rabase return the correct function name
ipaserver/plugins/rabase.py |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
2009-11-19 16:18:45 -05:00
John Dennis 0d880b3ee3 add new error class for certificate operations
add new error class for certificate operations
2009-11-19 14:52:17 -05:00
John Dennis 76fc1f75f9 error strings in documentation were missing unicode specifier
error strings in documentation were missing unicode specifier
2009-11-19 14:51:49 -05:00
John Dennis eb5793b5ea respect debug arg during server install
The debug flag (e.g. -d) was not being respected during server install. This
patch corrects that.
2009-11-19 14:46:18 -05:00
John Dennis d53915954e merge 2007-12-04 10:08:08 -05:00
John Dennis 4e1d291d15 change location of radius data in ldap from
cn=radius,cn=services,cn=etc
to
cn=radius
2007-11-30 20:29:12 -05:00
John Dennis 6be932e8af fix merge error 2007-11-29 11:44:50 -05:00
John Dennis d7a7ba4f45 add user profile command line arg to all radius
profile command line tools to select between shared
and per user profiles

modify AttributeValueCompleter so default values prefer
previously entered values in editing session
2007-11-28 12:06:06 -05:00
John Dennis 904b76059c merged radius work with latest mainline tip 2007-11-28 07:49:07 -05:00
John Dennis c939c5d289 fix regular expression used in parse_key_value_pairs() 2007-11-27 22:52:11 -05:00
John Dennis f73bd4e27e bug fixes 2007-11-27 21:55:06 -05:00
John Dennis 3fb9a81339 checkpoint bug fixing and cleanup of command line radius tools 2007-11-27 21:29:50 -05:00
John Dennis 5d1ca46ea7 do a better job of handling attribute deletion 2007-11-27 16:16:10 -05:00
John Dennis 82654731ab checkpoint work to add attribute deletion 2007-11-27 07:57:49 -05:00
John Dennis 78b5987101 add parse_items(), read_items_file()
move read_pairs_file() to ipautil
2007-11-26 23:11:49 -05:00
John Dennis c5a43a0168 add ItemCompleter class 2007-11-26 20:59:53 -05:00
John Dennis 09238510ff add command line utilites for radius profiles 2007-11-26 19:30:33 -05:00
John Dennis 4f33d67418 remove radius_client.py, move contents to radius_util.py 2007-11-26 11:12:58 -05:00
John Dennis 2c2069d3ec checkpoint radius client add,modify,find,del working, command line args handled correctly 2007-11-26 09:46:19 -05:00
jdennis@VAIO 9a9a7e4058 clean up attribute names
clean up command line args in ipa-delradiusclient
2007-11-24 11:20:28 -05:00
John Dennis 9a8326c5c1 clean up radius client command line tools 2007-11-23 10:35:22 -05:00
John Dennis d98686e967 Add radius profile implementations:
get_radius_profile_by_uid
  add_radius_profile
  update_radius_profile
  delete_radius_profile
  find_radius_profiles

Rewrite command line arg handling, now support pair entry, interactive
mode with auto completion, reading pairs from a file, better handling
of mandatory values, better help, long arg names now match attribute
name in pairs

Establish mappings for all attributes and names used in clients and
profiles

Add notion of containers to radius clients and profiles in LDAP

Move common code, variables, constants, and strings into the files
radius_client.py, radius_util.py, ipautil.py to eliminate redundant
elements which could get out of sync if modified and to provide access
to other code which might benefit from using these items in the
future.

Add utility functions:
  format_list()
  parse_key_value_pairs()

Add utility class:
  AttributeValueCompleter

Unify attribute usage in radius ldap schema
2007-11-21 13:11:10 -05:00
John Dennis 087d11af5c map attrs to friendly name 2007-11-14 16:01:27 -05:00
John Dennis c4dbe6433d add ipa-findradiusclient search 2007-11-14 15:32:08 -05:00
John Dennis c24da12fe1 radius client modify and delete work 2007-11-14 00:04:19 -05:00
John Dennis c4bf859bfb move radius client utility code to common radius_client.py so it can be shared 2007-11-13 20:22:18 -05:00
John Dennis eab5a89d4a ipa-addradiusclient now working 2007-11-13 20:05:02 -05:00
John Dennis 152f8e3392 checkpoint radius client work 2007-11-13 13:06:18 -05:00
John Dennis f36872383c add aci's for radius 2007-11-10 12:04:43 -05:00