|
7 | 7 | import shutil
|
8 | 8 | import json
|
9 | 9 | import getpass
|
| 10 | +from distutils.spawn import find_executable |
10 | 11 |
|
11 | 12 | #local imports
|
12 | 13 | from losspager.utils.exception import PagerException
|
@@ -175,9 +176,12 @@ def createEventFolder(self,eventid,event_time):
|
175 | 176 | authid,allids = ccinfo.getAssociatedIds()
|
176 | 177 | allids.append(authid)
|
177 | 178 | for eid in allids:
|
178 |
| - eventfolder = os.path.join(outfolder,eid+event_time.strftime(DATETIMEFMT)) |
179 |
| - if os.path.isdir(eventfolder): |
180 |
| - return eventfolder |
| 179 | + #here we need to look for the *folder* containing the *pattern* with |
| 180 | + #the eid in question. getEventFolder does this for us. |
| 181 | + teventfolder = self.getEventFolder(eid) |
| 182 | + if teventfolder is not None: |
| 183 | + eventfolder = teventfolder |
| 184 | + break |
181 | 185 | except:
|
182 | 186 | pass
|
183 | 187 | if not os.path.isdir(eventfolder):
|
@@ -402,19 +406,23 @@ def toggleTsunami(self,eventid,tsunami='off'):
|
402 | 406 | f.write('%s' % tsunami)
|
403 | 407 | f.close()
|
404 | 408 |
|
405 |
| - version_folders = sorted(glob.glob(os.path.join(event_folder,'version.*'))) |
406 |
| - jsonfile = os.path.join(version_folders[-1],'json','event.json') |
407 |
| - f = open(jsonfile,'rt') |
408 |
| - jdict = json.load(f) |
409 |
| - f.close() |
410 |
| - if jdict['event']['tsunami'] == tsunami: |
411 |
| - return False |
412 |
| - jdict['event']['tsunami'] = toggle[tsunami] |
413 |
| - f = open(jsonfile,'wt') |
414 |
| - json.dump(jdict,f) |
415 |
| - f.close() |
416 |
| - return True |
417 |
| - |
| 409 | + version_folder = sorted(glob.glob(os.path.join(event_folder,'version.*')))[-1] |
| 410 | + res,stdout,stderr = self.runPager(version_folder,tsunami=tsunami) |
| 411 | + return (res,stdout,stderr) |
| 412 | + |
| 413 | + def runPager(self,versionfolder,release=False,cancel=False,tsunami='auto'): |
| 414 | + gridfile = os.path.join(versionfolder,'grid.xml') |
| 415 | + pagerbin = find_executable('pager') |
| 416 | + if pagerbin is None: |
| 417 | + raise PagerException('Could not find PAGER executable on this system.') |
| 418 | + pagercmd = pagerbin + ' %s' % gridfile |
| 419 | + if release: |
| 420 | + pagercmd += ' --release' |
| 421 | + if cancel: |
| 422 | + pagercmd += ' --cancel' |
| 423 | + pagercmd += ' --tsunami=%s' % tsunami |
| 424 | + res,stdout,stderr = get_command_output(pagercmd) |
| 425 | + return (res,stdout,stderr) |
418 | 426 |
|
419 | 427 | def query(self,start_time=datetime.datetime(1800,1,1),end_time=datetime.datetime.utcnow(),
|
420 | 428 | mag_threshold=0.0,alert_threshold='green',version='last',eventid=None):
|
|
0 commit comments