def get_data_file_size(self): """ Returns the os_path.getsize for the file. Raises an exception if this file does not match the Content-Length stored in the metadata, or if self.data_file does not exist. :returns: file size as an int :raises DiskFileError: on file size mismatch. :raises DiskFileNotExist: on file not existing (including deleted) """ #Marker directory. if self._is_dir: return 0 try: file_size = 0 if self.data_file: file_size = os_path.getsize(self.data_file) if X_CONTENT_LENGTH in self.metadata: metadata_size = int(self.metadata[X_CONTENT_LENGTH]) if file_size != metadata_size: self.metadata[X_CONTENT_LENGTH] = file_size write_metadata(self.data_file, self.metadata) return file_size except OSError as err: if err.errno != errno.ENOENT: raise raise DiskFileNotExist('Data File does not exist.')
def _update_list(path, cont_path, src_list, reg_file=True, object_count=0, bytes_used=0, obj_list=[]): # strip the prefix off, also stripping the leading and trailing slashes obj_path = path.replace(cont_path, '').strip(os.path.sep) for obj_name in src_list: # If it is not a reg_file then it is a directory. if not reg_file and not Glusterfs._implicit_dir_objects: # Now check if this is a dir object or a gratuiously crated # directory metadata = \ read_metadata(os.path.join(cont_path, obj_path, obj_name)) if not dir_is_object(metadata): continue if obj_path: obj_list.append(os.path.join(obj_path, obj_name)) else: obj_list.append(obj_name) object_count += 1 if reg_file and Glusterfs._do_getsize: bytes_used += os_path.getsize(os.path.join(path, obj_name)) sleep() return object_count, bytes_used
def _old_getsize(): file_size = os_path.getsize(self.data_file) if X_CONTENT_LENGTH in self.metadata: metadata_size = int(self.metadata[X_CONTENT_LENGTH]) if file_size != metadata_size: # FIXME - bit rot detection? self.metadata[X_CONTENT_LENGTH] = file_size write_metadata(self.data_file, self.metadata) return file_size
def _update_list(path, cont_path, src_list, reg_file=True, object_count=0, bytes_used=0, obj_list=[]): # strip the prefix off, also stripping the leading and trailing slashes obj_path = path.replace(cont_path, '').strip(os.path.sep) for obj_name in src_list: if obj_path: obj_list.append(os.path.join(obj_path, obj_name)) else: obj_list.append(obj_name) object_count += 1 if Glusterfs._do_getsize and reg_file: bytes_used += os_path.getsize(os.path.join(path, obj_name)) sleep() return object_count, bytes_used
def _update_list(path, cont_path, src_list, reg_file=True, object_count=0, bytes_used=0, obj_list=[]): # strip the prefix off, also stripping the leading and trailing slashes obj_path = path.replace(cont_path, '').strip(os.path.sep) for obj_name in src_list: if not reg_file and Glusterfs.OBJECT_ONLY: metadata = \ read_metadata(os.path.join(cont_path, obj_path, obj_name)) if not dir_is_object(metadata): continue if obj_path: obj_list.append(os.path.join(obj_path, obj_name)) else: obj_list.append(obj_name) object_count += 1 if reg_file and Glusterfs._do_getsize: bytes_used += os_path.getsize(os.path.join(path, obj_name)) sleep() return object_count, bytes_used