Rob Crittenden
58746226d4
Use the Output tuple to determine the order of output
...
The attributes displayed is now dependant upon their definition in
a Param. This enhances that, giving some level of control over how
the result is displayed to the user.
This also fixes displaying group membership, including failures of
adding/removing entries.
All tests pass now though there is still one problem. We need to
return the dn as well. Once that is fixed we just need to comment
out all the dn entries in the tests and they should once again
pass.
2010-02-15 13:10:11 -07:00
Jason Gerard DeRose
069763c5c6
Add Object.label class attribute, enable in webUI
2010-02-12 17:07:37 -05:00
Jason Gerard DeRose
dc2f246d47
Command.output_params not contains params in Command.params
2010-02-11 14:56:10 -05:00
Jason Gerard DeRose
1d6cc1bb7b
Remove __public__ and __proxy__ hold-overs from Plugin class
2010-01-28 13:32:00 -05:00
Jason Gerard DeRose
b6e4972e7f
Take 2: Extensible return values and validation; steps toward a single output_for_cli(); enable more webUI stuff
2009-12-10 08:29:15 -07:00
Rob Crittenden
55c62ac79a
Add support for setting/adding arbitrary attributes
...
This introduces 2 new params: --setattr and --addattr
Both take a name/value pair, ala:
ipa user-mod --setattr=postalcode=20601 jsmith
--setattr replaces or sets the current attribute to the value
--addattr adds the value to an attribute (or sets a new attribute)
OptionsParser allows multiple versions of this, so you can have multiple
setattr and addattr, either for the same attribute or for different
attributes.
ipa user-mod --addattr=postalcode=20601 --addattr=postalcode=30330 jsmith
Values are silent dropped if either of these on an existing param:
ipa user-mod --setattr=givenname=Jerry jsmith
Is a no-op.
2009-11-17 09:40:56 -07:00
Jason Gerard DeRose
5c9437b9e6
Removed util.add_global_options() and frontend.Application
2009-10-14 15:07:17 -06:00
Jason Gerard DeRose
f58ff2921d
Giant webui patch take 2
2009-10-13 11:28:00 -06:00
Pavel Zuna
e0f3e765db
Fix: Object.params_minus_pk was invalid when there was no primary_key.
2009-09-09 09:56:34 -04:00
Jason Gerard DeRose
c0f558d98b
Removed PluginProxy and all its uses
2009-08-05 12:18:51 -04:00
Pavel Zuna
8c7883364c
Remove use_ldap2 constant.
2009-07-02 13:33:01 -04:00
Pavel Zuna
dc23be6878
Make get_dn parameter list more generic. Fix Attribute name regex.
...
The old name regex made it impossible to have Attribute instances with
names composed of more than two words separated by underscores.
2009-06-10 11:53:14 -04:00
Jason Gerard DeRose
7e58b29a92
Completed Param.use_in_context() functionality, which is now used by Command and Object
2009-05-21 14:32:45 -04:00
Jason Gerard DeRose
4f9224774f
Added Param 'include' and 'exclude' kwargs; added frontend.UsesParams base class with methods implementing the filtering to restrict params to only certain contexts
2009-05-19 13:49:15 -06:00
Rob Crittenden
298d5fbce4
Import the RequiresRoot error and make note to replace this at some point
2009-04-24 16:22:22 -04:00
Pavel Zuna
7d0bd4b895
Rename errors2.py to errors.py. Modify all affected files.
2009-04-23 10:29:14 -04:00
Pavel Zuna
9ecbd845d4
Add conditional (env.use_ldap2 is True) modifications required by new LDAP backend.
2009-04-22 15:14:24 -04:00
Pavel Zuna
016b82250e
Add ipalib.frontend.Command method to build an entry from params with attribute=True.
...
Often plugins need to build LDAP entries from params. This should make things a bit easier.
Crud methods (Create, Retrieve, Update, Delete, Search) have attribute=True by default.
And it also works for multivalue params.
2009-02-23 13:49:21 -05:00
Jason Gerard DeRose
92a150b4f1
Some tweaks in user plugins, ported to new crud base classes
2009-02-03 15:29:05 -05:00
Jason Gerard DeRose
a0aebd46a1
Got new ldap connection working using Connectible.connect()
2009-02-03 15:29:04 -05:00
Jason Gerard DeRose
e0b00d5981
Removed depreciated import of errors in frontend.py
2009-02-03 15:29:02 -05:00
Jason Gerard DeRose
0313f03277
Added ServiceError (KerberosError) and make rpc.KerbTransport raise it if appropriate
2009-02-03 15:29:02 -05:00
Jason Gerard DeRose
114b6b8577
Added some missing parameter unit tests; added docstring about Command._repr_iter() and Param.safe_value()
2009-02-03 15:29:02 -05:00
Jason Gerard DeRose
244346dbcb
More work on xmlrpc stuff, started migrated more code to use errors2 instead of errors
2009-02-03 15:29:01 -05:00
Jason Gerard DeRose
24b6cb89d4
Further migration toward new xmlrcp code; fixed problem with unicode Fault.faultString; fixed problem where ServerProxy method was not called correctly
2009-02-03 15:29:01 -05:00
Jason Gerard DeRose
46c10d4608
Removed bogus CLI.set_defaults() method that was causing non-required values to get filled in
2009-02-03 15:29:00 -05:00
Jason Gerard DeRose
6aadeb9aea
Added Object.params_minus() method; various small tweaks
2009-02-03 15:29:00 -05:00
Jason Gerard DeRose
f3a84683d2
Removed depreciated Command.args_to_kw() method; updated CLI to use Command.args_options_2_params() instead
2009-02-03 15:29:00 -05:00
Jason Gerard DeRose
ae39dece13
Added Command.args_options_2_params() method and its unit tests
2009-02-03 15:29:00 -05:00
Jason Gerard DeRose
4febb4dd14
Started roughing out new crud base classes
2009-02-03 15:28:59 -05:00
Jason Gerard DeRose
6e53d03c69
Command.takes_options and Command.takes_args class attributes can now also be a callable
2009-02-03 15:28:59 -05:00
Jason Gerard DeRose
0327b83899
New Param: all docstring examples now pass under doctests
2009-01-14 20:36:17 -07:00
Jason Gerard DeRose
09e2f5d615
New Param: got most of unit tests ported (still have 6 errors); haven't ported doctests yet
2009-01-14 13:17:30 -07:00
Jason Gerard DeRose
69acff450c
New Param: removed more depreciated 'import ipa_types'
2009-01-14 12:00:47 -07:00
Jason Gerard DeRose
2b2e73e7df
Removed depreciated code from frontend.py; frontend.py no longer imports ipa_types
2009-01-14 11:39:29 -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
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
29d680b211
Continued work on xmlrpc.dispatch() unit tests; fixed bug in Command.args_to_kw()
2008-11-25 13:52:40 -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
500b816681
Added unit test for Param.ispassword() method
2008-11-18 16:29:08 -07:00
Jason Gerard DeRose
4afee15d4b
Calling 'passwd' command now prompts for password using textui.prompt_password()
2008-11-18 13:43:43 -07:00
Jason Gerard DeRose
8474bd01da
Command.get_defaults() now returns param.default if param.type is a Bool
2008-11-17 18:50:30 -07:00
Jason Gerard DeRose
9de56d43f0
env plugin now subclasses from RemoteOrLocal
2008-11-14 21:58:39 -07:00
Jason Gerard DeRose
36737c2d91
Added frontend.LocalOrRemote command base class for commands like env
2008-11-14 21:29:46 -07:00
Jason Gerard DeRose
860d391f3e
Change Param.__repr__() so it returns the exact expression that could create it; added unit test for Param.__repre__()
2008-11-13 22:16:04 -07:00
Jason Gerard DeRose
1f635269e8
Param.__repr__() now uses util.make_repr()
2008-11-13 21:17:33 -07:00
Jason Gerard DeRose
8ad5502354
Added util.make_repr() function; added corresponding unit tests
2008-11-13 21:07:47 -07:00
Jason Gerard DeRose
f04aaff97c
output_for_cli signature is now output_for_cli(textui, result, *args, **options)
2008-11-12 09:55:11 -07:00
Jason Gerard DeRose
09161e399a
Command.get_default() will now fill-in None for all missing non-required params
2008-11-12 01:47:37 -07: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
603baf6b10
Fixed typos in tables in docstrings for Attribute and Method
2008-10-21 08:42:52 -06:00
Jason Gerard DeRose
461f547e6a
Added docstring (with example) to frontend.Attribute class
2008-10-20 20:28:24 -06:00
Jason Gerard DeRose
c818fe1d2d
Added docstring (with examples) to frontend.Method class
2008-10-20 19:57:02 -06:00
Jason Gerard DeRose
bb978e591b
Fixed bug in DefaultFrom where impleied keys were using entire func_code.co_varnames instead of an approprate slice
2008-10-20 16:45:32 -06:00
Jason Gerard DeRose
5c5641e8c2
Added some more examples to Param docstrings
2008-10-18 00:16:22 -06:00
Jason Gerard DeRose
721982870e
Removed generic Command.output_for_cli() method; CLI.run_interactive() now only calls output_for_cli() if it has been implemented
2008-10-17 21:05:03 -06:00
Jason Gerard DeRose
f1eb74e22c
make-test now runs doctests also; fixed several broken doctests
2008-10-17 20:50:34 -06:00
Jason Gerard DeRose
8322138f38
Added new Param.flags attribute (set with flags=foo kwarg)
2008-10-17 19:34:26 -06:00
Jason Gerard DeRose
1480224724
Started roughing out user_add() using api.Backend.ldap; added Command.output_for_cli() to take care of formatting print output
2008-10-14 01:45:30 -06:00
Jason Gerard DeRose
446037fd60
Added Object.get_dn() method; added corresponding unit tests
2008-10-13 23:26:24 -06:00
Jason Gerard DeRose
2357360e2a
Command.params are now sorted the same way as Object.params (make user-add prompt for first, last before login)
2008-10-13 21:53:03 -06:00
Jason Gerard DeRose
8674086b85
Param now takes cli_name kwarg that sets Param.cli_name attribute
2008-10-13 17:24:23 -06:00
Jason Gerard DeRose
887016e69d
Base Command.execute() method now raises NotImplementedError; updated unit tests
2008-10-08 18:18:13 -06:00
Jason Gerard DeRose
b7fe92f44f
Reorganized Command methods so it is easier to understand and added lots of docstrings
2008-10-08 18:01:22 -06:00
Jason Gerard DeRose
3ffbaac64c
Backend.xmlrpc and simple-server.py now use the xmlrpc_marshal() and xmlrpc_unmarshal() functions respectively
2008-10-02 19:42:06 -06:00
Jason Gerard DeRose
ed3a5855f3
-m
2008-10-02 17:51:50 -06:00
Jason Gerard DeRose
993b9f4f63
Command.get_default() now only returns a defaults for required values
2008-10-02 17:46:48 -06:00
Jason Gerard DeRose
6000b6b5c6
Implemented basic Command.forward() method
2008-10-02 17:02:24 -06:00
Martin Nagy
afdc721038
Add support for environment variables, change tests accordingly
2008-09-29 17:45:14 -06:00
Jason Gerard DeRose
d77907d2d0
373: Replaced type_ optional arg to Param.__init__() with pure kw arg type; updated unit tests and related code
2008-09-27 01:30:39 +00:00
Jason Gerard DeRose
8901b9a837
372: Started work on docstring for Param class
2008-09-27 00:31:59 +00:00
Jason Gerard DeRose
031daabcc4
371: Added examples to parse_param_spec() docstring and changed syntax guide into a reStructuredText table
2008-09-26 23:41:51 +00:00
Jason Gerard DeRose
7bbd81d831
370: Added detailed examples to decstring for DefaultFrom class
2008-09-26 22:52:15 +00:00
Jason Gerard DeRose
aa45ec616a
369: Added Object.backend attribute used to associated it with a particular backend component
2008-09-26 02:43:11 +00:00
Jason Gerard DeRose
152f3089e1
363: Added Object.params_minus_pk instance attribute
2008-09-25 03:27:40 +00: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
9f704e001d
360: Removed Method.get_options() default implementation; cleaned up unit tests for Method
2008-09-25 01:52:34 +00:00
Jason Gerard DeRose
54c97b4948
359: Added Object.primary_key instance attribute; added corresponding unit tests
2008-09-25 01:44:53 +00:00
Jason Gerard DeRose
4267422793
358: Cleaned up private methods in Object
2008-09-25 01:04:10 +00:00
Jason Gerard DeRose
4747563a80
356: Modified Method.get_options() to now pull from self.obj.params(); updated unit tests for Method.get_options()
2008-09-25 00:42:38 +00:00
Jason Gerard DeRose
79b33ad366
355: Object.set_api() now creates Object.params namespace by merging takes_params and properties together intelegintly
2008-09-25 00:00:58 +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
be2e323bbf
353: The Object.parms instance attribute is now created in Object.set_api() instead of in Object.__init__()
2008-09-24 23:29:15 +00:00
Jason Gerard DeRose
c3b09b2116
352: Now removed Object.Property property and added in its place Object.properties instance attribute
2008-09-24 23:19:34 +00:00
Jason Gerard DeRose
3d6ab69b46
351: Removed Object.Method property and added in its place Object.methods instance attribute
2008-09-24 22:19:43 +00:00
Jason Gerard DeRose
e2a680d7c9
350: If Param default_from kwarg is callable but not a DefaltFrom instances, the instance is created implicity
2008-09-24 22:05:01 +00:00
Jason Gerard DeRose
755ea8d0c2
349: Improved clarity of local variables in Param.__init__()
2008-09-24 21:57:34 +00:00
Jason Gerard DeRose
250a01b5b7
348: If no keys are passed to DefaultFrom.__init__(), the keys from callback.func_code.co_varnames are used; updated DefaultFrom unit tests to test this usage
2008-09-24 21:46:37 +00:00
Jason Gerard DeRose
566d5ea02a
347: Added primary_key instance attribute to Param and corresponding kwarg; expanded unit tests for Param.__init__()
2008-09-24 21:29:15 +00:00
Jason Gerard DeRose
f8bb60f02d
344: Added Param.__clone__() method; added corresponding unit tests
2008-09-24 19:45:46 +00:00
Jason Gerard DeRose
a79434584e
343: create_param() function no longer parses the param spec itself but relies on Param.__init__() to do it
2008-09-24 18:44:43 +00:00
Jason Gerard DeRose
97f0310a4c
342: Added unit test that TypeError is raised when Param() is created with extra kw args
2008-09-24 18:33:25 +00:00
Jason Gerard DeRose
06d7fb42ec
341: Param now only takes type_=ipa_types.Unicode() as an optional positional arg, and the rest as pure kwargs
2008-09-24 18:27:14 +00:00
Jason Gerard DeRose
792bf7b1d0
340: Changed default for Param.required to True
2008-09-24 18:02:00 +00:00
Jason Gerard DeRose
11a07008b8
339: Added parse_param_spec() function and corresponding unit tests
2008-09-24 17:55:29 +00:00
Jason Gerard DeRose
744406958d
337: Some cleanup in Params; added docstrings for most all Param methods
2008-09-24 07:56:31 +00:00
Jason Gerard DeRose
fb57b91937
336: Param.__dispatch() now returns None for any in (None, '', u'', tuple(), []) regardless whether Param is multivalue
2008-09-24 07:05:43 +00:00
Jason Gerard DeRose
e63c462f31
335: If Command.__convert_scalar() is called with None, it now returns None instead of raising TypeError
2008-09-24 06:48:27 +00:00
Jason Gerard DeRose
4215da30ad
334: Renamed Command.__multivalue() helper method to Command.dispatch()
2008-09-24 06:36:48 +00:00
Jason Gerard DeRose
1125d420bd
333: Param.convert() now uses name Param.__multivalue() helper method as Param.normalize()
2008-09-24 06:35:19 +00:00