瀏覽代碼

replaced -v (verbose) with -d (debug)

use ctx.vlog() or ctx.log() for log messages
Daniel-Constantin Mierla 8 年之前
父節點
當前提交
b44af0a86e
共有 4 個文件被更改,包括 78 次插入75 次删除
  1. 42 42
      README.md
  2. 10 8
      kamcli/cli.py
  3. 25 24
      kamcli/iorpc.py
  4. 1 1
      kamcli/ioutils.py

+ 42 - 42
README.md

@@ -126,53 +126,53 @@ Read the help messages:
 Sample commands to understand quicker the capabilities and how to use it:
 Sample commands to understand quicker the capabilities and how to use it:
 
 
 ```
 ```
-kamcli -v --config=kamcli/kamcli.ini --help
+kamcli -d --config=kamcli/kamcli.ini --help
 
 
 kamcli --config=kamcli/kamcli.ini subscriber show
 kamcli --config=kamcli/kamcli.ini subscriber show
 kamcli --config=kamcli/kamcli.ini subscriber add test test00
 kamcli --config=kamcli/kamcli.ini subscriber add test test00
 kamcli --config=kamcli/kamcli.ini subscriber show test
 kamcli --config=kamcli/kamcli.ini subscriber show test
 kamcli --config=kamcli/kamcli.ini subscriber show --help
 kamcli --config=kamcli/kamcli.ini subscriber show --help
-kamcli -v --config=kamcli/kamcli.ini subscriber passwd test01 test10
-kamcli -v --config=kamcli/kamcli.ini subscriber add -t no test02 test02
-kamcli -v --config=kamcli/kamcli.ini subscriber setattrs test01 rpid +123
-kamcli -v --config=kamcli/kamcli.ini subscriber setattrnull test01 rpid
-
-kamcli -v --config=kamcli/kamcli.ini mi
-kamcli -v --config=kamcli/kamcli.ini mi which
-kamcli -v --config=kamcli/kamcli.ini mi get_statistics all
-
-kamcli -v --config=kamcli/kamcli.ini jsonrpc --help
-kamcli -v --config=kamcli/kamcli.ini jsonrpc core.psx
-kamcli -v --config=kamcli/kamcli.ini jsonrpc system.listMethods
-kamcli -v --config=kamcli/kamcli.ini jsonrpc stats.get_statistics
-kamcli -v --config=kamcli/kamcli.ini jsonrpc stats.get_statistics all
-kamcli -v --config=kamcli/kamcli.ini jsonrpc stats.get_statistics shmem:
-kamcli -v --config=kamcli/kamcli.ini jsonrpc --dry-run system.listMethods
-
-kamcli -v --config=kamcli/kamcli.ini config raw
-kamcli -v --config=kamcli/kamcli.ini config show main db
-kamcli -v --config=kamcli/kamcli.ini --no-default-configs config show main db
-
-kamcli -v --config=kamcli/kamcli.ini db connect
-kamcli -v --config=kamcli/kamcli.ini db show -F table version
-kamcli -v --config=kamcli/kamcli.ini db show -F json subscriber
-kamcli -v --config=kamcli/kamcli.ini db showcreate version
-kamcli -v --config=kamcli/kamcli.ini db showcreate -F table version
-kamcli -v --config=kamcli/kamcli.ini db showcreate -F table -S html version
-kamcli -v --config=kamcli/kamcli.ini db clirun "describe version"
-kamcli -v --config=kamcli/kamcli.ini db clishow version
-kamcli -v --config=kamcli/kamcli.ini db clishowg subscriber
-
-
-kamcli -v --config=kamcli/kamcli.ini ul showdb
-kamcli -v --config=kamcli/kamcli.ini ul show
-kamcli -v --config=kamcli/kamcli.ini ul rm test
-kamcli -v --config=kamcli/kamcli.ini ul add test sip:[email protected]
-
-kamcli -v --config=kamcli/kamcli.ini stats
-kamcli -v --config=kamcli/kamcli.ini stats usrloc
-kamcli -v --config=kamcli/kamcli.ini stats -s registered_users
-kamcli -v --config=kamcli/kamcli.ini stats usrloc:registered_users
+kamcli -d --config=kamcli/kamcli.ini subscriber passwd test01 test10
+kamcli -d --config=kamcli/kamcli.ini subscriber add -t no test02 test02
+kamcli -d --config=kamcli/kamcli.ini subscriber setattrs test01 rpid +123
+kamcli -d --config=kamcli/kamcli.ini subscriber setattrnull test01 rpid
+
+kamcli -d --config=kamcli/kamcli.ini mi
+kamcli -d --config=kamcli/kamcli.ini mi which
+kamcli -d --config=kamcli/kamcli.ini mi get_statistics all
+
+kamcli -d --config=kamcli/kamcli.ini jsonrpc --help
+kamcli -d --config=kamcli/kamcli.ini jsonrpc core.psx
+kamcli -d --config=kamcli/kamcli.ini jsonrpc system.listMethods
+kamcli -d --config=kamcli/kamcli.ini jsonrpc stats.get_statistics
+kamcli -d --config=kamcli/kamcli.ini jsonrpc stats.get_statistics all
+kamcli -d --config=kamcli/kamcli.ini jsonrpc stats.get_statistics shmem:
+kamcli -d --config=kamcli/kamcli.ini jsonrpc --dry-run system.listMethods
+
+kamcli -d --config=kamcli/kamcli.ini config raw
+kamcli -d --config=kamcli/kamcli.ini config show main db
+kamcli -d --config=kamcli/kamcli.ini --no-default-configs config show main db
+
+kamcli -d --config=kamcli/kamcli.ini db connect
+kamcli -d --config=kamcli/kamcli.ini db show -F table version
+kamcli -d --config=kamcli/kamcli.ini db show -F json subscriber
+kamcli -d --config=kamcli/kamcli.ini db showcreate version
+kamcli -d --config=kamcli/kamcli.ini db showcreate -F table version
+kamcli -d --config=kamcli/kamcli.ini db showcreate -F table -S html version
+kamcli -d --config=kamcli/kamcli.ini db clirun "describe version"
+kamcli -d --config=kamcli/kamcli.ini db clishow version
+kamcli -d --config=kamcli/kamcli.ini db clishowg subscriber
+
+
+kamcli -d --config=kamcli/kamcli.ini ul showdb
+kamcli -d --config=kamcli/kamcli.ini ul show
+kamcli -d --config=kamcli/kamcli.ini ul rm test
+kamcli -d --config=kamcli/kamcli.ini ul add test sip:[email protected]
+
+kamcli -d --config=kamcli/kamcli.ini stats
+kamcli -d --config=kamcli/kamcli.ini stats usrloc
+kamcli -d --config=kamcli/kamcli.ini stats -s registered_users
+kamcli -d --config=kamcli/kamcli.ini stats usrloc:registered_users
 ```
 ```
 
 
 ### License
 ### License

