def release_suite_access( self): server = lockserver( self.host, port=self.port ).get() result = server.release_suite_access( self.suite_dir, self.suite ) if not result: return False else: return True
def request_suite_access( self, exclusive=True ): # suite config files should specify whether or not a suite is # 'exclusive' - i.e. is it possible to run multiple copies (with # different registered group names) of the entire suite at # once? # GET A NEW CONNECTION WITH EACH REQUEST # TODO - OR GET A SINGLE CONNECTION IN INIT server = lockserver( self.host, port=self.port ).get() (result, reason) = server.get_suite_access( self.suite_dir, self.suite, self.cylc_mode, exclusive ) if not result: print >> sys.stderr, 'ERROR, failed to get suite access:' print >> sys.stderr, reason return False else: return True
def release(self): if not self.use_lock_server: #print >> sys.stderr, "WARNING: you are not using the cylc lockserver." return True # Owner required here because cylc suites can run tasks as other # users - but the lockserver is owned by the suite owner: server = lockserver(self.host, owner=self.owner, port=self.port).get() if server.is_locked(self.task_id, self.suite): if server.release(self.task_id, self.suite): print "Released task lock" return True else: print >> sys.stderr, "Failed to release task lock" return False else: print >> sys.stderr, "WARNING", self.suite + ':' + self.task_id, "was not locked!" return True
def release(self): if not self.use_lock_server: # print >> sys.stderr, "WARNING: you are not using the cylc lockserver." return True # Owner required here because cylc suites can run tasks as other # users - but the lockserver is owned by the suite owner: server = lockserver(self.host, owner=self.owner, port=self.port).get() if server.is_locked(self.task_id, self.suite): if server.release(self.task_id, self.suite): print "Released task lock" return True else: print >> sys.stderr, "Failed to release task lock" return False else: print >> sys.stderr, "WARNING", self.suite + ":" + self.task_id, "was not locked!" return True
def acquire( self ): # print statements here will go to task stdout and stderr if not self.use_lock_server: #print >> sys.stderr, "WARNING: you are not using the cylc lockserver." return True # Owner required here because cylc suites can run tasks as other # users - but the lockserver is owned by the suite owner: server = lockserver( self.host, owner=self.owner, port=self.port ).get() if server.acquire( self.task_id, self.suite ): print "Acquired task lock" return True else: print >> sys.stderr, "Failed to acquire task lock" if server.is_locked( self.task_id, self.suite ): print >> sys.stderr, self.suite + ':' + self.task_id, "is already locked!" return False
def acquire(self): # print statements here will go to task stdout and stderr if not self.use_lock_server: #print >> sys.stderr, "WARNING: you are not using the cylc lockserver." return True # Owner required here because cylc suites can run tasks as other # users - but the lockserver is owned by the suite owner: server = lockserver(self.host, owner=self.owner, port=self.port).get() if server.acquire(self.task_id, self.suite): print "Acquired task lock" return True else: print >> sys.stderr, "Failed to acquire task lock" if server.is_locked(self.task_id, self.suite): print >> sys.stderr, self.suite + ':' + self.task_id, "is already locked!" return False