Commit Graph

193 Commits

Author SHA1 Message Date
Jason Gerard DeRose
912ab9e68b Removed unneeded import of errors from plugable.py 2009-01-03 18:08:39 -07:00
Jason Gerard DeRose
bb6e9cfe9f Plugin.call() now uses errors2 version of SubprocessError 2009-01-03 18:02:58 -07:00
Jason Gerard DeRose
6b6e6b1cab Ported plugin registration errors into errors2.py; plugable.Registrar now raises new errors2 exceptions 2009-01-03 17:27:53 -07:00
Jason Gerard DeRose
72340a594d Removed unneeded import of check_type, check_instance in plugable.py 2009-01-02 01:16:17 -07:00
Jason Gerard DeRose
b4dc333ee2 Removed depreciated code in ipalib.plugable that has been moving into ipalib.base 2009-01-02 00:46:45 -07:00
Jason Gerard DeRose
5b637f6a18 Removed depreciated code from config.py; removed corresponding unit tests 2008-12-22 15:41:24 -07:00
Jason Gerard DeRose
f82c48f775 Added note in Plugin.set_api() about Plugin.log attribute being depreciated 2008-12-21 19:58:48 -07:00
Jason Gerard DeRose
9d091c98f1 Plugin.__init__() now checks that subclass hasn't defined attributes that conflict with the logger methods; added corresponding unit test 2008-12-21 19:34:32 -07:00
Jason Gerard DeRose
4390523b7f Improved Plugin.call() method and added its unit test 2008-12-21 17:12:00 -07:00
Jason Gerard DeRose
4f24f0fd88 Plugin.doc instance attribute is now parsed out using inspect.getdoc(); added Plugin.summary instance attribute, created in Plugin.__init__() 2008-12-17 23:08:52 -07:00
Jason Gerard DeRose
171ed58367 Removed Plugin.doc property and replaced with instance attribute created in Plugin.__init__() 2008-12-17 21:57:58 -07:00
Jason Gerard DeRose
69041c3b1b Removed Plugin.name property and replaced with instance attribute created in Plugin.__init__() 2008-12-17 21:47:43 -07:00
Jason Gerard DeRose
2db738e899 Some changes to make reading dubugging output easier 2008-11-24 10:09:30 -07:00
Jason Gerard DeRose
c26a3c8542 Finished fist draft of plugin tutorial in ipalib/__init__.py docstring 2008-11-07 02:26:38 -07:00
Jason Gerard DeRose
5bdf860647 Added Plugin.call() method that calls an external executable via subprocess.call() 2008-11-06 11:57:21 -07:00
Jason Gerard DeRose
242a8183a7 Added custom log formatter util.LogFormatter that makes the human-readable time stamp in UTC 2008-10-31 20:25:33 -06:00
Jason Gerard DeRose
5e5a83e4e8 Renamed API.bootstrap_from_options() to bootstrap_with_global_options() 2008-10-31 19:03:07 -06:00
Jason Gerard DeRose
5269d1396c Logging formats are now env variables; added log_format_stderr_debug format used when env.debug is True 2008-10-31 18:55:32 -06:00
Jason Gerard DeRose
a23d41a57f Reoganized global option functionality to it is easy for any script to use the environment-related global options; lite-xmlrpc.py now uses same global options 2008-10-31 18:17:08 -06:00
Jason Gerard DeRose
cdfb7bfd5e Logging is now configured in API.bootstrap(); removed depreciated util.configure_logging() function 2008-10-31 13:27:42 -06:00
Jason Gerard DeRose
140458cfc6 API.finalize() now cascades call to API.load_plugins() 2008-10-31 12:29:59 -06:00
Jason Gerard DeRose
3076cb4d2f Plugin.set_api() now sets convience instance attributes from api for env, context, log, and all NameSpace 2008-10-30 14:11:24 -06:00
Jason Gerard DeRose
6879140db7 Added ipalib.plugins.f_misc with new 'context' Command; moved 'env' Command from cli to f_misc 2008-10-30 02:20:28 -06:00
Jason Gerard DeRose
ddb5449c7f Did some initial work for Context plugins 2008-10-30 01:11:33 -06:00
Jason Gerard DeRose
fbcb55bd11 lite-xmlrpc.py now uses api.bootstrap() property, logs to api.logger 2008-10-28 02:10:56 -06:00
Jason Gerard DeRose
316bd855d5 Added util.configure_logging() function; API.bootstrap() now calls util.configure_logging() 2008-10-28 01:39:02 -06:00
Jason Gerard DeRose
83d6c95e46 API.load_plugins() no longer takes dry_run=False kwarg and instead checks in env.mode == 'unit_test' to decide whether to load the plugins; it also only loads ipa_server.plugins in env.in_server is True 2008-10-27 23:39:43 -06:00
Jason Gerard DeRose
bb9691099b API.bootstrap() now calls Env._finalize_core(); updated unit tests 2008-10-27 15:36:41 -06:00
Jason Gerard DeRose
e6254026fe Implemented basic CLI.bootstrap(); added corresponding unit tests 2008-10-27 15:19:49 -06:00
Jason Gerard DeRose
d76202fea3 API.env is now an Env instance rather than an Environment instance 2008-10-27 01:35:40 -06:00
Jason Gerard DeRose
03accc5fb3 Copied plugin loading function from load_plugins.py to util.py; API.load_plugins() method now calls functions in util 2008-10-27 00:23:43 -06:00
Jason Gerard DeRose
4fe03f5e17 Added API.load_plugins() place-holder, which cascades call to API.bootstrap() 2008-10-26 23:53:44 -06:00
Jason Gerard DeRose
6b8abb0d78 Implemented placeholder API.bootstrap() method; added API __doing(), __do_if_not_done(), isdone() methods borrowed from Env; API.finalize() now cascades call to API.bootstrap() 2008-10-26 23:28:06 -06:00
Jason Gerard DeRose
5e0a0fa745 In second example in NameSpace docstring, renamed 'member' class to 'Member' to make the example clearer 2008-10-21 08:47:08 -06:00
Jason Gerard DeRose
77a378bd61 Some PEP-257 and reStructuredText cleanup in plugable.py 2008-10-18 01:02:31 -06:00
Jason Gerard DeRose
f1eb74e22c make-test now runs doctests also; fixed several broken doctests 2008-10-17 20:50:34 -06:00
Martin Nagy
3a80297b04 Reworking Environment, moved it to config.py 2008-10-17 23:11:51 +02:00
Jason Gerard DeRose
20fa90cfb6 Some small cleanup on Environment, filled in docstrings 2008-10-14 00:39:23 -06:00
Rob Crittenden
75bad44c27 Enable the verbose flag to pass thru xmlrpc 2008-10-10 05:23:00 -04:00
Martin Nagy
149429f305 Environment is now subclassed from object, rather then dict. Added tests for Environment and config.py 2008-10-02 17:22:41 -06:00
Martin Nagy
afdc721038 Add support for environment variables, change tests accordingly 2008-09-29 17:45:14 -06:00
Jason Gerard DeRose
023f612921 361: Implemented crud.Add.get_options() method; added corresponding unit tests 2008-09-25 02:13:16 +00:00
Jason Gerard DeRose
f531f7da81 354: Added NameSpace.__todict__() method that returns copy of NameSpace.__map; updated NameSpace unit test to also test __todict__() 2008-09-24 23:49:44 +00:00
Jason Gerard DeRose
3e70c3b56b 325: API.finalize() now creates instance attribtue 'plugins', which is a tuple of PluginInfo objects; renamed show_plugins cli command to namespaces; added new cli command plugins 2008-09-24 04:44:52 +00:00
Jason Gerard DeRose
19bbc48eb6 323: Added Command.run() method that dispatches to execute() or forward(); added corresponding unit tests 2008-09-24 02:52:19 +00:00
Jason Gerard DeRose
f3aaf65f1c 320: plugable.API now respects the Plugin.__proxy__ flag; added test for plugins without proxy to unit tests for API 2008-09-24 00:44:41 +00:00
Jason Gerard DeRose
b206ef6843 314: Completed some missing features in Command.__call__(); removed depreciated Command.print_call() method 2008-09-22 01:28:57 +00:00
Jason Gerard DeRose
f73d976bda 307: Split Plugin.finalize() into two steps 1) Plugin.set_api() and 2) Plugin.finalize(); updated unit tests 2008-09-21 21:50:56 +00:00
Jason Gerard DeRose
5872221bd4 306: Added Plugin.set_api() method; added corresponding unit tests 2008-09-21 21:30:19 +00:00
Jason Gerard DeRose
ef0d7a71ab 299: Cleaned up unit tests for ReadOnly class 2008-09-18 22:39:48 +00:00
Jason Gerard DeRose
81ebe078be 298: Cleaned up docstrings in ReadOnly methods 2008-09-18 22:01:04 +00:00
Jason Gerard DeRose
e524c826db 297: Added a better example in docstring for ReadOnly 2008-09-18 21:45:25 +00:00
Jason Gerard DeRose
14eb96493b 296: Added more to docstrings for NameSpace.__iter_() and NameSpace.__call__() 2008-09-18 21:23:05 +00:00
Jason Gerard DeRose
84a721d408 294: NameSpace no longer subclasses from DictProxy; NameSpace.__getitem__() now works with int and slice objects 2008-09-18 20:35:23 +00:00
Jason Gerard DeRose
0453aa465f 274: NameSpace.__init__() now takes sort=True keyword arument to allow for non-sorted NameSpaces; updated and improved NameSpace unit tests 2008-09-09 23:10:49 +00:00
Jason Gerard DeRose
13f030d91e 271: Improved __repr__ methods for better output from the show-plugins command 2008-09-08 21:51:05 +00:00
Jason Gerard DeRose
e74713a076 267: Finished builtin CLI api command 2008-09-08 21:37:02 +00:00
Jason Gerard DeRose
8b7fe7139d 228: plugable.check_name() now uses errors.check_type() 2008-09-02 17:29:01 +00:00
Jason Gerard DeRose
ab10f0843b 179: DictProxy now has __call__() method that iterates through the values; removed __call__() method from NameSpace as it subclasses from DictProxys; DictProxy unit tests now test __call__() 2008-08-15 05:19:02 +00:00
Jason Gerard DeRose
a24f2121d5 178: Registrar now subclasses from DictProxy; made Registrar.__iter__ behave same as the other container emulation in plugable.py, and made the dictorary interface return the base and the attribute interface return the MagicDict; updated API class and unit tests 2008-08-15 05:07:17 +00:00
Jason Gerard DeRose
5ed58fdb42 177: Docstring cleanup in NameSpace.__call__() 2008-08-15 03:45:07 +00:00
Jason Gerard DeRose
db8099febc 176: PluginProxy now subclasses from SetProxy 2008-08-15 03:41:17 +00:00
Jason Gerard DeRose
233293fb4a 175: Renamed Proxy to PluginProxy 2008-08-15 03:32:38 +00:00
Jason Gerard DeRose
ec0596b429 174: Fleshed out docstrings for SetProxy, DictProxy, and MagicDict 2008-08-15 03:24:37 +00:00
Jason Gerard DeRose
3e3b596f68 173: NameSpace now subclasses from DictProxy 2008-08-15 01:46:11 +00:00
Jason Gerard DeRose
1a92bdf29b 172: API now subclasses from DictProxy 2008-08-15 01:32:20 +00:00
Jason Gerard DeRose
e43a5c642e 171: MagicDict now subclasses from DictProxy; updated unit tests 2008-08-15 01:24:51 +00:00
Jason Gerard DeRose
f6c2181eeb 170: Added SetProxy and DictProxy classes to plugable so container emulation can be consolidated 2008-08-15 01:04:19 +00:00
Jason Gerard DeRose
88a5b3ae25 169: Renamed DictProxy to MagicDict 2008-08-14 23:49:36 +00:00
Jason Gerard DeRose
07cd537277 168: plugable.API now implements the all the usual container methods 2008-08-14 22:13:42 +00:00
Jason Gerard DeRose
5f38daf6de 167: In API.finalize(), lock(plugin) is used instead of plugin.__lock__(); more docstring improvements in plugable.py 2008-08-14 21:40:37 +00:00
Jason Gerard DeRose
d229a76474 165: Added unit tests for plugable.lock() function; replaced occurances of 'self.__lock__()' with 'lock(self)' in plugable.py 2008-08-14 20:32:35 +00:00
Jason Gerard DeRose
43c04f1cd3 163: Docstring improvement for ipalib/__init__.py and plugable.py 2008-08-14 19:36:54 +00:00
Jason Gerard DeRose
f423f2c9f0 162: Added link to container emulation documentation in plugable.py docstring 2008-08-14 18:59:12 +00:00
Jason Gerard DeRose
7c64c8b954 161: Registrar now takes advantage of DictProxy; updated corresponding unit tests 2008-08-14 18:50:21 +00:00
Jason Gerard DeRose
87cad5078a 160: DictProxy now checks type of d in __init__(); updated unit tests 2008-08-14 17:29:13 +00:00
Jason Gerard DeRose
b403fd822b 159: Added plugable.DictProxy class; added corresponding unit tests; added setitem(), delitem() functions to tstutil 2008-08-14 17:21:21 +00:00
Jason Gerard DeRose
ca53615ddd 158: Name local arg 'cls' to 'klass' in Registrar methods to avoid confusion with classmethods; some docstring improvement in Registrar 2008-08-14 09:38:28 +00:00
Jason Gerard DeRose
a3dc04ade4 157: More docstring cleanup; fixed remaining epydoc warnings 2008-08-14 09:01:02 +00:00
Jason Gerard DeRose
f0dfb9f873 156: Fixed all broken docstring cross references 2008-08-14 08:28:48 +00:00
Jason Gerard DeRose
8c27f4c2de 155: More docstring cleanup in plugable.py 2008-08-14 07:43:43 +00:00
Jason Gerard DeRose
00f4272662 154: Merged ProxyTarget functionality into Plugin to make things a bit clearer 2008-08-14 07:10:07 +00:00
Jason Gerard DeRose
a59d6698d2 153: Started cleaning up docstrings in Proxy and also experimented with restructuredtext formatting 2008-08-14 06:53:05 +00:00
Jason Gerard DeRose
ba8d32a110 150: NameSpace.__iter__() now iterates through the names, not the members; added NameSpace.__call__() method which iterates through the members; NameSpace no longer requires members to be Proxy instances; updated unit tests and affected code; cleaned up NameSpace docstrings and switch to epydoc param docstrings 2008-08-14 05:46:20 +00:00
Jason Gerard DeRose
0fed74b56d 138: Added ProxyTarget.doc property; CLI.print_commands() now uses cmd.doc instead of cmd.get_doc() 2008-08-13 02:34:36 +00:00
Jason Gerard DeRose
70cbe10624 124: Fixed case in example in ReadOnly class docstring 2008-08-12 23:45:36 +00:00
Jason Gerard DeRose
7db3aae1b2 123: API.finalize() now raises AssetionError if called more than once; added corresponding unit tests 2008-08-12 23:40:36 +00:00
Jason Gerard DeRose
b72cfa5dcc 121: Renamed API.__call__() method to API.finalize() 2008-08-12 22:52:37 +00:00
Jason Gerard DeRose
f767543fe7 120: Moved ProxyTarget below Proxy to emphasize relationship with Plugin; added docstrings for ProxyTarget.implements() and implemented_by() classmethods; fixed typo in Plugin.finalize() docstring 2008-08-12 22:40:06 +00:00
Jason Gerard DeRose
8640523632 119: Added ProxyTarget.implemented_by() classmethod; added corresponding unit tests 2008-08-12 21:45:54 +00:00
Jason Gerard DeRose
d7958f3fde 103: Fixed missing API.__keys assignment 2008-08-09 19:48:47 +00:00
Jason Gerard DeRose
0edb22c9ac 102: After the API instance calls plugin.finalize(), it also calls plugin.__lock__() 2008-08-09 19:39:58 +00:00
Jason Gerard DeRose
543aea31a4 101: Registrar now subclasses from ReadOnly 2008-08-09 19:33:13 +00:00
Jason Gerard DeRose
0e532cd7b3 100: Cleaned up NameSpace docstrings; cleanup up NameSpace unit tests 2008-08-09 19:28:01 +00:00
Jason Gerard DeRose
e756e12718 99: Cleaned up unit tests for plugable.Plugin 2008-08-09 19:09:10 +00:00
Jason Gerard DeRose
5315514f6c 98: Completed docstrings in Proxy 2008-08-09 18:58:46 +00:00
Jason Gerard DeRose
9712eae51c 97: Some whitespace and docstring cleanup; Plugin now subclasses from ProxyTarget 2008-08-09 05:19:40 +00:00
Jason Gerard DeRose
409f688ef5 96: Fixed typo is ReadOnly docstring 2008-08-09 04:37:37 +00:00
Jason Gerard DeRose
72f3132d2b 95: Improved docstrings for ReadOnly class; added ReadOnly.__islocked__() method; added corresponding unit tests 2008-08-09 04:35:06 +00:00
Jason Gerard DeRose
3495c67d57 94: Renamed Proxy._clone() method to Proxy.__clone__(); updated unit tests 2008-08-09 01:46:12 +00:00