mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 15:40:01 -06:00
Updated TODO based on discussion between Rob, Pavel, and Jason; put TODO in reStructuredText style formatting
This commit is contained in:
parent
e5bec4ae39
commit
0d6e4d2374
94
TODO
94
TODO
@ -1,55 +1,40 @@
|
|||||||
API chages before January 2009 simi-freeze:
|
General ipalib/ipaserver improvements
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
* Merge Param and Type together so that rather than taking the type as a
|
* Port any commands still using old crud base classes to new crud base
|
||||||
kwarg, you simply use the Type. For example, instead of:
|
classes, and then remove old crud base classes.
|
||||||
>>> Param('number', type=Int())
|
|
||||||
You would do this:
|
|
||||||
>>> Int('number')
|
|
||||||
The types will correspond to Python 3.0 text/binary disambiguaiton, so we
|
|
||||||
will have Bytes, Str, Int, Float, and Bool.
|
|
||||||
|
|
||||||
* Rename crud Method base classes to standard CRUDS name: Add=>Create,
|
|
||||||
Get=>Retrieve, Mod=>Update, Del=>Delete, Find=>Search.
|
|
||||||
|
|
||||||
* Add a Command.backend convenience attribute that checks if the class
|
* Add a Command.backend convenience attribute that checks if the class
|
||||||
uses_backend attribute is sets the Command.backend attribute like this:
|
uses_backend attribute is sets the Command.backend attribute like this:
|
||||||
self.backend = self.Backend[self.uses_backend]
|
self.backend = self.Backend[self.uses_backend]
|
||||||
|
|
||||||
* Finish methods on Plugin base class for calling external commands via
|
* Possibly generalize current Plugin.call() method (makes subprocess calls).
|
||||||
subprocess.
|
Probably should renamed this so it's not confused with Command.execute()...
|
||||||
|
maybe Plugin.subprocess_call()?.
|
||||||
* Probably renamed ipa_server package to ipaserver.
|
|
||||||
|
|
||||||
* Add special logging methods to Plugin baseclass for authorization events
|
* Add special logging methods to Plugin baseclass for authorization events
|
||||||
(escalation, de-escalation, and denial).
|
(escalation, de-escalation, and denial)... need to talk to John about this.
|
||||||
|
|
||||||
* Implement gettext service.
|
* Implement remaining missing features for full gettext service.
|
||||||
|
|
||||||
* Add ability to register pre-op, post-op plugins per command.
|
* Add ability to register pre-op, post-op plugins per command.
|
||||||
|
|
||||||
* Add ability to have certain args/options only active on either client-side
|
* Change Command so it filters args/options according to the Param.limit_to
|
||||||
or server-side, and also the same for things like default_from callbacks.
|
kwarg (used to restrict certain params only to client or only to server).
|
||||||
|
|
||||||
* Add ability to have a post-processing step that only gets called
|
* Add ability to have a post-processing step that only gets called
|
||||||
client-side. It should have a signature like output_for_cli() minus the
|
client-side. It should have a signature like output_for_cli() minus the
|
||||||
textui argument. Need to decide whether we allow this method to modify
|
textui argument. Need to decide whether we allow this method to modify
|
||||||
the return value.
|
the return value. (Use case still isn't very defined.)
|
||||||
|
|
||||||
* Make Plugin base class parse class docstring into overview and
|
* Improve CLI help to take advantange of the fact that command docstrings are
|
||||||
full-description strings (similar to Bazaar).
|
now split into summary and details.
|
||||||
|
|
||||||
* Removed depreciated code in config.py.
|
* Remove remaining __getattr__() use in ipalib.plugable.
|
||||||
|
|
||||||
* Remove __getattr__() from Env (and probably elsewhere) as in Python 2.4 and
|
|
||||||
2.5 hasattr() will catch KeyboardInterrupt and SystemExit exceptions (BTW,
|
|
||||||
this has been fixed in Python 2.6).
|
|
||||||
|
|
||||||
* Remove support for dynamic environment values from Env... Jason feels this
|
|
||||||
the Env class should be simple and static. Other mechanisms should be used
|
|
||||||
for retrieving per-request dynamic environment variables.
|
|
||||||
|
|
||||||
|
|
||||||
CRUD base classes:
|
CRUD base classes
|
||||||
|
-----------------
|
||||||
|
|
||||||
* The Retrieve method should add in the common Flag('all') option for
|
* The Retrieve method should add in the common Flag('all') option for
|
||||||
retrieving all attributes.
|
retrieving all attributes.
|
||||||
@ -58,11 +43,9 @@ CRUD base classes:
|
|||||||
LDAPCreate, etc. Or other options it to have an LDAPObject base class and
|
LDAPCreate, etc. Or other options it to have an LDAPObject base class and
|
||||||
have the crud Method plugins rely more on their corresponding Object plugin.
|
have the crud Method plugins rely more on their corresponding Object plugin.
|
||||||
|
|
||||||
* Update the Retrieve, Update, Delete, and Search classes so that the utilize
|
|
||||||
the new Param.query kwarg (to turn off validation) when cloning params.
|
|
||||||
|
|
||||||
|
Existing plugins
|
||||||
Existing plugins:
|
----------------
|
||||||
|
|
||||||
* Many existing plugins that are doing crud-type operations aren't using the
|
* Many existing plugins that are doing crud-type operations aren't using the
|
||||||
Object + Method way of defining their parameters, and are therefore defining
|
Object + Method way of defining their parameters, and are therefore defining
|
||||||
@ -71,33 +54,40 @@ Existing plugins:
|
|||||||
they need to be improved.
|
they need to be improved.
|
||||||
|
|
||||||
|
|
||||||
Command Line interface:
|
Command Line interface
|
||||||
|
----------------------
|
||||||
|
|
||||||
* Finish textui plugin
|
* Further enhance textui plugin
|
||||||
|
|
||||||
* Make possible Enum values self-documenting
|
* Make possible Enum values self-documenting... this might require writing our
|
||||||
|
own replacement for optparse. The isn't way to make optparse deal with the
|
||||||
|
global options the way Jason would like, so that's another motivation.
|
||||||
|
|
||||||
* All "comma-separated list of..." parameters should really be changed to
|
* All "comma-separated list of..." parameters should really be changed to
|
||||||
multivalue and have a flag that tells the CLI whether a multivalue should
|
multivalue and have a flag that tells the CLI whether a multivalue should
|
||||||
be parsed as comma-separated.
|
be parsed as comma-separated. The List type currently satisfy this, but it
|
||||||
|
would be nice to have a comma-separated multivalue of any type.
|
||||||
|
|
||||||
* Add a file option so an argument may be read from a file. This is needed
|
* Add a File param type so an argument may be read from a file. This is
|
||||||
for cert-request to pass along the CSR.
|
needed for cert-request to pass along the CSR.
|
||||||
|
|
||||||
* Replace RequiresRoot() with more fine-grained control based on the
|
* Replace RequiresRoot() with more fine-grained control based on the
|
||||||
files that need to be read/written
|
files that need to be read/written
|
||||||
|
|
||||||
|
|
||||||
Improve ease of plugin writting
|
|
||||||
- make "from ipalib import *" import everything a plugin writter will need
|
|
||||||
- Finish ipa_types, add Str and Float Types
|
|
||||||
|
|
||||||
Packaging
|
Packaging
|
||||||
- Use setuptools instead of plain distutils
|
---------
|
||||||
- Make setup.py generate dev-docs and run unit tests
|
|
||||||
- Package for rpm (.spec file)
|
* Use setuptools instead of plain distutils
|
||||||
- Package for apt (debian/ dir)
|
|
||||||
|
* Make setup.py generate dev-docs and run unit tests
|
||||||
|
|
||||||
|
* Package for deb/apt (debian/ dir)
|
||||||
|
|
||||||
|
|
||||||
Migration
|
Migration
|
||||||
- Add the IPAService objectclass to existing principals
|
---------
|
||||||
- Move existng host/ principals from cn=services to cn=computers?
|
|
||||||
|
* Add the IPAService objectclass to existing principals
|
||||||
|
|
||||||
|
* Move existng host/ principals from cn=services to cn=computers?
|
||||||
|
Loading…
Reference in New Issue
Block a user