def update_object_count(self): objects = [] object_count = 0 bytes_used = 0 objects, object_count, bytes_used = get_container_details(self.datadir) #print 'cont', object_count, self.metadata if int(self.metadata[X_OBJECTS_COUNT]) != object_count or \ int(self.metadata[X_BYTES_USED]) != bytes_used: self.metadata[X_OBJECTS_COUNT] = object_count self.metadata[X_BYTES_USED] = bytes_used self.update_container(self.metadata)
def list_container_objects(self, limit, marker, end_marker, prefix, delimiter, path, out_content_type): """ Returns tuple of name, created_at, size, content_type, etag. """ if path: prefix = path = path.rstrip('/') + '/' delimiter = '/' if delimiter and not prefix: prefix = '' #print 'Container_list prefix, del, datadir', prefix,\ #delimiter, self.datadir objects = [] object_count = 0 bytes_used = 0 container_list = [] objects, object_count, bytes_used = get_container_details(self.datadir, self.memcache) #print 'cont', object_count, self.metadata if int(self.metadata[X_OBJECTS_COUNT]) != object_count or \ int(self.metadata[X_BYTES_USED]) != bytes_used: self.metadata[X_OBJECTS_COUNT] = object_count self.metadata[X_BYTES_USED] = bytes_used self.update_container(self.metadata) if objects: objects.sort() if objects and prefix: objects = self.filter_prefix(objects, prefix) if objects and delimiter: objects = self.filter_delimiter(objects, delimiter, prefix) if objects and marker: objects = self.filter_marker(objects, marker) if objects and end_marker: objects = self.filter_end_marker(objects, end_marker) if objects and limit: if len(objects) > limit: objects = self.filter_limit(objects, limit) if objects: for obj in objects: list_item = [] metadata = None list_item.append(obj) if out_content_type != 'text/plain': metadata = read_metadata(self.datadir + '/' + obj) if not metadata: metadata = create_object_metadata(self.datadir + '/' + obj) #print 'Gaurav list_obj meta', metadata if metadata: list_item.append(metadata[X_TIMESTAMP]) list_item.append(metadata[X_CONTENT_LENGTH]) list_item.append(metadata[X_CONTENT_TYPE]) list_item.append(metadata[X_ETAG]) container_list.append(list_item) #print 'Gaurav list_container objs', container_list return container_list