blob: 74f014b30f7968f7907be8d520f1dbfd464ae78f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
General ipalib/ipaserver improvements
-------------------------------------
* Port any commands still using old crud base classes to new crud base
classes, and then remove old crud base classes.
* Add a Command.backend convenience attribute that checks if the class
uses_backend attribute is sets the Command.backend attribute like this:
self.backend = self.Backend[self.uses_backend]
* Possibly generalize current Plugin.call() method (makes subprocess calls).
Probably should renamed this so it's not confused with Command.execute()...
maybe Plugin.subprocess_call()?.
* Add special logging methods to Plugin baseclass for authorization events
(escalation, de-escalation, and denial)... need to talk to John about this.
* Implement remaining missing features for full gettext service.
* Add ability to register pre-op, post-op plugins per command.
* Change Command so it filters args/options according to the Param.limit_to
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
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
the return value. (Use case still isn't very defined.)
* Improve CLI help to take advantange of the fact that command docstrings are
now split into summary and details.
* Remove remaining __getattr__() use in ipalib.plugable.
CRUD base classes
-----------------
* The Retrieve method should add in the common Flag('all') option for
retrieving all attributes.
* We probably need some LDAP centric crud method base classes, like
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.
Existing plugins
----------------
* Many existing plugins that are doing crud-type operations aren't using the
Object + Method way of defining their parameters, and are therefore defining
the exact same parameter several times in a module. This should be fixed
one way or another... if there are deficiencies in the crud base classes,
they need to be improved.
Command Line interface
----------------------
* Further enhance textui plugin
* 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
multivalue and have a flag that tells the CLI whether a multivalue should
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 param type so an argument may be read from a file. This is
needed for cert-request to pass along the CSR.
* Replace RequiresRoot() with more fine-grained control based on the
files that need to be read/written
Packaging
---------
* Use setuptools instead of plain distutils
* Make setup.py generate dev-docs and run unit tests
* Package for deb/apt (debian/ dir)
Migration
---------
* Add the IPAService objectclass to existing principals
* Move existng host/ principals from cn=services to cn=computers?
|