cas lib/cas
by Adam Stokes
cas | 8 ++++----
lib/cas/db.py | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
New commits:
commit 4070b11a0c51052cda821fa709d00781f6fe4dda
Author: adam stokes <ajs(a)redhat.com>
Date: Mon Apr 27 09:39:16 2009 -0400
- fix output redirect (Flavio Leitner)
- fix a sql like match in getTimeStampDebug (Flavio Leitner)
- fix incorrect sql statement in addServer (Flavio Leitner)
diff --git a/cas b/cas
index e380203..3245adb 100755
--- a/cas
+++ b/cas
@@ -228,8 +228,8 @@ class CasApplication(object):
CRASH_32)
self.casLog.info("Current machine suitable for processing 32 bit core, "\
"running crash.")
- cmd = "cd " + os.path.join(self.storagePath) + " && ./crash -i crash.in > crash.out"
- cmdPipe = Popen([cmd], stdout=PIPE, stderr=PIPE)
+ cmd = "./crash -i crash.in > crash.out"
+ cmdPipe = Popen([cmd], stdout=PIPE, stderr=PIPE, shell=True)
cmdData = cmdPipe.communicate()
# pull status code to verify crash even ran to completeness
sts, out, err = (cmdPipe.returncode, cmdData[0].strip(),
@@ -242,8 +242,8 @@ class CasApplication(object):
casProcessMachine = platform.uname()[1]
# The machine is suitable for processing the core through crash.
self.casLog.info("Current machine suitable for processing core, running crash.")
- cmd = "cd " + os.path.join(self.storagePath) + " && ./crash -i crash.in > crash.out"
- cmdPipe = Popen([cmd], stdout=PIPE, stderr=PIPE)
+ cmd = "./crash -i crash.in > crash.out"
+ cmdPipe = Popen([cmd], stdout=PIPE, stderr=PIPE, shell=True)
cmdData = cmdPipe.communicate()
# pull status code to verify crash even ran to completeness
sts, out, err = (cmdPipe.returncode, cmdData[0].strip(),
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 9826dd9..c76021f 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -87,7 +87,7 @@ class CasStorage(object):
values = (timestamp,)
self.cursor.execute('''SELECT rpm,debugpath
FROM debuginfo, timestamp
- where timestamp LIKE '%"%s"%''' % values)
+ where timestamp LIKE '"%%%s%%"''' % values)
return self.cursor.fetchone()
# JOB METHODS
@@ -118,7 +118,7 @@ class CasStorage(object):
def addServer(self, hostname, arch):
""" add server/arch to db """
values = (hostname, arch)
- self.cursor.execute('select * from server where hostname"%s"' % (hostname,))
+ self.cursor.execute('select * from server where hostname="%s"' % (hostname,))
if not self.cursor.fetchone():
self.cursor.execute('''INSERT into server (hostname, arch)
values ("%s","%s")''' % values)
15 years
[PATCH] - fixed sql statement in CasStorage.getTimestampDebug()
by Flavio Leitner
---
lib/cas/db.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/cas/db.py b/lib/cas/db.py
index f6bcb44..d18c03b 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -87,7 +87,7 @@ class CasStorage(object):
values = (timestamp,)
self.cursor.execute('''SELECT rpm,debugpath
FROM debuginfo, timestamp
- where timestamp LIKE '%"%s"%''' % values)
+ where timestamp LIKE "%%%s%%"''' % values)
return self.cursor.fetchone()
# JOB METHODS
--
1.6.2.3
15 years
[PATCH] - fixed missing '=' in sql query on addServer()
by Flavio Leitner
---
lib/cas/db.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 9826dd9..f6bcb44 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -118,7 +118,7 @@ class CasStorage(object):
def addServer(self, hostname, arch):
""" add server/arch to db """
values = (hostname, arch)
- self.cursor.execute('select * from server where hostname"%s"' % (hostname,))
+ self.cursor.execute('select * from server where hostname="%s"' % (hostname,))
if not self.cursor.fetchone():
self.cursor.execute('''INSERT into server (hostname, arch)
values ("%s","%s")''' % values)
--
1.6.2.3
15 years
Changes to 'sdodson-dev'
by Scott Dodson
New branch 'sdodson-dev' available with the following commits:
commit 1e5c72ac3d66fa85539d634b9b271d4f2a48cb84
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Thu Apr 16 21:37:57 2009 -0400
- authors file added to keep track of
contributors.
commit 6d60875ed7d264206e1b68fc20bebfea63638d6b
Author: Scott Dodson <sdodson(a)redhat.com>
Date: Fri Apr 24 17:27:03 2009 -0400
Since crash.out now only has STDOUT from the crash command we need to
change things to look in modules to determine which modules to install.
commit 9042fe0ee5b961935224c055c49c625ad7047859
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Fri Apr 3 09:41:05 2009 -0400
- update spec to handle snippets addition (Scott Dodson)
commit bb95879d276480e42627fab06fc32811dd82708a
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Thu Apr 2 20:13:03 2009 -0400
- snippet support, all crash commands are now in /var/lib/snippets (Scott Dodson)
- Fix func timeout in remote calls (Scott Dodson)
15 years
cas cas.spec lib/cas
by Adam Stokes
cas | 2 +-
cas.spec | 3 ++-
lib/cas/db.py | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
New commits:
commit 1763f66700e16a77f2f988fe14236fe4d8f14b5b
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Fri Apr 24 21:34:24 2009 -0400
- small changes to sql statement
- altered a server selection var
diff --git a/cas b/cas
index 29de5ba..e380203 100755
--- a/cas
+++ b/cas
@@ -266,7 +266,7 @@ class CasApplication(object):
if arch == debugKernelArch:
# TODO: Randomize server selection
# TODO: Verify remote server is reachable
- casProcessMachine = serverList[debugKernelArch][0]
+ casProcessMachine = hostname
self.casLog.info("Machine %s found, processing " \
"crash output" % (casProcessMachine,))
cmd = "cd " + os.path.join(self.storagePath) + " && ./crash -i crash.in > crash.out"
diff --git a/cas.spec b/cas.spec
index 826d91d..fe6936b 100644
--- a/cas.spec
+++ b/cas.spec
@@ -3,7 +3,7 @@
Name: cas
Summary: Tool to analyze and configure core file environment
Version: 0.14
-Release: 2%{?dist}
+Release: 3%{?dist}
Source0: https://fedorahosted.org/releases/c/a/cas/%{name}-%{version}.tar.gz
License: GPLv3+
Group: Development/Libraries
@@ -56,6 +56,7 @@ rm -rf ${RPM_BUILD_ROOT}
%changelog
* Fri Apr 24 2009 Adam Stokes <ajs at redhat dot com> - 0.14-2
- Finalizing sqlite implementation
+- added AUTHORS
* Thu Apr 2 2009 Scott Dodson <sdodson at sdodson dot com > - 0.14-1
- Spec file changes to handle the snippets directory
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 717829c..9826dd9 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -125,5 +125,5 @@ class CasStorage(object):
return
def getServers(self):
- self.cursor.execute('select * from server')
+ self.cursor.execute('select hostname, arch from server')
return self.cursor.fetchall()
15 years
doc/index.rst
by Adam Stokes
doc/index.rst | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
New commits:
commit 257639613f0d8dcfb6553f0554a638285e6f7ef1
Author: uzr <uzr(a)shinzo.(none)>
Date: Fri Apr 24 16:11:54 2009 -0400
- documentation updates
diff --git a/doc/index.rst b/doc/index.rst
index 7ecb87c..0f8079f 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -51,14 +51,12 @@ each section and describe its meaning::
[settings]
kernels=/mnt/kernels
- rpms=/var/db/cas/rpms.db
rpmFilter=.*kernel-debuginfo-[0-9].*\.rpm
debugs=/cores/debugs
debugLevel=DEBUG
workDirectory=/cores/processed
- servers=/var/db/cas/servers.db
- jobs=/var/db/cas/jobs.db
mailServer=mail.example.com
+ database=/var/db/cas/cas.db
[advanced]
# crash_32=/usr/local/i386/crash
@@ -66,9 +64,6 @@ each section and describe its meaning::
stored. This can range anywhere from an nfs mount, samba share, local disk or
any other type of media the cas server can access.
-``rpms``: (**Required**) Database which houses the processing of kernel-debuginfo and stores the
-necessary information for CAS to properly match core dumps.
-
``rpmFilters``: (**Required**) This is a emacs based regular expression which is essentially
passed to a find command to locate the various kernel-debuginfo packages defined
in ``kernels`` directive.
@@ -84,16 +79,12 @@ Currently the only accepted values are ``DEBUG|INFO``.
point will need to have the most storage assigned to it. Depending on how many
cores are processed in a given timeframe this area will fill up quickly.
-``servers``: If func is installed and configured all associated servers will
-be stored here.
-
-``jobs``: Contains information on current jobs being processed and eventually
-what jobs are in the queue.
-
``mailServer``: If wanting output of CAS processing email to a certain address
this directive needs to be set. ``Note`` that the mail server should not
require smtp authentication.
+``database``: (**Required**) Define where the sqlite database will reside.
+
``crash_32``: Primarily used on x86_64 systems to process x86 cores. If x86
version of crash is installed this directive can be set to the crash binary
and CAS will automatically process x86 cores on a x86_64 machine. ``Note`` this
@@ -128,14 +119,12 @@ following::
[settings]
kernels=/mnt/kernels
- rpms=/var/db/cas/rpms.db
rpmFilter=.*kernel-debuginfo-[0-9].*\.rpm
debugs=/tmp
debugLevel=DEBUG
workDirectory=/cores
- servers=/var/db/cas/servers.db
- jobs=/var/db/cas/jobs.db
mailServer=mail.cas-server.com
+ database=/var/db/cas/cas.db
[advanced]
crash_32=/usr/local/i386/crash
15 years
cas cas-admin lib/cas
by Adam Stokes
cas | 8 ++++----
cas-admin | 2 ++
lib/cas/db.py | 8 ++++----
3 files changed, 10 insertions(+), 8 deletions(-)
New commits:
commit 6907860e6792f94550ab91241ba4f63686d558f3
Author: adam stokes <ajs(a)redhat.com>
Date: Fri Apr 24 12:42:49 2009 -0400
- sql changes to do a like comparison for timestamps
- fix errors with dealing with directory structures
diff --git a/cas b/cas
index 047d9e8..29de5ba 100755
--- a/cas
+++ b/cas
@@ -119,7 +119,7 @@ class TimestampHandler(object):
sys.exit(1)
# query timestamp table, return tuple debuginfoRPM, and path to
# debugKernel
- timestamp_query = self.db.getTimestamp(coreTimestamp)
+ timestamp_query = self.db.getTimestampDebug(coreTimestamp)
if timestamp_query:
return (timestamp_query)
self.casLog.debug("Unable to match timestamp %s" % (coreTimestamp,))
@@ -127,12 +127,12 @@ class TimestampHandler(object):
class CasApplication(object):
def __init__(self, args):
+ self.db = CasStorage(DATABASE)
+ self.db.connect()
self.parse_options(args)
self.util = UtilBase()
self.rpmTool = RPMBase()
- self.db = CasStorage(DATABASE)
- self.db.connect()
-
+
def parse_options(self, args):
# build option - arguement list in the form of
# cas -i <id> -f <filename> -m user(a)example.com
diff --git a/cas-admin b/cas-admin
index 544da46..0a4ef82 100755
--- a/cas-admin
+++ b/cas-admin
@@ -72,6 +72,8 @@ class CasDatabaseHandler(object):
for id, rpm in rpms:
# temporary storage path in form of DEBUGS/COUNT
dst = os.path.join(DEBUGS, str(count))
+ if not os.path.isdir(dst):
+ os.makedirs(dst)
rpmTool = RPMBase()
self.casLog.status("(extracting) %-50s" % (os.path.basename(rpm),))
results = rpmTool.extract(rpm, dst)
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 98a252e..717829c 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -87,18 +87,18 @@ class CasStorage(object):
values = (timestamp,)
self.cursor.execute('''SELECT rpm,debugpath
FROM debuginfo, timestamp
- where timestamp="%s"''' % values)
+ where timestamp LIKE '%"%s"%''' % values)
return self.cursor.fetchone()
# JOB METHODS
def getAllJobs(self):
""" all jobs """
- self.cursor.execute('SELECT * FROM cas_jobs')
+ self.cursor.execute('SELECT * FROM jobs')
return self.cursor.fetchall()
def getJobById(self, id):
""" single job """
- self.cursor.execute('SELECT * FROM cas_jobs where id=%d' % (id,))
+ self.cursor.execute('SELECT * FROM jobs where id=%d' % (id,))
return self.cursor.fetchone()
def getJobRange(self, days):
@@ -109,7 +109,7 @@ class CasStorage(object):
def addJob(self, identifier, date):
""" add job to db """
- values = (date, identifier)
+ values = (str(date), int(identifier))
self.cursor.execute('''INSERT into jobs (date,identifier)
values ("%s",%d)''' % values)
return
15 years
cas-admin.1 cas.spec lib/cas Makefile
by Adam Stokes
Makefile | 1 -
cas-admin.1 | 6 ++++++
cas.spec | 7 +++++--
lib/cas/db.py | 13 ++++++++-----
4 files changed, 19 insertions(+), 8 deletions(-)
New commits:
commit a5478f1fae717c585b1f171f3cab8a361799aed9
Author: adam stokes <ajs(a)redhat.com>
Date: Fri Apr 24 11:51:22 2009 -0400
- Finalizing sqlite implementation in both
administrative portion and main app
diff --git a/Makefile b/Makefile
index 412097c..d914133 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,6 @@ VERSION = $(shell echo `awk '/^Version:/ {print $$2}' cas.spec`)
RELEASE = $(shell echo `awk '/^Release:/ {gsub(/\%.*/,""); print $2}' cas.spec`)
MANPAGE1 = $(PWD)/cas.1
MANPAGE2 = $(PWD)/cas-admin.1
-SOURCE1 = version
SOURCE2 = $(PWD)/cas.conf
SOURCE3 = $(PWD)/cas.1.gz
SOURCE4 = $(PWD)/cas-admin.1.gz
diff --git a/cas-admin.1 b/cas-admin.1
index 7163f03..2369f53 100644
--- a/cas-admin.1
+++ b/cas-admin.1
@@ -13,6 +13,12 @@ Populate server database for automatic processing of core files.
.TP
.B \-b
Populate a database with debug kernel information.
+.B \-p
+Purge data based on set days (see purge options)
+.SH PURGE OPTIONS
+.TP
+.B \-d
+Define how many days back you wish to purge data, default is 90 days.
.SH RESOURCES
A configuration file is maintained in /etc/cas.conf.
.SH AUTHOR
diff --git a/cas.spec b/cas.spec
index d810bdf..826d91d 100644
--- a/cas.spec
+++ b/cas.spec
@@ -3,7 +3,7 @@
Name: cas
Summary: Tool to analyze and configure core file environment
Version: 0.14
-Release: 1%{?dist}
+Release: 2%{?dist}
Source0: https://fedorahosted.org/releases/c/a/cas/%{name}-%{version}.tar.gz
License: GPLv3+
Group: Development/Libraries
@@ -54,7 +54,10 @@ rm -rf ${RPM_BUILD_ROOT}
%doc AUTHORS LICENSE README PKG-INFO doc/*
%changelog
-* Thu Apr 2 2009 Scott Dodson <sdodson at sdodson dot com > 0.14-1
+* Fri Apr 24 2009 Adam Stokes <ajs at redhat dot com> - 0.14-2
+- Finalizing sqlite implementation
+
+* Thu Apr 2 2009 Scott Dodson <sdodson at sdodson dot com > - 0.14-1
- Spec file changes to handle the snippets directory
- Snippets support to replace hardcoding crash input cmds
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 7429cfa..98a252e 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -75,17 +75,20 @@ class CasStorage(object):
def addTimestamp(self, id, debug, timestamp):
""" build relation to debuginfo rpm and add debug path, timestamp """
values = (id, debug, timestamp)
- self.cursor.execute('''INSERT into timestamp (debug_id,debugpath,
+ self.cursor.execute('SELECT * FROM timestamp where timestamp="%s"' % (timestamp,))
+ if not self.cursor.fetchone():
+ self.cursor.execute('''INSERT into timestamp (debug_id,debugpath,
timestamp) values(%d,"%s","%s")''' % values)
self.commit()
return
- def getTimestamp(self, timestamp):
+ def getTimestampDebug(self, timestamp):
""" return timestamp based on extracted core timestamp """
values = (timestamp,)
- # TODO: needs a left join sql statement for timestamp+debuginfo
- pass
- return
+ self.cursor.execute('''SELECT rpm,debugpath
+ FROM debuginfo, timestamp
+ where timestamp="%s"''' % values)
+ return self.cursor.fetchone()
# JOB METHODS
def getAllJobs(self):
15 years
AUTHORS cas.spec cas.sql MANIFEST.in
by Adam Stokes
AUTHORS | 6 ++++++
MANIFEST.in | 1 +
cas.spec | 2 +-
cas.sql | 46 ----------------------------------------------
4 files changed, 8 insertions(+), 47 deletions(-)
New commits:
commit 59a1037b490731db8c4cf9675325501f6a0d7e51
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Thu Apr 16 21:37:57 2009 -0400
- authors file added to keep track of
contributors.
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..7fd345a
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,6 @@
+Core developers:
+Adam Stokes
+
+Contributors:
+Scott Dodson
+Flavio Leitner
diff --git a/MANIFEST.in b/MANIFEST.in
index 508d8fc..fea437d 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -3,5 +3,6 @@ include cas.1.gz
include cas-admin.1.gz
include LICENSE
include README
+include AUTHORS
recursive-include doc *
recursive-include snippets *
diff --git a/cas.spec b/cas.spec
index a7d93e4..d810bdf 100644
--- a/cas.spec
+++ b/cas.spec
@@ -51,7 +51,7 @@ rm -rf ${RPM_BUILD_ROOT}
%config(noreplace) /var/lib/cas/snippets/template
%config(noreplace) /var/lib/cas/snippets/traceback
%config(noreplace) /var/lib/cas/snippets/modules
-%doc LICENSE README PKG-INFO doc/*
+%doc AUTHORS LICENSE README PKG-INFO doc/*
%changelog
* Thu Apr 2 2009 Scott Dodson <sdodson at sdodson dot com > 0.14-1
diff --git a/cas.sql b/cas.sql
deleted file mode 100644
index 0448425..0000000
--- a/cas.sql
+++ /dev/null
@@ -1,46 +0,0 @@
---
--- cas jobs
---
-CREATE TABLE jobs (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- submitter VARCHAR(255),
- creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- jobpath TEXT,
- corefile TEXT,
- debug TEXT
-)
-
---
--- cas servers
---
-CREATE TABLE architecture (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- arch VARCHAR(255)
-)
-
---
--- one to many relationship with architectures
---
-CREATE TABLE servers (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- hostname VARCHAR(255),
- arch_id INTEGER
-)
-
---
--- debug rpm filename
---
-CREATE TABLE debuginforpm (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- filename VARCHAR(255)
-)
-
---
--- debug kernels
---
-CREATE TABLE debugkernels (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- debugpath TEXT,
- debugtimestamp TEXT,
- debuginforpm_id INTEGER
-)
15 years
cas lib/cas
by Adam Stokes
cas | 23 +++++++++++------------
lib/cas/db.py | 7 +++++++
2 files changed, 18 insertions(+), 12 deletions(-)
New commits:
commit 53389137939521a4bebdf2da2132ec17e66f3221
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Thu Apr 16 21:34:15 2009 -0400
- getting close to finalizing cas with sqlite db
- needs a left join statement to finish the timestamp
matching
- more methods to db added
diff --git a/cas b/cas
index 7362d80..047d9e8 100755
--- a/cas
+++ b/cas
@@ -54,14 +54,13 @@ if config.has_option("advanced", "crash_32"):
CRASH_32=config.get("advanced", "crash_32")
class CoreHandler(object):
- def __init__(self, filename, dst, logger, database):
+ def __init__(self, filename, dst, logger):
self.filename = filename
self.basename = os.path.basename(self.filename)
self.dst = dst
self.currentDirectory = os.path.realpath(os.curdir)
self.casLog = logger
self.tool = CoreBase()
- self.db = database
def run(self):
if(self.filename.startswith("http") or self.filename.startswith("ftp")):
@@ -118,11 +117,11 @@ class TimestampHandler(object):
except CoreException, err:
self.casLog.debug(err)
sys.exit(1)
- for k,v in rpmDB.iteritems():
- for coreObj in rpmDB[k]:
- debugKernel, timestamp = coreObj
- if timestamp and coreTimestamp in timestamp:
- return (k, debugKernel)
+ # query timestamp table, return tuple debuginfoRPM, and path to
+ # debugKernel
+ timestamp_query = self.db.getTimestamp(coreTimestamp)
+ if timestamp_query:
+ return (timestamp_query)
self.casLog.debug("Unable to match timestamp %s" % (coreTimestamp,))
sys.exit(1)
@@ -180,7 +179,7 @@ class CasApplication(object):
os.makedirs(self.storagePath)
self.casLog.info("Starting job at %s" % (self.storagePath,))
# begin core extraction analysis
- corefile = CoreHandler(self.filename, self.storagePath, self.casLog, self.db).run()
+ corefile = CoreHandler(self.filename, self.storagePath, self.casLog).run()
self.casLog.info("Corefile prepared, processing %s" % (corefile,))
debuginfo, debugKernel = TimestampHandler(corefile, self.casLog, self.db).run()
@@ -269,7 +268,7 @@ class CasApplication(object):
# TODO: Verify remote server is reachable
casProcessMachine = serverList[debugKernelArch][0]
self.casLog.info("Machine %s found, processing " \
- "crash output" % (casProcessMachine,))
+ "crash output" % (casProcessMachine,))
cmd = "cd " + os.path.join(self.storagePath) + " && ./crash -i crash.in > crash.out"
client = fc.Overlord(casProcessMachine,async=True)
job_id = client.command.run(cmd)
@@ -277,11 +276,11 @@ class CasApplication(object):
status = client.job_status(job_id)
(code, results) = status
if code == jobthing.JOB_ID_RUNNING:
- print "task is running..."
+ self.casLog.status("task is running...")
elif code == jobthing.JOB_ID_PARTIAL:
- print "task is running..."
+ self.casLog.status("task is running...")
elif code == jobthing.JOB_ID_FINISHED:
- print "task complete, results = %s" % results
+ self.casLog.status("task complete; results = %s" % (results,))
break
sleep(5)
else:
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 01706eb..7429cfa 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -80,6 +80,13 @@ class CasStorage(object):
self.commit()
return
+ def getTimestamp(self, timestamp):
+ """ return timestamp based on extracted core timestamp """
+ values = (timestamp,)
+ # TODO: needs a left join sql statement for timestamp+debuginfo
+ pass
+ return
+
# JOB METHODS
def getAllJobs(self):
""" all jobs """
15 years