示例#1
0
def transfer_s3_structure_to_db(name, path, parent_directory, is_dir=False):
    if parent_directory is not None:
        par_dir = Directory.get(Directory.key == parent_directory)
    else:
        par_dir = FakeDirectory()
        par_dir.id = None
    if is_dir:
        try:
            Directory.get(Directory.key == path)
            return False
        except DoesNotExist:
            Directory.create(
                name = name,
                key = path,
                parent_directory = par_dir.id
            )
            return True
    else:
        try:
            Image.get(Image.key == path)
            return False
        except DoesNotExist:
            Image.create(
                name = name,
                key = path,
                directory = par_dir.id
            )
            return True
 def get_contents(self):
     db_id = Directory.get(Directory.key == self.key).id
     directories = Directory.select().where(Directory.parent_directory == db_id)
     has_probes = False
     try:
         has_probes = Directory.get(Directory.key == directories
                             .first().key).images.first()
     except:
         pass
     if has_probes:
         directories = [DirectoryTree(d.name, d.key).get_contents() for d in directories]
         self.directories = [d.serialized for d in directories]
     else:
         self.directories = [DirectoryTree(d.name, d.key).serialized for d in directories]
     self.images = [image.serialized for image in Image.select().where(Image.directory == db_id)]
     if self.images:
         stack_title = self.key[:-1]
         try:
             stack_id = Stack.get(Stack.title == stack_title).id
         except models.DoesNotExist:
             images = Image.select().where(Image.directory == db_id)
             stack = models.Stack.create(title=stack_title)
             for image in images:
                 try:
                     models.StackImage.create(stack=stack, image = image.id)
                 except Exception as ex:
                     print ex
             stack_id = stack.id
         self.stack_id = stack_id
     return self
def build_directory_tree(root_directory_key, root_directory_name):
    directory_db_model = Directory.get(Directory.key == root_directory_key)
    root_directory = DirectoryTree(root_directory_name, root_directory_key)
    root_directory = get_directory_contents(root_directory)
    root_directory.directories = [build_directory_tree(directory.key, directory.name) 
                                 for directory in root_directory.directories]
    # images = Image.select().where(Image.directory.key == directory_db_model.key)
    images = directory_db_model.images
    root_directory.images = [image.serialized for image in images]
    return root_directory
def get_directory_contents(directory_model):
    directory = Directory.get(Directory.key == directory_model.key)
    directories = Directory.select().where(Directory.parent_directory == directory.id)
    directory_model.directories = [directory for directory in directories]
    return directory_model