Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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