Synchronize a Repository¶
Users can populate their repositories with content from an external sources by syncing their repository.
1. Create a Repository¶
Start by creating a new repository named "foo":
pulp gem repository create --name foo
{
"pulp_href": "/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/",
"pulp_created": "2023-06-22T20:54:27.113947Z",
"versions_href": "/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/versions/",
"pulp_labels": {},
"latest_version_href": "/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/versions/0/",
"name": "foo",
"description": null,
"retain_repo_versions": null,
"remote": null
}
2. Create a Remote¶
Create a remote that syncs all versions of the panda
gem into your repository.
pulp gem remote create --name gem --url https://index.rubygems.org/ --includes '{"panda":null}'
Note
You can also not specify anything in includes
and have Pulp try to sync all gems available on the remote.
includes
and excludes
fields are JSON dictionaries with the key being the gem name and the value being the version specifier string, or null
for syncing all versions.
{
"pulp_href": "/pulp/api/v3/remotes/gem/gem/0188e505-157c-7565-8474-e607e0dbc4a0/",
"pulp_created": "2023-06-22T21:31:35.676442Z",
"name": "gem",
"url": "https://index.rubygems.org",
"ca_cert": null,
"client_cert": null,
"tls_validation": true,
"proxy_url": null,
"pulp_labels": {},
"pulp_last_updated": "2023-06-22T21:31:35.676454Z",
"download_concurrency": null,
"max_retries": null,
"policy": "immediate",
"total_timeout": null,
"connect_timeout": null,
"sock_connect_timeout": null,
"sock_read_timeout": null,
"headers": null,
"rate_limit": null,
"hidden_fields": [...],
"prereleases": false,
"includes": {
"panda": null
},
"excludes": null
}
3. Sync repository foo with remote¶
Use the remote object to kick off a synchronize task by specifying the repository to sync with. You are telling pulp to fetch content from the remote and add to the repository:
pulp gem repository sync --name foo --remote gem
pulp gem repository version show --repository foo
Note
The sync
command will by default wait for the sync to complete.
Use Ctrl+c
or the -b
option to send the task to the background.
{
"pulp_href": "/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/versions/1/",
"pulp_created": "2023-06-22T21:40:00.488466Z",
"number": 1,
"repository": "/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/",
"base_version": null,
"content_summary": {
"added": {
"gem.gem": {
"count": 33,
"href": "/pulp/api/v3/content/gem/gem/?repository_version_added=/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/versions/1/"
}
},
"removed": {},
"present": {
"gem.gem": {
"count": 33,
"href": "/pulp/api/v3/content/gem/gem/?repository_version=/pulp/api/v3/repositories/gem/gem/0188e4e3-1429-7411-89d7-c87288edf51a/versions/1/"
}
}
}
}