Rob Crittenden
fe84ffd0f1
Add a return value to exceptions.
...
Returning the exception value doesn't work because a shell return value
is in the range of 0-255.
The default return value is 1 which means "something went wrong." The only
specific return value implemented so far is 2 which is "not found".
2009-07-10 16:44:54 -04:00
Rob Crittenden
0e29dd7226
Add textui function to display and prompt user for selection for *-find.
...
Since we may end up executing a *-show when an entry is selected we need
to defer destroying the connection context.
2009-07-10 16:44:22 -04:00
Rob Crittenden
e46fd3401e
Two new arguments for the help built-in command: topics and commands
...
ipa help topics will show all topics (equivalent to ipa help)
ipa help commands will show list of all available commands
2009-06-15 14:03:12 -04:00
Rob Crittenden
fe012f4ff2
Fix a few issues introduced by the new Param.use_in_context() patch
2009-05-21 14:33:23 -04:00
Jason Gerard DeRose
87480b7bde
Re-enable doctest, fix broken docstrings
2009-05-13 14:22:09 -04:00
Rob Crittenden
a7a16272b1
When reading a password, if there is no tty, read from stdin instead.
...
This will allow one to pipe a password in:
echo -e "secret123\secret123\n" | ipa password someuser
2009-05-04 17:43:14 -04:00
Pavel Zuna
9992b23a08
Change help interface to display builtin commands and a list of topics based on plugin modules.
2009-04-30 15:55:16 -04:00
Jason Gerard DeRose
3f4a0a2d77
Fixed cli.run() catching SystemExit exception under Python2.4
...
Resolves BZ #498088
2009-04-28 22:29:10 -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
596d410471
Make LDAP entry output slightly nicer, don't print u's in front of unicode strings etc.
2009-04-23 10:25:51 -04:00
Rob Crittenden
64fa3dd4c3
Finish work replacing the errors module with errors2
...
Once this is committed we can start the process of renaming errors2 as errors.
I thought that combinig this into one commit would be more difficult to
review.
2009-04-20 13:58:26 -04:00
Rob Crittenden
484eff1016
Implement an installer for the Dogtag certificate system.
...
The CA is currently not automatically installed. You have to pass in the
--ca flag to install it.
What works:
- installation
- unistallation
- cert/ra plugins can issue and retrieve server certs
What doesn't work:
- self-signed CA is still created and issues Apache and DS certs
- dogtag and python-nss not in rpm requires
- requires that CS be in the "pre" install state from pkicreate
2009-04-03 14:06:09 -04:00
Rob Crittenden
65e6259075
Always print the dn first when printing an entry
2009-03-25 11:02:42 -04:00
Jason Gerard DeRose
1359618e7e
Fixed broken autfill logic in cli.prompt_interactively()
2009-02-27 12:58:32 -05:00
Rob Crittenden
5a6d2dd0d9
Print out multi-valued values one per-line instead of comman-delimited
2009-02-19 10:08:52 -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
231f0bd65a
Finished reworked cli.CLI class into cli.cli plugin
2009-02-03 15:29:04 -05:00
Jason Gerard DeRose
db0168f7af
Started reworking CLI class into cli plugin
2009-02-03 15:29:03 -05:00
Jason Gerard DeRose
7a0f969a47
CLI now logs trace if it catches a non-public error and then exists with an InternalError; other CLI cleanup
2009-02-03 15:29:02 -05:00
Jason Gerard DeRose
c0bc2451dd
Fixed another small CLI decoding problem (multivalue args in a tuple now work)
2009-02-03 15:29:02 -05:00
Jason Gerard DeRose
e537dc89cb
Fixed a few problems in the CLI interactive prompting (wont prompt for Flag now)
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
833088955c
More xmlrpc tweaks: xmlserver.execute() now logs non-public exceptions; xmlclient.forward() now handles socket error; fixed some Python 2.4 problems in lite-xmlrpc2.py
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
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
7514f96173
New Param: fixed metavar bug in cli.py
2009-01-16 11:07:21 -07:00
Jason Gerard DeRose
4d4fa694ee
Small change in ipalib.cli to check if param is a Password instance instead of calling depreciated ispasswd() method
2009-01-14 23:15:46 -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
6fe78a4944
Renamed all references to 'ipa_server' to 'ipaserver'
2009-01-04 18:39:39 -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
6fdf5d1e7b
Merge branch 'master' of git://git.engineering.redhat.com/users/rcritten/freeipa2
2008-12-20 15:00:00 -07:00
Jakub Hrozek
360f95341a
Fix show_api command
2008-12-17 17:21:25 -07:00
Jakub Hrozek
67b688c7b2
Jakub Hrozek's patch to make textui.get_tty_width() actually work
2008-12-16 19:00:39 -07:00
Rob Crittenden
3583735c60
Set defaults even for optional arguments.
2008-12-10 14:15:20 -05:00
Rob Crittenden
fc8ac69372
Port plugins to use the new output_for_cli() argument list
...
Fix some errors uncovered by the nosetests
2008-12-10 14:15:19 -05:00
Jason Gerard DeRose
2478ccd357
Fixed some unicode encoded/decode issues in textui.prompt_password() and textui.prompt()
2008-11-19 03:31:29 -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
0a60a6bcc4
Added textui.prompt_password() method; added logic in cli for dealing with 'password' flag in param.flags
2008-11-18 11:30:16 -07:00
Jason Gerard DeRose
75d1918996
Added some experimental textui methods
2008-11-17 20:41:01 -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
42bf555a3a
Started updated user_* commands to use textui
2008-11-17 15:27:08 -07:00
Jason Gerard DeRose
e7ec413158
Moved plugins command from ipalib.cli to ipalib.plugins.f_misc
2008-11-16 19:50:17 -07:00
Jason Gerard DeRose
e3fec8f219
Fixed textui.print_keyval for cases when the row is a list instead of a tuple
2008-11-14 22:03:31 -07:00
Jason Gerard DeRose
c974451edf
Added print_plain() and print_paragraph() methods to textui plugin and cleaned up the order of its methods
2008-11-14 13:33:42 -07:00
Jason Gerard DeRose
82d3de773b
Added textui.prompt() method, which CLI.prompt_interactively() uses
2008-11-13 23:54:34 -07:00
Jason Gerard DeRose
f5594dd489
Started work on cleaning up how exceptions are caught and sys.exit() is called in ipalib.cli.CLI
2008-11-13 23:29:35 -07:00
Jason Gerard DeRose
01a7f1f437
Calling ./ipa with no command now calls Command.help()
2008-11-12 10:15:24 -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
014af24731
Changed calling signature of output_for_cli(); started work on 'textui' backend plugin
2008-11-12 00:46:04 -07:00
Rob Crittenden
f131480643
Move socket errors from the XML-RPC plugin to the client
2008-11-03 17:38:05 -05:00
Rob Crittenden
d53218a932
Handle exceptions in the command-line instead of in the XMLRPC client plugin
2008-11-03 17:19:29 -05: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
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
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
138305b365
Added an example CLI-specific env command
2008-10-28 02:23:13 -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
6e456cc749
More CLI cleanup, got all basics working again
2008-10-27 23:30:55 -06:00
Jason Gerard DeRose
9b1e3f5946
More docstrings, functionality, and unit tests for improved CLI class
2008-10-27 19:21:49 -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
17fd9cc431
Started cleanup work on CLI class, added unit tests for CLI.parse_globals()
2008-10-27 14:49:34 -06:00
Jason Gerard DeRose
10026284db
Started cleanup work on CLI class, added unit tests for CLI.parse_globals()
2008-10-27 14:48:02 -06:00
Rob Crittenden
06a82bf4b6
Fix ipa command running in server_context=True
...
Make the LDAP host and port environment variables
More changes so that commands have a shell return value
lite-xmlrpc no longer hardcodes the kerberos credentials cache location
2008-10-23 11:00:50 -04:00
Rob Crittenden
f189b02996
Return a value to the shell that called ipa
2008-10-22 17:52:32 -04:00
Rob Crittenden
bc5edcf893
Gracefully handle keyboard interrupts (^C)
2008-10-21 14:42:13 -04:00
Rob Crittenden
6b998ed479
Make boolean options work like standard OptionParser booleans
2008-10-21 09:32:48 -04:00
Jason Gerard DeRose
ac0a019605
Reworked 'plugins' command to use output_for_cli()
2008-10-20 18:57:03 -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
Martin Nagy
3a80297b04
Reworking Environment, moved it to config.py
2008-10-17 23:11:51 +02: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
22669f1fc2
CLI.run_interactive() now uses Param.cli_name instead of Param.name for prompts and errors
2008-10-13 22:00:18 -06:00
Jason Gerard DeRose
b6dcd183a6
CLI now maps Param.cli_name to Param.name
2008-10-13 20:31:10 -06:00
Martin Nagy
4a1c4a3fe3
Implement argument parsing for the CLI
2008-10-08 00:07:44 +02:00
Martin Nagy
4a68c719f0
Implement config file reading
2008-10-08 00:07:44 +02: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
eaf15d5a52
327: Improved formatting on show-api cli command
2008-09-24 05:35:40 +00:00
Jason Gerard DeRose
f3ac709922
326: Made output of plugins cli command nicer
2008-09-24 05:03:10 +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
3bf2da5714
324: Removed 'smart_option_order' from Command.__public__; cli commands help, console, and show_plugins now override Command.run() instead of Command.__call__()
2008-09-24 03:10:35 +00:00
Jason Gerard DeRose
4e8ff5c656
318: Renamed all references to 'public' module to 'frontend'
2008-09-24 00:01:29 +00:00
Jason Gerard DeRose
2d83614006
305: Ported cli.py to changes in public.py
2008-09-21 19:00:41 +00:00
Jason Gerard DeRose
23e251a605
288: CLI now uses Command.group_args() to check for required arguments
2008-09-10 23:33:36 +00:00
Jason Gerard DeRose
687f603562
284: Removed depreciated Command.Option property; removed corresponding unit tests; updated affected code
2008-09-10 15:31:34 +00:00
Jason Gerard DeRose
8062075f84
279: Fixed cli and public.Method re new Command.args attribute
2008-09-10 02:02:26 +00:00
Jason Gerard DeRose
0215bc8009
276: Option.__init__(): doc is now 3rd kwarg instead of 2nd positional arg; updated unit tests and other affected code
2008-09-10 00:21:40 +00:00
Jason Gerard DeRose
21a0bab79e
272: Add a quick positional arg experiment
2008-09-09 01:41:15 +00:00
Jason Gerard DeRose
cb9c442708
270: show-plugins now only shows namespaces with at least one member
2008-09-08 21:44:53 +00:00
Jason Gerard DeRose
03fd184e8e
269: Renamed print_api command to show_plugins
2008-09-08 21:42:48 +00:00
Jason Gerard DeRose
e74713a076
267: Finished builtin CLI api command
2008-09-08 21:37:02 +00:00
Jason Gerard DeRose
641403278e
266: Started work on new cli.print_api Command
2008-09-04 18:35:04 +00:00
Jason Gerard DeRose
22d9b8c078
265: Fixed small formatting error with use of CLI.print_commands()
2008-09-04 09:27:28 +00:00
Jason Gerard DeRose
553b0c596d
264: Cleaned up docstrings on all example plugins
2008-09-04 09:22:18 +00:00
Jason Gerard DeRose
6b9ba734e1
263: CLI.print_commands() now seperates Command subclasses from Application subclasses
2008-09-04 09:04:35 +00:00
Jason Gerard DeRose
6f95249d52
261: More work on demo using Option.__call__() for interactive input
2008-09-04 08:33:41 +00:00
Jason Gerard DeRose
915486dadc
260: Option.normalize() now does same conversion for multivalue as Option.convert() does
2008-09-04 08:16:12 +00:00
Jason Gerard DeRose
71d36aa6a0
258: Added some experimental features for interactively prompting for values
2008-09-04 07:18:26 +00:00
Jason Gerard DeRose
01b73e6910
257: Improved help command, now parsing options with optparse
2008-09-04 06:33:57 +00:00
Jason Gerard DeRose
b16deabdff
256: Fixed cli.help plugin so it looks up commands in CLI instead of API
2008-09-04 05:18:14 +00:00
Jason Gerard DeRose
ab81ca56fd
255: CLI help, console commands now subclass from public.Application; other tweeking to make CLI utilize Application
2008-09-04 04:39:01 +00:00
Jason Gerard DeRose
330c17730c
201: Added new cli command 'console' that starts a custom interactive Python console
2008-08-27 00:25:33 +00:00
Jason Gerard DeRose
b0ec8fe551
182: Renamed plublic.cmd base class to Command
2008-08-15 19:49:04 +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
d95133b66f
149: CLI.run() now does an arg.decode('utf-8') for args in sys.argv so that non-ascii characters work
2008-08-14 01:09:11 +00:00
Jason Gerard DeRose
fe7440735d
148: Added some basic out put for cli.help.__call__() method
2008-08-13 07:20:10 +00:00
Jason Gerard DeRose
d422ef1134
146: Removed CLI.parse_kw() method and corresponding unit tests
2008-08-13 06:40:25 +00:00
Jason Gerard DeRose
337c9964d4
145: Added new CLI.parse() method; added corresponding unit tests
2008-08-13 06:25:42 +00:00
Jason Gerard DeRose
14cdb57b50
140: Added a skeleton help command in cli.py
2008-08-13 04:02:39 +00:00
Jason Gerard DeRose
b9fa9dc240
139: Removed dummy gettext _() func from cli.py; improved CLI.print_commands()
2008-08-13 03:15:00 +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
05cefc2af6
136: CLI.print_commands() now prints cmd.get_doc() as well
2008-08-13 02:10:09 +00:00
Jason Gerard DeRose
0b5efa2a62
134: Added CLI.mcl (Max Command Length) property; added corresponding unit tests
2008-08-13 01:52:17 +00:00
Jason Gerard DeRose
64054a673c
122: The dictorary interface to CLI now has keys build using to_cli(), rather than converting at each call
2008-08-12 23:33:02 +00:00
Jason Gerard DeRose
99d7638ff5
115: CLI now parses out kw args; cmd.__call__() now uses print_n_call() to give feedback on the calling
2008-08-12 16:49:23 +00:00
Jason Gerard DeRose
bc4b26ffca
114: Fixed cmd.__get_options(); more work on CLI
2008-08-12 02:03:47 +00:00
Jason Gerard DeRose
afdbc42b2e
112: More work on cli.py
2008-08-11 21:38:30 +00:00
Jason Gerard DeRose
9282418291
110: Started fleshing out more in cli.py
2008-08-11 19:35:57 +00:00
Jason Gerard DeRose
3fe13d5945
87: Moved to_cli(), from_cli() functions from plugable.py into new cli.py file; moved corresponding unit tests into new test_cli.py file
2008-08-08 21:46:23 +00:00