def CheckDownloadMonitorTable(self): log.info('CheckDownloadMonitorTable start...') # Check DSM Version ver = CommonUtil.GetDSMMajorVersion() if ver != "5": log.info("DSM Major Version : %s, Create Table pass", ver) return log.info("DSM Major Version : %s, DownloadStation Table Check", ver) ret = True if self.curs == None: ret = self.db_connect() if ret == True: table_query = "select count(*) from information_schema.tables where table_name = 'btdownload_event';" proc_query = "select count(*) from pg_proc where proname = 'process_btdownload_event';" trigger_query = "select count(*) from pg_trigger where tgname = 'btdownload_event';" try: # Check Table Exist self.curs.execute(table_query) rowitem = self.curs.fetchone() if rowitem[0] == 0: log.info('monitor table is not exist.. try create table') self.CreateMonitorTable() self.bot.sendMessage(self.chat_id, 'DS Download Monitor Table 등록') # Check Procedure Exist self.curs.execute(proc_query) rowitem = self.curs.fetchone() if rowitem[0] == 0: log.info( 'monitor procedure is not exist.. try create procedure' ) self.CreateMonitorProcedure() self.bot.sendMessage(self.chat_id, 'DS Download Monitor Procedure 등록') # Check Trigger Exist self.curs.execute(trigger_query) rowitem = self.curs.fetchone() if rowitem[0] == 0: log.info( 'monitor trigger is not exist... try create trigger') self.CreateMonitorTrigger() self.bot.sendMessage(self.chat_id, 'DS Download Monitor Trigger 등록') except psycopg2.IntegrityError as err: if err.pgcode != '23505': log.error( 'CheckDownloadMonitorTable|DB IntegrityError : %s', err) else: log.error( 'CheckDownloadMonitorTable|DB Not Intergrity Error : %s', err) self.curs.close() self.conn.close() self.curs = None except Exception as err: log.error('CheckDownloadMonitorTable|DB Exception : %s', err) self.curs.close() self.conn.close() self.curs = None except: log.error("CheckDownloadMonitorTable|psycopg except : " + e) self.curs.close() self.conn.close() self.curs = None log.info('CheckDownloadMonitorTable exit...') return