Exemplo n.º 1
0
def evolve(root, config=None):
    from papaye.models import Root, Package, Release, ReleaseFile, User
    new_root = Root()
    new_root['repository'] = Root()
    context = context_from_root(root)
    for package_name in context.get('repository', tuple()):
        package = context['repository'][package_name]
        new_root['repository'][package_name] = Package(package.name)

        for release_name in package.releases:
            release = package[release_name]
            try:
                new_root['repository'][package_name][release_name] = Release(
                    release.__name__, release.__name__, release.original_metadata
                )
                for release_filename in release.release_files:
                    release_file = release[release_filename]
                    new_root['repository'][package_name][release_name][release_filename] = ReleaseFile(
                        release_file.filename, release_file.content.open().read(), release_file.md5_digest,
                        release_file.status,
                    )
            except:
                print('{} v{} is corrupt! He won\'t be imported'.format(package.__name__, release.__name__))
    new_root['user'] = Root()
    for username in context.get('user', tuple()):
        user = context['user'][username]
        new_user = User('', '')
        new_user.username = user.username
        new_user.password = user.password
        new_user.groups = user.groups
        new_root['user'][username] = new_user
    root[APP_ROOT_NAME] = new_root
    context.evolved = 6
    return context