OpenSIPS / opensips-cli

OpenSIPS CLI tool - an interactive command line tool that can be used to control and monitor OpenSIPS servers.
GNU General Public License v3.0
85 stars 48 forks source link

Migrate Script fails #50

Closed gtanetwork closed 4 years ago

gtanetwork commented 4 years ago

Output log: opensips-cli -d -x database migrate opensips_24 opensips DEBUG: using config file /etc/opensips/opensips-cli.cfg DEBUG: Loaded module 'database' DEBUG: Loaded module 'diagnose' DEBUG: Loaded module 'instance' DEBUG: fifo file /tmp/opensips_fifo does not exist! DEBUG: Skipping module 'mi' - excluded on purpose DEBUG: Loaded module 'tls' DEBUG: Loaded module 'trace' DEBUG: Skipping module 'trap' - excluded on purpose DEBUG: Loaded module 'user' DEBUG: running in non-interactive mode '['database', 'migrate', 'opensips_24', 'opensips']' DEBUG: running command 'migrate' '['opensips_24', 'opensips']' DEBUG: admin DB URL: 'mysql://root:test@localhost' DEBUG: connecting to mysql://root:test@localhost ERROR: DEBUG_INSIDE SET_URL url: mysql://root:test@localhost ERROR: DEBUG_INSIDE SET_URL db: opensips_24 DEBUG: check database URL 'mysql://root:test@localhost/opensips_24' DEBUG: DB 'opensips_24' exists Creating database opensips... ERROR: D url: mysql://root:test@localhost ERROR: DEBUG_INSIDE SET_URL db: opensips DEBUG: check database URL 'mysql://root:test@localhost/opensips' DEBUG: DB does not exist DEBUG: Create Database 'opensips' for dialect 'mysql' ... DEBUG: success ERROR: DEBUG_INSIDE SET_URL url: <opensipscli.db.osdb object at 0x7f9ab08d8550> ERROR: DEBUG_INSIDE SET_URL db: opensips Traceback (most recent call last): File "/usr/local/bin/opensips-cli", line 4, in import('pkg_resources').run_script('opensipscli==0.1.0', 'opensips-cli') File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 654, in run_script self.require(requires)[0].run_script(script_name, ns) File "/usr/lib/python3.6/site-packages/pkg_resources/init.py", line 1434, in run_script exec(code, namespace, namespace) File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/EGG-INFO/scripts/opensips-cli", line 9, in run_console() File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/EGG-INFO/scripts/opensips-cli", line 6, in run_console main.main() File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/main.py", line 78, in main sys.exit(shell.cmdloop()) File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/cli.py", line 235, in cmdloop ret = self.run_command(self.command[0], command, params) File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/cli.py", line 341, in run_command return mod[0].invoke(cmd, params) File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/module.py", line 36, in invoke return f(params) File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/modules/database.py", line 520, in do_migrate if self.create_tables(new_db, db, admin_url) < 0: File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/modules/database.py", line 340, in create_tables db_url = osdb.set_url_db(db_url, 'opensips') File "/usr/local/lib/python3.6/site-packages/opensipscli-0.1.0-py3.6.egg/opensipscli/db.py", line 790, in set_url_db at_idx = url.find('@') -============================== cat /etc/opensips/opensips-cli.cfg [default] log_level: DEBUG prompt_name: opensips-cli prompt_intro: Alex Welcome to OpenSIPS Command Line Interface! prompt_emptyline_repeat_cmd: False history_file: ~/.opensips-cli.history history_file_size: 1000 output_type: pretty-print communication_type: fifo fifo_file: /tmp/opensips_fifo database_admin_url: mysql://root:test@localhost database_url: mysql://opensips:opensipsrw@localhost database_modules: all database_force_drop: True

======================= Looks like osdb.set_url_db is passed a string most of the time, however in migrate script, it's passed as a object, hence find method starts conflicting...

liviuchircu commented 4 years ago

thanks for the report, @gtanetwork ! This was most likely caused by the recent refactoring, let me fix that function call...

liviuchircu commented 4 years ago

Should be fixed now. Also, make sure to use database migrate only for a 2.4 -> 3.0 migration. I will soon add support for the 3.0 -> 3.1 migration as well.