def _popen_scp(self, src, dst, retry=3): while 1: try: (out, err), proc = server.popen_scp(src, dst, port=None, agent=None, ident_key=self.node.ident_path, server_key=self.node.server_key) if server.eintr_retry(proc.wait)(): raise RuntimeError, (out, err) return (out, err), proc except: if retry <= 0: raise else: retry -= 1
def _popen_scp(self, src, dst, retry = 3): while 1: try: (out,err),proc = server.popen_scp( src, dst, port = None, agent = None, ident_key = self.node.ident_path, server_key = self.node.server_key ) if server.eintr_retry(proc.wait)(): raise RuntimeError, (out, err) return (out, err), proc except: if retry <= 0: raise else: retry -= 1
def sync_trace(self, local_dir, whichtrace, tracemap=None): tracemap = self._TRACEMAP if not tracemap else tracemap if whichtrace not in tracemap: return None local = self.local() if not local: return None local_path = os.path.join(local_dir, tracemap[whichtrace][1]) # create parent local folders if os.path.dirname(local_path): proc = subprocess.Popen( ["mkdir", "-p", os.path.dirname(local_path)], stdout=open("/dev/null", "w"), stdin=open("/dev/null", "r")) if proc.wait(): raise RuntimeError, "Failed to synchronize trace" # sync files (out, err), proc = server.popen_scp( '%s@%s:%s' % (local.node.slicename, local.node.hostname, os.path.join(self.home_path, tracemap[whichtrace][0])), local_path, port=None, agent=None, ident_key=local.node.ident_path, server_key=local.node.server_key) if proc.wait(): raise RuntimeError, "Failed to synchronize trace: %s %s" % ( out, err, ) return local_path
def sync_trace(self, local_dir, whichtrace, tracemap = None): tracemap = self._TRACEMAP if not tracemap else tracemap if whichtrace not in tracemap: return None local = self.local() if not local: return None local_path = os.path.join(local_dir, tracemap[whichtrace][1]) # create parent local folders if os.path.dirname(local_path): proc = subprocess.Popen( ["mkdir", "-p", os.path.dirname(local_path)], stdout = open("/dev/null","w"), stdin = open("/dev/null","r")) if proc.wait(): raise RuntimeError, "Failed to synchronize trace" # sync files (out,err),proc = server.popen_scp( '%s@%s:%s' % (local.node.slicename, local.node.hostname, os.path.join(self.home_path, tracemap[whichtrace][0])), local_path, port = None, agent = None, ident_key = local.node.ident_path, server_key = local.node.server_key ) if proc.wait(): raise RuntimeError, "Failed to synchronize trace: %s %s" % (out,err,) return local_path