[SR-Users] kamcli db sqlite / posgresql error
Daniel-Constantin Mierla
miconda at gmail.com
Thu Apr 22 17:23:42 CEST 2021
OK, thanks for testing and feedback!
Daniel
On 22.04.21 15:46, beer Ll wrote:
> Hi
>
> now it works perfectly.
>
> Many thanks
>
>
>
> On Thu, Apr 22, 2021 at 12:04 PM Daniel-Constantin Mierla
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
> Hello,
>
> I pushed a commit to fix it, seems to work with both tabulate
> 0.8.5 and 0.8.9. Try with latest git repo version.
>
> I haven't tested with older versions of Python than 3.7, though.
>
> Cheers,
> Daniel
>
> On 22.04.21 10:50, Daniel-Constantin Mierla wrote:
>>
>> Hello,
>>
>> it seems to be problem with tabulate 0.8.9 - I upgraded to it and
>> I can reproduce. With tabulate 0.8.5 worked fine. I will look
>> into it.
>>
>> Cheers,
>> Daniel
>>
>> On 22.04.21 10:25, beer Ll wrote:
>>> Hi
>>>
>>> my kamcli.ini is
>>>
>>> (venv) kamailio-BT:/usr/src/kamclienv # cat kamcli.ini.sqlite
>>> ### main options
>>> [main]
>>> ; SIP domain to be used when an AoR has no domain
>>> domain=sip.test.dev <http://sip.test.dev>
>>>
>>>
>>> ### database connectivity - URLs are used for SQL Alchemy
>>> [db]
>>> type=sqlite
>>> driver=pysqlite
>>> dbpath=/etc/kamailio/kamailio.db
>>> ...
>>> rwurl=%(type)s+%(driver)s:///%(dbpath)s
>>> rourl=%(type)s+%(driver)s:///%(dbpath)s
>>> adminurl=%(type)s+%(driver)s:///%(dbpath)s
>>>
>>> scriptsdirectory=/usr/local/share/kamailio/db_sqlite
>>> ; outformat - the format to print database result
>>> ; - can be: table, json, yaml, dict or raw
>>> outformat=table
>>>
>>> ; outstyle - the style to print database result with tabulate
>>> package
>>> ; - default: grid
>>> # outstyle=grid
>>> ....
>>>
>>>
>>>
>>> (venv) kamailio-BT:/usr/src/kamclienv # kamcli -c
>>> kamcli.ini.sqlite subscriber show
>>> Traceback (most recent call last):
>>> File "/usr/src/kamclienv/venv/bin/kamcli", line 33, in <module>
>>> sys.exit(load_entry_point('kamcli', 'console_scripts',
>>> 'kamcli')())
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 829, in __call__
>>> return self.main(*args, **kwargs)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 782, in main
>>> rv = self.invoke(ctx)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 1259, in invoke
>>> return _process_result(sub_ctx.command.invoke(sub_ctx))
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 1259, in invoke
>>> return _process_result(sub_ctx.command.invoke(sub_ctx))
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 1066, in invoke
>>> return ctx.invoke(self.callback, **ctx.params)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 610, in invoke
>>> return callback(*args, **kwargs)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
>>> line 73, in new_func
>>> return ctx.invoke(f, obj, *args, **kwargs)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>> line 610, in invoke
>>> return callback(*args, **kwargs)
>>> File
>>> "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
>>> line 235, in subscriber_show
>>> ioutils_dbres_print(ctx, oformat, ostyle, res)
>>> File "/usr/src/kamclienv/kamcli/kamcli/ioutils.py", line 70,
>>> in ioutils_dbres_print
>>> gstring = tabulate(allrows, headers=res.keys(), tablefmt=ostyle)
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
>>> line 1529, in tabulate
>>> tabular_data, headers, showindex=showindex
>>> File
>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
>>> line 1162, in _normalize_tabular_data
>>> "headers for a list of dicts is not a dict or a keyword"
>>> ValueError: headers for a list of dicts is not a dict or a keyword
>>>
>>>
>>> On Thu, Apr 22, 2021 at 9:41 AM Daniel-Constantin Mierla
>>> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>>
>>> Hello,
>>>
>>> The outstyle configuration option is for kamcli, inside
>>> kamcli.ini file.
>>>
>>> I just tested with sqlite and empty subscriber table:
>>>
>>> # kamcli -c ../kamcli-sqlite.ini subscriber show
>>>
>>> +------+------------+----------+------------+-------+--------+
>>> | id | username | domain | password | ha1 | ha1b |
>>> +======+============+==========+============+=======+========+
>>> +------+------------+----------+------------+-------+--------+
>>>
>>> Added a user:
>>>
>>> kamcli -c ../kamcli-sqlite.ini subscriber add test password
>>>
>>> Then listed:
>>>
>>> kamcli -c ../kamcli-sqlite.ini subscriber show
>>>
>>> +------+------------+----------+------------+----------------------------------+----------------------------------+
>>> | id | username | domain | password |
>>> ha1 |
>>> ha1b |
>>> +======+============+==========+============+==================================+==================================+
>>> | 1 | test | test.com <http://test.com> |
>>> password | 30e725cfc53ca50516be2e230edf53da |
>>> a04fcbbe67702c59dc46fe4779183fe5 |
>>> +------+------------+----------+------------+----------------------------------+----------------------------------+
>>>
>>>
>>> I have tabulate 0.8.5 running on Debian 10, kamcli in
>>> virtual environment.
>>>
>>> Cheers,
>>> Daniel
>>>
>>> On 22.04.21 09:25, beer Ll wrote:
>>>> Hi Daniel
>>>>
>>>>
>>>> On Thu, Apr 22, 2021 at 8:57 AM Daniel-Constantin Mierla
>>>> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>>>
>>>> Hello,
>>>>
>>>> at least some of the new errors are not the same, they
>>>> are related to unique key conflict, see the bottom of
>>>> the traces:
>>>>
>>>> sqlite3.IntegrityError: UNIQUE constraint failed:
>>>> subscriber.username, subscriber.domain
>>>>
>>>> sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError)
>>>> UNIQUE constraint failed: subscriber.username,
>>>> subscriber.domain
>>>> [SQL: insert into subscriber (username, domain,
>>>> password, ha1, ha1b) values ('test', 'sip.test.dev
>>>> <http://sip.test.dev>', 'passwordtest',
>>>> '96a1efd95bcd6e8e573d07ebdacab623',
>>>> '025f1dc363fa8c1ce1d7f2069d94ed0f')]
>>>>
>>>> Regarding the subscriber show command, do you have any
>>>> outstyle configuration option set?
>>>>
>>>> What is the version of your tabulate package?
>>>>
>>>>
>>>> sqlite> .show
>>>> echo: off
>>>> eqp: off
>>>> explain: auto
>>>> headers: off
>>>> mode: list
>>>> nullvalue: ""
>>>> output: stdout
>>>> colseparator: "|"
>>>> rowseparator: "\n"
>>>> stats: off
>>>> width:
>>>> filename: /etc/kamailio/kamailio.db
>>>>
>>>> (venv) kamailio-BT:/usr/src/kamclienv # pip3 show tabulate
>>>> Name: tabulate
>>>> Version: 0.8.9
>>>> Summary: Pretty-print tabular data
>>>> Home-page: https://github.com/astanin/python-tabulate
>>>> <https://github.com/astanin/python-tabulate>
>>>> Author: Sergey Astanin
>>>> Author-email: s.astanin at gmail.com <mailto:s.astanin at gmail.com>
>>>> License: MIT
>>>> Location: /usr/src/kamclienv/venv/lib/python3.7/site-packages
>>>> Requires:
>>>> Required-by: kamcli
>>>>
>>>>
>>>> regards
>>>>
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>> On 21.04.21 23:24, beer Ll wrote:
>>>>> Hi Daniel
>>>>> many thanks for yours commits in git kamcli.
>>>>>
>>>>> I try the new version but my errors are the same
>>>>>
>>>>> (venv) kamailio-BT:/usr/src/kamclienv/kamcli # kamcli
>>>>> -c /etc/kamcli/kamcli.ini.sqlite subscriber show
>>>>> Traceback (most recent call last):
>>>>> File "/usr/src/kamclienv/venv/bin/kamcli", line 33,
>>>>> in <module>
>>>>> sys.exit(load_entry_point('kamcli',
>>>>> 'console_scripts', 'kamcli')())
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 829, in __call__
>>>>> return self.main(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 782, in main
>>>>> rv = self.invoke(ctx)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1259, in invoke
>>>>> return
>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1259, in invoke
>>>>> return
>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1066, in invoke
>>>>> return ctx.invoke(self.callback, **ctx.params)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 610, in invoke
>>>>> return callback(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
>>>>> line 73, in new_func
>>>>> return ctx.invoke(f, obj, *args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 610, in invoke
>>>>> return callback(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
>>>>> line 235, in subscriber_show
>>>>> ioutils_dbres_print(ctx, oformat, ostyle, res)
>>>>> File "/usr/src/kamclienv/kamcli/kamcli/ioutils.py",
>>>>> line 70, in ioutils_dbres_print
>>>>> gstring = tabulate(allrows, headers=res.keys(),
>>>>> tablefmt=ostyle)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
>>>>> line 1529, in tabulate
>>>>> tabular_data, headers, showindex=showindex
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
>>>>> line 1162, in _normalize_tabular_data
>>>>> "headers for a list of dicts is not a dict or a
>>>>> keyword"
>>>>> ValueError: headers for a list of dicts is not a dict
>>>>> or a keyword
>>>>> (venv) kamailio-BT:/usr/src/kamclienv/kamcli # kamcli
>>>>> -c /etc/kamcli/kamcli.ini.sqlite subscriber add test
>>>>> passwordtest
>>>>> Traceback (most recent call last):
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1706, in _execute_context
>>>>> cursor, statement, parameters, context
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
>>>>> line 716, in do_execute
>>>>> cursor.execute(statement, parameters)
>>>>> sqlite3.IntegrityError: UNIQUE constraint failed:
>>>>> subscriber.username, subscriber.domain
>>>>>
>>>>> The above exception was the direct cause of the
>>>>> following exception:
>>>>>
>>>>> Traceback (most recent call last):
>>>>> File "/usr/src/kamclienv/venv/bin/kamcli", line 33,
>>>>> in <module>
>>>>> sys.exit(load_entry_point('kamcli',
>>>>> 'console_scripts', 'kamcli')())
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 829, in __call__
>>>>> return self.main(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 782, in main
>>>>> rv = self.invoke(ctx)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1259, in invoke
>>>>> return
>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1259, in invoke
>>>>> return
>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 1066, in invoke
>>>>> return ctx.invoke(self.callback, **ctx.params)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 610, in invoke
>>>>> return callback(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
>>>>> line 73, in new_func
>>>>> return ctx.invoke(f, obj, *args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
>>>>> line 610, in invoke
>>>>> return callback(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
>>>>> line 69, in subscriber_add
>>>>> ha1b,
>>>>> File "<string>", line 2, in execute
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/util/deprecations.py",
>>>>> line 390, in warned
>>>>> return fn(*args, **kwargs)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 3037, in execute
>>>>> return connection.execute(statement, *multiparams,
>>>>> **params)
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1190, in execute
>>>>> future=False,
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1491, in _exec_driver_sql
>>>>> distilled_parameters,
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1749, in _execute_context
>>>>> e, statement, parameters, cursor, context
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1930, in _handle_dbapi_exception
>>>>> sqlalchemy_exception, with_traceback=exc_info[2],
>>>>> from_=e
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py",
>>>>> line 211, in raise_
>>>>> raise exception
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
>>>>> line 1706, in _execute_context
>>>>> cursor, statement, parameters, context
>>>>> File
>>>>> "/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
>>>>> line 716, in do_execute
>>>>> cursor.execute(statement, parameters)
>>>>> sqlalchemy.exc.IntegrityError:
>>>>> (sqlite3.IntegrityError) UNIQUE constraint failed:
>>>>> subscriber.username, subscriber.domain
>>>>> [SQL: insert into subscriber (username, domain,
>>>>> password, ha1, ha1b) values ('test', 'sip.test.dev
>>>>> <http://sip.test.dev>', 'passwordtest',
>>>>> '96a1efd95bcd6e8e573d07ebdacab623',
>>>>> '025f1dc363fa8c1ce1d7f2069d94ed0f')]
>>>>> (Background on this error at:
>>>>> http://sqlalche.me/e/14/gkpj
>>>>> <http://sqlalche.me/e/14/gkpj>)
>>>>>
>>>>> best regards
>>>>>
>>>>> On Wed, Apr 21, 2021 at 3:10 PM Daniel-Constantin
>>>>> Mierla <miconda at gmail.com <mailto:miconda at gmail.com>>
>>>>> wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> On 18.04.21 22:56, beer Ll wrote:
>>>>>> Hi ,
>>>>>>
>>>>>> I have a server test with
>>>>>>
>>>>>> Debian Buster 10.9
>>>>>> kamailio 5.4.5
>>>>>> kamcli 2.0.0 (similar result with 3.0.0)
>>>>>>
>>>>>> I'm not able to use kamcli
>>>>>> with sqlite : insert and select doesn't work
>>>>>> with pgsql : insert works , select of empty
>>>>>> table works , select table with entry doesn't work
>>>>>>
>>>>>>
>>>>>> TEST WITH SQLITE
>>>>>> root at kamailio-BT:~# kamcli -c
>>>>>> /etc/kamcli/kamcli.ini.sqlite subscriber add test
>>>>>> password
>>>>>> Traceback (most recent call last):
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1706, in _execute_context
>>>>>> cursor, statement, parameters, context
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py",
>>>>>> line 716, in do_execute
>>>>>> cursor.execute(statement, parameters)
>>>>>> sqlite3.OperationalError: near "%": syntax error
>>>>>>
>>>>>> The above exception was the direct cause of the
>>>>>> following exception:
>>>>>>
>>>>>> Traceback (most recent call last):
>>>>>> File "/usr/bin/kamcli", line 11, in <module>
>>>>>> load_entry_point('kamcli==2.0.0',
>>>>>> 'console_scripts', 'kamcli')()
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 829, in __call__
>>>>>> return self.main(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 782, in main
>>>>>> rv = self.invoke(ctx)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1066, in invoke
>>>>>> return ctx.invoke(self.callback, **ctx.params)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
>>>>>> line 73, in new_func
>>>>>> return ctx.invoke(f, obj, *args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
>>>>>> line 43, in subscriber_add
>>>>>> e.execute('insert into subscriber (username,
>>>>>> domain, password, ha1, ha1b) values (%s, %s, %s,
>>>>>> %s, %s)', udata['username'], udata['domain'],
>>>>>> password, ha1, ha1b)
>>>>>> File "<string>", line 2, in execute
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/deprecations.py",
>>>>>> line 390, in warned
>>>>>> return fn(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 3037, in execute
>>>>>> return connection.execute(statement,
>>>>>> *multiparams, **params)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1190, in execute
>>>>>> future=False,
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1491, in _exec_driver_sql
>>>>>> distilled_parameters,
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1749, in _execute_context
>>>>>> e, statement, parameters, cursor, context
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1930, in _handle_dbapi_exception
>>>>>> sqlalchemy_exception,
>>>>>> with_traceback=exc_info[2], from_=e
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/compat.py",
>>>>>> line 211, in raise_
>>>>>> raise exception
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
>>>>>> line 1706, in _execute_context
>>>>>> cursor, statement, parameters, context
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py",
>>>>>> line 716, in do_execute
>>>>>> cursor.execute(statement, parameters)
>>>>>> sqlalchemy.exc.OperationalError:
>>>>>> (sqlite3.OperationalError) near "%": syntax error
>>>>>> [SQL: insert into subscriber (username, domain,
>>>>>> password, ha1, ha1b) values (%s, %s, %s, %s, %s)]
>>>>>> [parameters: ('test', 'sip.test.dev
>>>>>> <http://sip.test.dev>', 'password',
>>>>>> '4380ea9069e888b5fc92996495a0f481',
>>>>>> '3a36aeb0df7f4504cc5d9b97dab540e5')]
>>>>>> (Background on this error at:
>>>>>> http://sqlalche.me/e/14/e3q8
>>>>>> <http://sqlalche.me/e/14/e3q8>)
>>>>>>
>>>>>> root at kamailio-BT:~# kamctl add test password
>>>>>> -e sqlite_query: /usr/bin/sqlite3
>>>>>> /etc/kamailio/kamailio.db insert into subscriber
>>>>>> (username, domain,ha1,ha1b,password) values
>>>>>> ('test','sip.test.dev
>>>>>> <http://sip.test.dev>','4380ea9069e888b5fc92996495a0f481','3a36aeb0df7f4504cc5d9b97dab540e5','password');
>>>>>> -e new user 'test' added
>>>>>>
>>>>>> root at kamailio-BT:~# kamcli -c
>>>>>> /etc/kamcli/kamcli.ini.sqlite subscriber show
>>>>>> Traceback (most recent call last):
>>>>>> File "/usr/bin/kamcli", line 11, in <module>
>>>>>> load_entry_point('kamcli==2.0.0',
>>>>>> 'console_scripts', 'kamcli')()
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 829, in __call__
>>>>>> return self.main(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 782, in main
>>>>>> rv = self.invoke(ctx)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1066, in invoke
>>>>>> return ctx.invoke(self.callback, **ctx.params)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
>>>>>> line 73, in new_func
>>>>>> return ctx.invoke(f, obj, *args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
>>>>>> line 118, in subscriber_show
>>>>>> ioutils_dbres_print(ctx, oformat, ostyle, res)
>>>>>> File
>>>>>> "/usr/lib/python3/dist-packages/kamcli/ioutils.py",
>>>>>> line 45, in ioutils_dbres_print
>>>>>> gstring = tabulate(allrows,
>>>>>> headers=res.keys(), tablefmt=ostyle)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/tabulate.py",
>>>>>> line 1529, in tabulate
>>>>>> tabular_data, headers, showindex=showindex
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/tabulate.py",
>>>>>> line 1162, in _normalize_tabular_data
>>>>>> "headers for a list of dicts is not a dict or
>>>>>> a keyword"
>>>>>> ValueError: headers for a list of dicts is not a
>>>>>> dict or a keyword
>>>>>>
>>>>>>
>>>>>> TEST WITH PGSQL
>>>>>> root at kamailio-BT:~# kamcli -c
>>>>>> /etc/kamcli/kamcli.ini.pgsql subscriber show
>>>>>> +------+------------+----------+------------+-------+--------+
>>>>>> | id | username | domain | password | ha1
>>>>>> | ha1b |
>>>>>> +======+============+==========+============+=======+========+
>>>>>> +------+------------+----------+------------+-------+--------+
>>>>>> root at kamailio-BT:~# kamcli -c
>>>>>> /etc/kamcli/kamcli.ini.pgsql subscriber add test
>>>>>> password
>>>>>> root at kamailio-BT:~# kamcli -c
>>>>>> /etc/kamcli/kamcli.ini.pgsql subscriber show
>>>>>> Traceback (most recent call last):
>>>>>> File "/usr/bin/kamcli", line 11, in <module>
>>>>>> load_entry_point('kamcli==2.0.0',
>>>>>> 'console_scripts', 'kamcli')()
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 829, in __call__
>>>>>> return self.main(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 782, in main
>>>>>> rv = self.invoke(ctx)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1259, in invoke
>>>>>> return
>>>>>> _process_result(sub_ctx.command.invoke(sub_ctx))
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 1066, in invoke
>>>>>> return ctx.invoke(self.callback, **ctx.params)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
>>>>>> line 73, in new_func
>>>>>> return ctx.invoke(f, obj, *args, **kwargs)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/click/core.py",
>>>>>> line 610, in invoke
>>>>>> return callback(*args, **kwargs)
>>>>>> File
>>>>>> "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
>>>>>> line 118, in subscriber_show
>>>>>> ioutils_dbres_print(ctx, oformat, ostyle, res)
>>>>>> File
>>>>>> "/usr/lib/python3/dist-packages/kamcli/ioutils.py",
>>>>>> line 45, in ioutils_dbres_print
>>>>>> gstring = tabulate(allrows,
>>>>>> headers=res.keys(), tablefmt=ostyle)
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/tabulate.py",
>>>>>> line 1529, in tabulate
>>>>>> tabular_data, headers, showindex=showindex
>>>>>> File
>>>>>> "/usr/local/lib/python3.7/dist-packages/tabulate.py",
>>>>>> line 1162, in _normalize_tabular_data
>>>>>> "headers for a list of dicts is not a dict or
>>>>>> a keyword"
>>>>>> ValueError: headers for a list of dicts is not a
>>>>>> dict or a keyword
>>>>>>
>>>>>> root at kamailio-BT:~# kamctl show test
>>>>>> 1|test|sip.test.dev
>>>>>> <http://sip.test.dev>|password|4380ea9069e888b5fc92996495a0f481|3a36aeb0df7f4504cc5d9b97dab540e5
>>>>>
>>>>> thanks for reporting!
>>>>>
>>>>> I could reproduce the sqlite problems, they seemed
>>>>> to be related to the sql driver for sqlalchemy
>>>>> that was not supporting variadic number of
>>>>> parameters to the sql query execution function. I
>>>>> replaced with string formatting and now seems to
>>>>> work. Try with latest git version and report back
>>>>> if there are still issues.
>>>>>
>>>>> The one for postgres I couldn't reproduce, but it
>>>>> was after a commit related to output style default
>>>>> value. Although it didn't seem related, it worked
>>>>> what I tried for postgres. Again, test now with
>>>>> latest git version and if there is still a
>>>>> problem, provide updated traces.
>>>>>
>>>>> Cheers,
>>>>> Daniel
>>>>>
>>>>> --
>>>>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>>>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>>>> Kamailio Advanced Training - Online
>>>>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>>> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Kamailio (SER) - Users Mailing List
>>>>> sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>>
>>>>
>>>> --
>>>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>>> Kamailio Advanced Training - Online
>>>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>>
>>> --
>>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>> Kamailio Advanced Training - Online
>>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>
>> --
>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>> Kamailio Advanced Training - Online
>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>
> --
> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
> Kamailio Advanced Training - Online
> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>
--
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210422/59965009/attachment.htm>
More information about the sr-users
mailing list