def test_migrate_versionfilter(self): m = migrater.Migrater("src", "dst") m.gather("openexr", "2019") current_version = constants.VERSIONS[ constants.ImageType.PACKAGE]["openexr"][1] self.assertEqual(len(m.migration_list), 1) minfo = m.migration_list[0] self.assertEqual(minfo.image, "ci-package-openexr") self.assertEqual(minfo.version, "2019.1") self.assertEqual( minfo.source, f"{constants.DOCKER_REGISTRY}/src/ci-package-openexr:{current_version}", ) self.assertEqual( minfo.destination, f"{constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version}", ) m.migrate(dry_run=True) self.assertEqual( m.cmds, [ f"docker pull {constants.DOCKER_REGISTRY}/src/ci-package-openexr:{current_version}", f"docker tag {constants.DOCKER_REGISTRY}/src/ci-package-openexr:{current_version} {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version}", f"docker tag {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version} {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:2019", f"docker tag {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version} {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:latest", f"docker push {constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version}", ], )
def migrate(from_org, to_org, package, version, dry_run): """Migrates packages from a dockerhub org to another. """ m = migrater.Migrater(from_org, to_org) m.gather(package, version) if not click.confirm( "Are you sure you want to migrate the following {} packages?\n{}\n".format( len(m.migration_list), "\n".join(f"{mi.source} -> {mi.destination}" for mi in m.migration_list), ) ): return m.migrate(dry_run)
def test_migrate_versionfilter(self): m = migrater.Migrater("src", "dst") m.gather("openexr", "2019") current_version = list( index.Index().iter_versions(constants.ImageType.PACKAGE, "openexr") )[1] self.assertEqual(len(m.migration_list), 1) minfo = m.migration_list[0] self.assertEqual(minfo.image, "ci-package-openexr") oexr_version = list( index.Index().iter_versions(constants.ImageType.PACKAGE, "openexr") )[1] self.assertEqual(minfo.version, oexr_version) self.assertEqual( minfo.source, f"{constants.DOCKER_REGISTRY}/src/ci-package-openexr:{current_version}", ) self.assertEqual( minfo.destination, f"{constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version}", ) m.migrate(dry_run=True) reg = constants.DOCKER_REGISTRY self.assertEqual( m.cmds, [ f"docker pull {reg}/src/ci-package-openexr:{current_version}", f"docker tag {reg}/src/ci-package-openexr:{current_version} " f"{reg}/dst/ci-package-openexr:{current_version}", f"docker push {reg}/dst/ci-package-openexr:{current_version}", f"docker tag {reg}/dst/ci-package-openexr:{current_version} " f"{reg}/dst/ci-package-openexr:2019", f"docker push {reg}/dst/ci-package-openexr:2019", f"docker tag {reg}/dst/ci-package-openexr:{current_version} " f"{reg}/dst/ci-package-openexr:latest", f"docker push {reg}/dst/ci-package-openexr:latest", ], )
def test_migrate_pkgfilter(self): m = migrater.Migrater("src", "dst") m.gather("openexr", "") self.assertEqual(len(m.migration_list), 3)
def test_migrate_nofilter(self): m = migrater.Migrater("src", "dst") m.gather("", "") self.assertGreater(len(m.migration_list), 10)