+ 10 - 8
kamcli/cli.py

@@ -64,7 +64,7 @@ COMMAND_ALIASES = {
 class Context(object):
 class Context(object):
 
 
     def __init__(self):
     def __init__(self):
-        self.verbose = False
+        self.debug = False
         self.wdir = os.getcwd()
         self.wdir = os.getcwd()
         self.gconfig_paths = []
         self.gconfig_paths = []
         self._gconfig = None
         self._gconfig = None
@@ -73,12 +73,14 @@ class Context(object):
         """Logs a message to stderr."""
         """Logs a message to stderr."""
         if args:
         if args:
             msg %= args
             msg %= args
-        click.echo(msg, file=sys.stderr)
+        click.echo("(log): " + msg, file=sys.stderr)
 
 
     def vlog(self, msg, *args):
     def vlog(self, msg, *args):
         """Logs a message to stderr only if verbose is enabled."""
         """Logs a message to stderr only if verbose is enabled."""
-        if self.verbose:
-            self.log(msg, *args)
+        if self.debug:
+            if args:
+                msg %= args
+            click.echo("(dbg): " + msg, file=sys.stderr)
 
 
     @property
     @property
     def gconfig(self):
     def gconfig(self):
@@ -132,14 +134,14 @@ def global_read_config(ctx, param, value):
 @click.option('--wdir', type=click.Path(exists=True, file_okay=False,
 @click.option('--wdir', type=click.Path(exists=True, file_okay=False,
                                         resolve_path=True),
                                         resolve_path=True),
               help='Working directory.')
               help='Working directory.')
[email protected]('-v', '--verbose', is_flag=True,
-              help='Enable verbose mode.')
[email protected]('--debug', '-d', is_flag=True,
+              help='Enable debug mode.')
 @click.option('--config', '-c',
 @click.option('--config', '-c',
               default=None, help="Configuration file.")
               default=None, help="Configuration file.")
 @click.option('nodefaultconfigs', '--no-default-configs', is_flag=True,
 @click.option('nodefaultconfigs', '--no-default-configs', is_flag=True,
             help='Skip loading default configuration files.')
             help='Skip loading default configuration files.')
 @pass_context
 @pass_context
-def cli(ctx, verbose, wdir, config, nodefaultconfigs):
+def cli(ctx, debug, wdir, config, nodefaultconfigs):
     """Kamailio command line interface control tool.
     """Kamailio command line interface control tool.
 
 
     \b
     \b
@@ -155,7 +157,7 @@ def cli(ctx, verbose, wdir, config, nodefaultconfigs):
     License: GPLv2
     License: GPLv2
     Copyright: asipto.com
     Copyright: asipto.com
     """
     """
-    ctx.verbose = verbose
+    ctx.debug = debug
     if wdir is not None:
     if wdir is not None:
         ctx.wdir = wdir
         ctx.wdir = wdir
     if not nodefaultconfigs:
     if not nodefaultconfigs:

+ 25 - 24
kamcli/iorpc.py

@@ -95,14 +95,15 @@ def command_ctl_name(alias, ctype):
 # Thread to listen on a reply fifo file
 # Thread to listen on a reply fifo file
 #
 #
 class IOFifoThread (threading.Thread):
 class IOFifoThread (threading.Thread):
-    def __init__(self, rplpath, oformat):
+    def __init__(self, rplpath, oformat, ctx):
         threading.Thread.__init__(self)
         threading.Thread.__init__(self)
         self.rplpath = rplpath
         self.rplpath = rplpath
         self.oformat = oformat
         self.oformat = oformat
         self.stop_signal = False
         self.stop_signal = False
+        self.ctx = ctx
 
 
     def run(self):
     def run(self):
-        print "Starting to wait for reply on: " + self.rplpath
+        self.ctx.vlog("Starting to wait for reply on: " + self.rplpath)
         r = os.open( self.rplpath, os.O_RDONLY|os.O_NONBLOCK )
         r = os.open( self.rplpath, os.O_RDONLY|os.O_NONBLOCK )
         scount = 0
         scount = 0
         rcount = 0
         rcount = 0
@@ -127,7 +128,7 @@ class IOFifoThread (threading.Thread):
                 rdata += rbuf
                 rdata += rbuf
 
 
         if rcount==0 :
         if rcount==0 :
-            print "timeout - nothing read"
+            self.ctx.vlog("timeout - nothing read")
         else:
         else:
             print
             print
             if self.oformat == "json":
             if self.oformat == "json":
@@ -169,13 +170,13 @@ def command_mi_fifo(ctx, dryrun, sndpath, rcvname, oformat, cmd, params):
         if stat.S_ISFIFO(os.stat(rcvpath).st_mode):
         if stat.S_ISFIFO(os.stat(rcvpath).st_mode):
             os.unlink(rcvpath)
             os.unlink(rcvpath)
         else:
         else:
-            print "File with same name as reply fifo exists"
+            ctx.log("File with same name as reply fifo exists")
             sys.exit()
             sys.exit()
 
 
     os.mkfifo(rcvpath, 0666)
     os.mkfifo(rcvpath, 0666)
     os.chmod(rcvpath, 0666)
     os.chmod(rcvpath, 0666)
-    # create new thread to read from reply firo
-    tiofifo = IOFifoThread(rcvpath, oformat)
+    # create new thread to read from reply fifo
+    tiofifo = IOFifoThread(rcvpath, oformat, ctx)
     # start new threadd
     # start new threadd
     tiofifo.start()
     tiofifo.start()
 
 
@@ -190,7 +191,7 @@ def command_mi_fifo(ctx, dryrun, sndpath, rcvname, oformat, cmd, params):
                 waitrun = False
                 waitrun = False
                 break
                 break
         except KeyboardInterrupt:
         except KeyboardInterrupt:
-            print "Ctrl-c received! Sending kill to threads..."
+            ctx.log("Ctrl-c received! Sending kill to threads...")
             tiofifo.stop_signal = True
             tiofifo.stop_signal = True
 
 
     os.unlink(rcvpath)
     os.unlink(rcvpath)
@@ -239,13 +240,13 @@ def command_jsonrpc_fifo(ctx, dryrun, sndpath, rcvname, oformat, cmd, params):
         if stat.S_ISFIFO(os.stat(rcvpath).st_mode):
         if stat.S_ISFIFO(os.stat(rcvpath).st_mode):
             os.unlink(rcvpath)
             os.unlink(rcvpath)
         else:
         else:
-            print "File with same name as reply fifo exists"
+            ctx.log("File with same name as reply fifo exists")
             sys.exit()
             sys.exit()
 
 
     os.mkfifo(rcvpath, 0666)
     os.mkfifo(rcvpath, 0666)
     os.chmod(rcvpath, 0666)
     os.chmod(rcvpath, 0666)
-    # create new thread to read from reply firo
-    tiofifo = IOFifoThread(rcvpath, oformat)
+    # create new thread to read from reply fifo
+    tiofifo = IOFifoThread(rcvpath, oformat, ctx)
     # start new threadd
     # start new threadd
     tiofifo.start()
     tiofifo.start()
 
 
@@ -260,7 +261,7 @@ def command_jsonrpc_fifo(ctx, dryrun, sndpath, rcvname, oformat, cmd, params):
                 waitrun = False
                 waitrun = False
                 break
                 break
         except KeyboardInterrupt:
         except KeyboardInterrupt:
-            print "Ctrl-c received! Sending kill to threads..."
+            ctx.log("Ctrl-c received! Sending kill to threads...")
             tiofifo.stop_signal = True
             tiofifo.stop_signal = True
 
 
     os.unlink(rcvpath)
     os.unlink(rcvpath)
@@ -311,13 +312,13 @@ def command_jsonrpc_socket(ctx, dryrun, srvaddr, rcvaddr, oformat, cmd, params):
     host = None
     host = None
     port = None
     port = None
     if srvaddr.startswith("udp:"):
     if srvaddr.startswith("udp:"):
-        print "udp socket provided: " + srvaddr
+        ctx.vlog("udp socket provided: " + srvaddr)
         sproto, saddr = srvaddr.split(":", 1)
         sproto, saddr = srvaddr.split(":", 1)
         if server.find("[", 0, 2) == -1:
         if server.find("[", 0, 2) == -1:
-            print "IPv4 socket address"
+            ctx.vlog("IPv4 socket address")
             host, port = saddr.split(':')
             host, port = saddr.split(':')
         else:
         else:
-            print "IPv6 socket address"
+            ctx.vlog("IPv6 socket address")
             ehost, port = saddr.rsplit(':', 1)
             ehost, port = saddr.rsplit(':', 1)
             host = ehost.strip('[]')
             host = ehost.strip('[]')
             socktype = "IPv6"
             socktype = "IPv6"
@@ -337,19 +338,19 @@ def command_jsonrpc_socket(ctx, dryrun, srvaddr, rcvaddr, oformat, cmd, params):
             response = data[0]
             response = data[0]
             sockserver = data[1]
             sockserver = data[1]
 
 
-            print 'Server response: ' + response
+            ctx.vlog('Server response: ' + response)
 
 
         except socket.timeout, emsg:
         except socket.timeout, emsg:
-            print 'Timeout receiving response on udp socket'
+            ctx.log('Timeout receiving response on udp socket')
             sys.exit()
             sys.exit()
         except socket.error, emsg:
         except socket.error, emsg:
-            print 'Error udp sock: ' + str(emsg[0]) + ' - ' + emsg[1]
+            ctx.log('Error udp sock: ' + str(emsg[0]) + ' - ' + emsg[1])
             sys.exit()
             sys.exit()
     else:
     else:
-        print "unix socket provided: " + srvaddr
+        ctx.vlog("unix socket provided: " + srvaddr)
         if not os.path.exists( srvaddr ):
         if not os.path.exists( srvaddr ):
-            print "server unix socket file not found"
-            print "be sure kamailio is running and listening on: " + srvaddr
+            ctx.vlog("server unix socket file not found")
+            ctx.vlog("be sure kamailio is running and listening on: " + srvaddr)
             return
             return
         # create datagram udp socket
         # create datagram udp socket
         try:
         try:
@@ -365,21 +366,21 @@ def command_jsonrpc_socket(ctx, dryrun, srvaddr, rcvaddr, oformat, cmd, params):
             sockclient.close()
             sockclient.close()
             os.remove( rcvaddr )
             os.remove( rcvaddr )
 
 
-            print 'Server response: ' + response
+            ctx.vlog('Server response: ' + response)
 
 
         except socket.timeout, emsg:
         except socket.timeout, emsg:
-            print 'Timeout receiving response on unix sock'
+            ctx.log('Timeout receiving response on unix sock')
             sockclient.close()
             sockclient.close()
             os.remove( rcvaddr )
             os.remove( rcvaddr )
             sys.exit()
             sys.exit()
         except socket.error, emsg:
         except socket.error, emsg:
-            print 'Error unix sock: ' + str(emsg[0]) + ' - ' + emsg[1]
+            ctx.log('Error unix sock: ' + str(emsg[0]) + ' - ' + emsg[1])
             sockclient.close()
             sockclient.close()
             os.remove( rcvaddr )
             os.remove( rcvaddr )
             sys.exit()
             sys.exit()
 
 
     if response is None :
     if response is None :
-        print "timeout - nothing read"
+        ctx.vlog("timeout - nothing read")
     else:
     else:
         print
         print
         if oformat == "json":
         if oformat == "json":

+ 1 - 1
kamcli/ioutils.py

@@ -25,7 +25,7 @@ def ioutils_dbres_print(ctx, oformat, ostyle, res):
     else:
     else:
        if oformat == 'table':
        if oformat == 'table':
             if ioutils_tabulate_format is False:
             if ioutils_tabulate_format is False:
-                print "Package tabulate is not installed"
+                ctx.log("Package tabulate is not installed")
                 sys.exit()
                 sys.exit()
 
 
     if ostyle is None:
     if ostyle is None: