From 7b749f8b5f4e01852a25a7cd0a65a9c00476b60d Mon Sep 17 00:00:00 2001 From: spag Date: Wed, 9 Jan 2013 11:06:49 +0100 Subject: read database configuration from odbc.ini --- misc/freeswitch/scripts/common/database.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'misc/freeswitch/scripts/common/database.lua') diff --git a/misc/freeswitch/scripts/common/database.lua b/misc/freeswitch/scripts/common/database.lua index 3692f84..22a68fb 100644 --- a/misc/freeswitch/scripts/common/database.lua +++ b/misc/freeswitch/scripts/common/database.lua @@ -24,13 +24,13 @@ function Database.connect(self, database_name, user_name, password, host_name) local database_driver = nil; if not (database_name and user_name and password) then require 'common.configuration_file' - local config = common.configuration_file.get('/opt/freeswitch/scripts/ini/database.ini'); + local config = common.configuration_file.get('/var/lib/freeswitch/.odbc.ini'); if config then - database_driver = config[true].driver - database_name = config[database_driver].database - user_name = config[database_driver].user - password = config[database_driver].password - host_name = config[database_driver].host + database_driver = config.gemeinschaft.driver + database_name = config.gemeinschaft.DATABASE + user_name = config.gemeinschaft.USER + password = config.gemeinschaft.PASSWORD + host_name = config.gemeinschaft.HOST end end -- cgit v1.2.3 From 171a2317964f54a9b743eaa77b02d1119bee070c Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 10 Jan 2013 12:27:17 +0100 Subject: old database class removed --- misc/freeswitch/scripts/common/database.lua | 151 ---------------------------- 1 file changed, 151 deletions(-) delete mode 100644 misc/freeswitch/scripts/common/database.lua (limited to 'misc/freeswitch/scripts/common/database.lua') diff --git a/misc/freeswitch/scripts/common/database.lua b/misc/freeswitch/scripts/common/database.lua deleted file mode 100644 index 22a68fb..0000000 --- a/misc/freeswitch/scripts/common/database.lua +++ /dev/null @@ -1,151 +0,0 @@ --- Gemeinschaft 5 module: database class --- (c) AMOOMA GmbH 2012 --- - -module(...,package.seeall) - -Database = {} - -DATABASE_DRIVER = 'mysql' - -function Database.new(self, arg) - arg = arg or {} - object = arg.object or {} - setmetatable(object, self); - self.__index = self; - self.class = 'database'; - self.log = arg.log; - self.conn = nil; - return object; -end - - -function Database.connect(self, database_name, user_name, password, host_name) - local database_driver = nil; - if not (database_name and user_name and password) then - require 'common.configuration_file' - local config = common.configuration_file.get('/var/lib/freeswitch/.odbc.ini'); - if config then - database_driver = config.gemeinschaft.driver - database_name = config.gemeinschaft.DATABASE - user_name = config.gemeinschaft.USER - password = config.gemeinschaft.PASSWORD - host_name = config.gemeinschaft.HOST - end - end - - host_name = host_name or 'localhost'; - database_driver = database_driver or DATABASE_DRIVER; - - if database_driver == 'mysql' then - require "luasql.mysql" - self.env = luasql.mysql(); - elseif database_driver == 'odbc' then - require "luasql.odbc" - self.env = luasql.odbc(); - end - - self.conn = self.env:connect(database_name, user_name, password, host_name); - self.conn_id = tostring(self.conn); - self.database_name = database_name; - self.user_name = user_name; - self.password = password; - self.host_name = host_name; - - -- self.log:debug('DATABASE_CONNECT - connection: ', self.conn_id, ', environment: ', self.env); - - return self; -end - - -function Database.reconnect(self) - self.conn = self.env:connect(self.database_name, self.user_name, self.password, self.host_name); - self.conn_id = tostring(self.conn); - - if self.log then - self.log:info('DATABASE_RECONNECT - connection: ', self.conn_id, ', environment: ', self.env); - end - - return self; -end - - -function Database.connected(self) - return self.conn; -end - - -function Database.query(self, sql_query, call_function) - local cursor = self.conn:execute(sql_query); - - if cursor == nil and not self.conn:execute('SELECT @@VERSION') then - if self.log then - self.log:error('DATABASE_QUERY - lost connection: ', self.conn_id, ', environment: ', self.env, ', query: ', sql_query); - end - self:reconnect(); - - if call_function then - cursor = self.conn:execute(sql_query); - self.log:notice('DATABASE_QUERY - retry: ', sql_query); - end - end - - if cursor and call_function then - repeat - row = cursor:fetch({}, 'a'); - if row then - call_function(row); - end - until not row; - end - - if type(cursor) == 'userdata' then - cursor:close(); - end - - return cursor; -end - - -function Database.query_return_value(self, sql_query) - local cursor = self.conn:execute(sql_query); - - if cursor == nil and not self.conn:execute('SELECT @@VERSION') then - if self.log then - self.log:error('DATABASE_QUERY - lost connection: ', self.conn_id, ', environment: ', self.env, ', query: ', sql_query); - end - self:reconnect(); - cursor = self.conn:execute(sql_query); - self.log:notice('DATABASE_QUERY - retry: ', sql_query); - end - - if type(cursor) == 'userdata' then - local row = cursor:fetch({}, 'n'); - cursor:close(); - - if not row then - return row; - else - return row[1]; - end - end - - return cursor; -end - - -function Database.last_insert_id(self) - return self:query_return_value('SELECT LAST_INSERT_ID()'); -end - - -function Database.release(self, sql_query, call_function) - if self.conn then - self.conn:close(); - end - if self.env then - self.env:close(); - end - - -- self.log:debug('DATABASE_RELEASE - connection: ', self.conn_id, ', status: ', self.env, ', ', self.conn); -end -- cgit v1.2.3 From 7268fbc3b37ae35993a7379cc66221c5e24c2016 Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 10 Jan 2013 12:28:06 +0100 Subject: freeswitch odbc database class added --- misc/freeswitch/scripts/common/database.lua | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 misc/freeswitch/scripts/common/database.lua (limited to 'misc/freeswitch/scripts/common/database.lua') diff --git a/misc/freeswitch/scripts/common/database.lua b/misc/freeswitch/scripts/common/database.lua new file mode 100644 index 0000000..1f39135 --- /dev/null +++ b/misc/freeswitch/scripts/common/database.lua @@ -0,0 +1,78 @@ +-- Gemeinschaft 5 module: database class +-- (c) AMOOMA GmbH 2013 +-- + +module(...,package.seeall) + +Database = {} + +DATABASE_DSN = 'gemeinschaft'; + +function Database.new(self, arg) + arg = arg or {} + object = arg.object or {} + setmetatable(object, self); + self.__index = self; + self.class = 'database'; + self.log = arg.log; + self.conn = nil; + return object; +end + + +function Database.connect(self) + self.dsn = DATABASE_DSN; + + require 'common.configuration_file' + local dsn = common.configuration_file.get('/var/lib/freeswitch/.odbc.ini', self.dsn); + + self.database_name = dsn.DATABASE; + self.user_name = dsn.USER; + self.password = dsn.PASSWORD; + self.host_name = dsn.HOST; + + self.conn = freeswitch.Dbh(self.dsn, self.user_name, self.password); + self.conn_id = tostring(self.conn); + + return self; +end + + +function Database.connected(self) + return self.conn:connected(); +end + + +function Database.query(self, sql_query, call_function) + if call_function then + return self.conn:query(sql_query, call_function); + else + return self.conn:query(sql_query); + end +end + + +function Database.query_return_value(self, sql_query) + local result = nil; + + self.conn:query(sql_query, function(row) + for key, value in pairs(row) do + result = value; + return result; + end + end) + + return result; +end + + +function Database.last_insert_id(self) + return self:query_return_value('SELECT LAST_INSERT_ID()'); +end + + +function Database.release(self) + if self.conn then + self.conn:release(); + end +end -- cgit v1.2.3