| 85 | """ |
| 86 | def run(self, timeout): |
| 87 | def target(): |
| 88 | filesystems=[] |
| 89 | filesystems.extend(self.nfsoutput()) |
| 90 | for fs in filesystems: |
| 91 | if self.file: |
| 92 | if self.check==False: |
| 93 | self.writehb("%s/%s" % (fs,file)) |
| 94 | else: |
| 95 | res=self.readhb("%s/%s" % (fs,file)) |
| 96 | delay = time.time() - float(res) |
| 97 | if (delay < timeout) and self.ok == None: |
| 98 | self.logger.info("%s/%s is ok %s with %s" % (fs,file,timeout,delay)) |
| 99 | self.ok = True |
| 100 | elif (delay > timeout): |
| 101 | self.logger.warning("%s/%s exceeded timeout %s with %s" % (fs,file,timeout, delay)) |
| 102 | self.ok = False |
| 103 | self.results[fs] = [self.ok, delay] |
| 104 | |
| 105 | epoch=time.time() |
| 106 | if self.cmd: |
| 107 | self.logger.debug('Executing: %s' % (cmd)) |
| 108 | self.process = subprocess.Popen(self.cmd, shell=True) |
| 109 | self.process.communicate() |
| 110 | self.logger.info('Executed: %s in %s' % |
| 111 | (cmd, (time.time() - epoch))) |
| 112 | |
| 113 | thread = threading.Thread(target=target) |
| 114 | thread.start() |