924 """ |
924 """ |
925 command = """ |
925 command = """ |
926 import os as __os_ |
926 import os as __os_ |
927 |
927 |
928 def fsinfo(): |
928 def fsinfo(): |
929 infolist = [] |
929 infodict = {} |
930 info = __os_.statvfs('/') |
930 info = __os_.statvfs('/') |
931 if info[0] == 0: |
931 if info[0] == 0: |
932 fsnames = __os_.listdir('/') |
932 fsnames = __os_.listdir('/') |
933 for fs in fsnames: |
933 for fs in fsnames: |
934 fs = '/' + fs |
934 fs = '/' + fs |
935 infolist.append((fs, __os_.statvfs(fs))) |
935 infodict[fs] = __os_.statvfs(fs) |
936 else: |
936 else: |
937 infolist.append(('/', info)) |
937 infodict['/'] = info |
938 return infolist |
938 fsnames = __os_.listdir('/') |
|
939 for fs in fsnames: |
|
940 fs = '/' + fs |
|
941 info = __os_.statvfs(fs) |
|
942 if info not in infodict.values(): |
|
943 infodict[fs] = info |
|
944 return infodict |
939 |
945 |
940 print(fsinfo()) |
946 print(fsinfo()) |
941 del __os_, fsinfo |
947 del __os_, fsinfo |
942 """ |
948 """ |
943 out, err = self._interface.execute(command, mode=self._submitMode) |
949 out, err = self._interface.execute(command, mode=self._submitMode) |
944 if err: |
950 if err: |
945 raise OSError(self._shortError(err)) |
951 raise OSError(self._shortError(err)) |
946 infolist = ast.literal_eval(out.decode("utf-8")) |
952 infodict = ast.literal_eval(out.decode("utf-8")) |
947 if infolist is None: |
953 if infodict is None: |
948 return None |
954 return None |
949 else: |
955 else: |
950 filesystemInfos = [] |
956 filesystemInfos = [] |
951 for fs, info in infolist: |
957 for fs, info in infodict.items(): |
952 totalSize = info[2] * info[1] |
958 totalSize = info[2] * info[1] |
953 freeSize = info[4] * info[1] |
959 freeSize = info[4] * info[1] |
954 usedSize = totalSize - freeSize |
960 usedSize = totalSize - freeSize |
955 filesystemInfos.append((fs, totalSize, usedSize, freeSize)) |
961 filesystemInfos.append((fs, totalSize, usedSize, freeSize)) |
956 |
962 |