Example #1
0
 def _try_upload(self, local_path, fs_path):
     cmd = "put {} {}".format(local_path, fs_path)
     ret = 0
     try:
         ret, lines = self._run_cmd(cmd)
         if ret != 0:
             raise ExecuteError(cmd)
     except Exception as e:
         self.delete(fs_path)
         raise e
Example #2
0
    def is_exist(self, fs_path):
        cmd = "ls {} ".format(fs_path)
        ret, out = self._run_cmd(cmd, redirect_stderr=True)
        if ret != 0:
            for l in out:
                if "No such file or directory" in l:
                    return False
            raise ExecuteError(cmd)

        return True
Example #3
0
 def _try_download(self, fs_path, local_path):
     cmd = "get {} {}".format(fs_path, local_path)
     ret = 0
     try:
         ret, lines = self._run_cmd(cmd)
         if ret != 0:
             raise ExecuteError(cmd)
     except Exception as e:
         local_fs = LocalFS()
         local_fs.delete(local_path)
         raise e
Example #4
0
    def _is_dir(self, fs_path):
        cmd = "test -d {}".format(fs_path, redirect_stderr=True)
        ret, lines = self._run_cmd(cmd)
        if ret:
            # other error
            if self._test_match(lines):
                raise ExecuteError(cmd)

            return False

        return True
Example #5
0
 def _try_mv(self, fs_src_path, fs_dst_path):
     cmd = "mv {} {}".format(fs_src_path, fs_dst_path)
     ret = 0
     try:
         ret, _ = self._run_cmd(cmd)
         if ret != 0:
             raise ExecuteError(cmd)
     except Exception as e:
         if not self.is_exist(fs_src_path) and \
                 self.is_exist(fs_dst_path):
             return
         raise e
Example #6
0
    def mkdirs(self, fs_path):
        if self.is_exist(fs_path):
            return

        out_hdfs = False

        cmd = "mkdir {} ".format(fs_path)
        ret, out = self._run_cmd(cmd, redirect_stderr=True)
        if ret != 0:
            for l in out:
                if "No such file or directory" in l:
                    out_hdfs = True
                    break
            if not out_hdfs:
                raise ExecuteError(cmd)

        if out_hdfs and not self.is_exist(fs_path):
            cmd = "mkdir -p {}".format(fs_path)
            ret, lines = self._run_cmd(cmd)
            if ret != 0:
                raise ExecuteError(cmd)
Example #7
0
    def _ls_dir(self, fs_path):
        cmd = "ls {}".format(fs_path)
        ret, lines = self._run_cmd(cmd)

        if ret != 0:
            raise ExecuteError(cmd)

        dirs = []
        files = []
        for line in lines:
            arr = line.split()
            if len(arr) != 8:
                continue

            p = os.path.basename(arr[7])
            if arr[0][0] == 'd':
                dirs.append(p)
            else:
                files.append(p)

        return dirs, files
Example #8
0
 def _rm(self, fs_path):
     cmd = "rm {}".format(fs_path)
     ret, _ = self._run_cmd(cmd)
     if ret != 0:
         raise ExecuteError(cmd)