DOMAIN_ENABLED=True
/pulp/content/MYDOMAIN/foo-repo/
/pulp/MYDOMAIN/api/v3/remotes/
default
, and private
domainadmin
(the instance-admin), robert
(an rpm-admin for domain "private") and norm
(no access to anything)default-repo
, with associated Remote and Distribution#!/usr/bin/bash echo ">>> Show USERS:" echo "pulp user list | jq '.[] | .username'" pulp user list | jq '.[] | .username' echo ">>> Show DOMAINS:" echo "pulp domain list | jq '.[] | {name, description}'" pulp domain list | jq '.[] | {name, description, pulp_href}' echo ">>> Show ROLES:" for u in robert norm do echo ">>> USER ${u}:" echo "pulp user role-assignment list \ --username ${u} | jq '.[] | .role, .domain'" pulp user role-assignment list \ --username ${u} | jq '.[] | {role, domain}' done echo ">>> Show REPOSITORIES:" for d in $(pulp domain list | jq -r '.[] | .name') do echo "pulp --domain ${d} repository list | jq '.[] | {name, pulp_href}'" pulp --domain "${d}" repository list | jq '.[] | {name, pulp_href}' done
#!/usr/bin/bash echo ">>> Create default Remote" pulp rpm remote create \ --name ${DEFAULT_REPO} \ --url https://fixtures.pulpproject.org/rpm-signed/ \ --policy on_demand echo ">>> Create default Repository" pulp rpm repository create --name ${DEFAULT_REPO} --remote ${DEFAULT_REPO} --autopublish echo ">>> Sync default Repository" pulp rpm repository sync --name ${DEFAULT_REPO} echo ">>> Create user 'robert'" pulp user create --username robert --password ${ROBERT_PWD} echo ">>> Create user 'norm'" pulp user create --username norm --password ${NORM_PWD} echo ">>> Create Domain ${PRIVATE_DOMAIN}" pulp domain create \ --name ${PRIVATE_DOMAIN} \ --description "robert's domain" \ --storage-class pulpcore.app.models.storage.FileSystem \ --storage-settings "{\"MEDIA_ROOT\": \"/var/lib/pulp/media/\"}" echo ">>> Give 'robert' rpm.admin in ${PRIVATE_DOMAIN}" pulp user role-assignment add --username robert --role "rpm.admin" --domain ${PRIVATE_DOMAIN} echo ">>> Role Assignments:" for u in robert norm do echo "USER ${u}:" pulp user role-assignment list --username ${u} | jq '.[] | .role, .domain' done
#!/usr/bin/bash echo ">>> TRY: robert, create repo in default - ERR..." pulp --username robert --password ${ROBERT_PWD} rpm repository create --name ${PRIVATE_REPO} echo ">>> TRY: robert, create repo in private - SUCCEED..." pulp --domain ${PRIVATE_DOMAIN} --username robert --password ${ROBERT_PWD} rpm repository create --name ${PRIVATE_REPO} --autopublish pulp --domain ${PRIVATE_DOMAIN} --username robert --password ${ROBERT_PWD} rpm distribution create --name ${PRIVATE_REPO} --repository ${PRIVATE_REPO} --base-path ${PRIVATE_REPO} echo ">>> TRY: norm, read repo in default - ERR..." pulp --username norm --password ${NORM_PWD} rpm repository show --name ${DEFAULT_REPO} echo ">>> TRY: admin, copy content from default to private - ERR..." export DEFAULT_REMOTE_HREF=$(pulp rpm remote show --name ${DEFAULT_REPO} | jq -r .pulp_href) pulp --domain ${PRIVATE_DOMAIN} rpm repository sync --repository ${PRIVATE_REPO} --remote ${DEFAULT_REMOTE_HREF} echo ">>> TRY: admin, find package-by-name - SUCCEED..." pulp rpm content list --name zebra echo ">>> TRY: robert, find same name - ERR..." pulp --username robert --password ${ROBERT_PWD} rpm content list --name zebra echo ">>> TRY: robert, upload same-name RPM to private repo, then access artifact - SUCCEED..." pulp --domain ${PRIVATE_DOMAIN} --username robert --password ${ROBERT_PWD} rpm content upload --repository ${PRIVATE_REPO} --file ./zebra-0.1-2.noarch.rpm pulp --domain ${PRIVATE_DOMAIN} --username robert --password ${ROBERT_PWD} rpm publication create --repository ${PRIVATE_REPO} pulp --domain ${PRIVATE_DOMAIN} --username robert --password ${ROBERT_PWD} rpm content list --name zebra echo ">>> TRY: using wget on private-domain distribution - SUCCEED..." http http://localhost:5001/pulp/content/private/private/
#!/usr/bin/bash # Delete created repos, users, and domains echo ">>> Destroy ${PRIVATE_DOMAIN}-domain objects..." pulp rpm repository destroy --name ${DEFAULT_REPO} pulp rpm remote destroy --name ${DEFAULT_REPO} echo ">>> Destroy ${PRIVATE_DOMAIN}-domain objects..." pulp --domain ${PRIVATE_DOMAIN} rpm distribution destroy --name ${PRIVATE_REPO} pulp --domain ${PRIVATE_DOMAIN} rpm repository destroy --name ${PRIVATE_REPO} echo ">>> Destroy ${PRIVATE_DOMAIN}..." pulp domain destroy --name ${PRIVATE_DOMAIN} echo ">>> Destroy Users..." pulp user destroy --username robert pulp user destroy --username norm