hlr: Use python module instead of cmdline to modify sqlite db
Change-Id: I94a294c37f361a666064094455c9a1e1399fdfc7
diff --git a/check_dependencies.py b/check_dependencies.py
index 2c9e5c3..d9b857c 100755
--- a/check_dependencies.py
+++ b/check_dependencies.py
@@ -23,5 +23,6 @@
import traceback
import yaml
import pydbus
+import sqlite3
print('dependencies ok')
diff --git a/src/osmo_gsm_tester/osmo_hlr.py b/src/osmo_gsm_tester/osmo_hlr.py
index fbcd43e..16548ad 100644
--- a/src/osmo_gsm_tester/osmo_hlr.py
+++ b/src/osmo_gsm_tester/osmo_hlr.py
@@ -20,6 +20,7 @@
import os
import re
import pprint
+import sqlite3
from . import log, util, config, template, process, osmo_ctrl, pcap_recorder
@@ -107,16 +108,6 @@
log.ctx(proc)
raise log.Error('Exited in error')
- def run_sql_file(self, name, sql_file):
- self.run_local(name, ('/bin/sh', '-c', 'sqlite3 %r < %r' % (self.db_file, sql_file)))
-
- def run_sql(self, name, sql):
- self.dbg('SQL:', repr(sql))
- sql_file = self.run_dir.new_file(name + '.sql')
- with open(sql_file, 'w') as f:
- f.write(sql)
- self.run_sql_file(name, sql_file)
-
def subscriber_add(self, modem, msisdn=None, algo=None):
if msisdn is None:
msisdn = self.suite_run.resources_pool.next_msisdn(modem)
@@ -126,12 +117,16 @@
if not algo:
algo = self.AUTH_ALGO_COMP128v1 if modem.ki() else self.AUTH_ALGO_NONE
self.log('Add subscriber', msisdn=msisdn, imsi=modem.imsi(), subscriber_id=subscriber_id, algo=algo)
- self.run_sql('add_subscriber',
- 'insert into subscriber (id, imsi, msisdn) values (%r, %r, %r);'
- % (subscriber_id, modem.imsi(), modem.msisdn))
- self.run_sql('add_subscriber',
- 'insert into auc_2g (subscriber_id, algo_id_2g, ki) values (%r, %r, %r);'
- % (subscriber_id, algo, modem.ki()))
+ conn = sqlite3.connect(self.db_file)
+ try:
+ c = conn.cursor()
+ c.execute('insert into subscriber (id, imsi, msisdn) values (?, ?, ?)',
+ (subscriber_id, modem.imsi(), modem.msisdn,))
+ c.execute('insert into auc_2g (subscriber_id, algo_id_2g, ki) values (?, ?, ?)',
+ (subscriber_id, algo, modem.ki(),))
+ conn.commit()
+ finally:
+ conn.close()
return subscriber_id
def conf_for_msc(self):