|
import json
|
|
|
|
from pulpcore.client.pulpcore import (
|
|
ApiClient as CoreApiClient,
|
|
Configuration,
|
|
)
|
|
from pulpcore.client.pulp_file import (
|
|
ApiClient as RpmApiClient,
|
|
ContentFilesApi,
|
|
RepositoriesFileApi,
|
|
RepositoriesFileVersionsApi
|
|
)
|
|
from pulpcore.client.pulp_2to3_migration import (
|
|
ApiClient as MigrationApiClient,
|
|
MigrationPlansApi
|
|
)
|
|
from pulp_smash.pulp3.bindings import monitor_task
|
|
|
|
|
|
import socket
|
|
|
|
configuration = Configuration()
|
|
configuration.username = 'admin'
|
|
configuration.password = 'password'
|
|
configuration.host = 'http://{}:24817'.format(socket.gethostname())
|
|
configuration.safe_chars_for_path_param = '/'
|
|
|
|
|
|
FILE_MIGRATION_PLAN = json.dumps({
|
|
"plugins": [{
|
|
"type": "iso",
|
|
"repositories": [
|
|
{"name": "file23456", "pulp2_importer_repository_id": "file2", "repository_versions": [{"pulp2_repository_id": "file2", "pulp2_distributor_repository_ids": ["file2"]}]},
|
|
]
|
|
}]
|
|
})
|
|
|
|
FILE_MIGRATION_PLAN_NEW_NAME = json.dumps({
|
|
"plugins": [{
|
|
"type": "iso",
|
|
"repositories": [
|
|
{"name": "file2", "pulp2_importer_repository_id": "file2", "repository_versions": [{"pulp2_repository_id": "file2", "pulp2_distributor_repository_ids": ["file2"]}]},
|
|
]
|
|
}]
|
|
})
|
|
|
|
core_client = CoreApiClient(configuration)
|
|
rpm_client = RpmApiClient(configuration)
|
|
migration_client = MigrationApiClient(configuration)
|
|
|
|
# Create api clients for all resource types
|
|
file_repo_api = RepositoriesFileApi(rpm_client)
|
|
file_repo_versions_api = RepositoriesFileVersionsApi(rpm_client)
|
|
file_content_api = ContentFilesApi(rpm_client)
|
|
migration_plans_api = MigrationPlansApi(migration_client)
|
|
|
|
mp = migration_plans_api.create({'plan': FILE_MIGRATION_PLAN})
|
|
mp2 = migration_plans_api.create({'plan': FILE_MIGRATION_PLAN_NEW_NAME})
|
|
|
|
mp_run_response = migration_plans_api.run(mp.pulp_href, {})
|
|
task = monitor_task(mp_run_response.task)
|
|
|
|
mp_run_response = migration_plans_api.run(mp2.pulp_href, {})
|
|
task = monitor_task(mp_run_response.task)
|
|
|
|
repos = file_repo_api.list().results
|
|
|
|
print(repos)
|
|
|
|
assert len(repos) == 1
|
|
|
|
assert repos[0].name == 'file2'
|
|
|
|
repo_version_href = file_repo_versions_api.list(repos[0].pulp_href).results[0].pulp_href
|
|
repo_version_content = file_content_api.list(repository_version=repo_version_href)
|
|
|
|
assert repo_version_content.count == 3
|