-
Notifications
You must be signed in to change notification settings - Fork 14
Python CLI like API
Dmitry Romanov edited this page Nov 17, 2015
·
3 revisions
Automating ccdb command for scripting purposes could be made easy with python. One doesn't have to call subprocess.
One can use CCDB directly from python using ConsoleContext class.
- Add
$CCDB_HOME/python
to your PYTHONPATH. PYTHONPATH is automatically adjusted when environment.bash CCDB script is sourced. But one can add manually like:
export PYTHONPATH="$CCDB_HOME/python":"$PYTHONPATH"
- Usage example
import ccdb.path_utils
import ccdb.cmd.themes
from ccdb import get_ccdb_home_path
from ccdb.cmd.console_context import ConsoleContext
#Initialization
#=============================
#connection strings:
ccdb_path = get_ccdb_home_path()
sqlite_connection_str = "sqlite:///" + os.path.join(ccdb_path, "sql", "ccdb.sqlite")
mysql_connection_str = "mysql://ccdb_user@127.0.0.1:3306/ccdb"
#create console context, this is the main class
context = ConsoleContext()
#set all exception to be raised and propagated instead of just going to log
#so you can try-except them
context.silent_exceptions = False
# disable colored output
context.theme = ccdb.cmd.themes.NoColorTheme()
# set connection string
context.connection_string = sqlite_connection_str
# your username for logging
context.user_name = "python_tests"
# Register all commands (ls, rm, mktbl etc...)
# One can use context after calling this function
context.register_utilities()
#now you can use context to run ccdb command
try:
context.process_command_line("mkdir /test/testable2 x y z #Some comment")
#...
Please look at
$CCDB_HOME/python/tests/test_console_context.py
There are a lot of examples of how to use console_context class