Bug 1175493
| Summary: | pulp puppet directory import does not delete missing files | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Michael Hrivnak <mhrivnak> |
| Component: | Pulp | Assignee: | satellite6-bugs <satellite6-bugs> |
| Status: | CLOSED ERRATA | QA Contact: | jcallaha |
| Severity: | medium | Docs Contact: | |
| Priority: | high | ||
| Version: | Unspecified | CC: | bbuckingham, bkearney, bmbouter, daviddavis, dkliban, ggainey, ipanova, jcallaha, katello-bugs, katello-qa-list, mhrivnak, pcreech, peter.vreman, pthomas, rchan, sthirugn, ttereshc |
| Target Milestone: | Unspecified | Keywords: | Reopened, Triaged |
| Target Release: | Unused | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 1131146 | Environment: | |
| Last Closed: | 2016-07-27 09:12:34 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1131146, 1145719 | ||
| Bug Blocks: | 950746, 1122832, 1131148, 1175448 | ||
verified [root@cloud-qe-4 modules]# rpm -qa pulp-server pulp-server-2.6.0-0.5.beta.el7.noarch [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# rpm -qa |grep puppet pulp-puppet-admin-extensions-2.6.0-0.5.beta.el7.noarch pulp-puppet-tools-2.6.0-0.5.beta.el7.noarch python-pulp-puppet-common-2.6.0-0.5.beta.el7.noarch pulp-puppet-plugins-2.6.0-0.5.beta.el7.noarch puppet-3.6.2-3.el7.noarch [root@cloud-qe-4 modules]# Here are the steps I followed 1. Enable remove_missing in puppet_importer.json $ sudo mkdir -p /opt/puppet/modules $ sudo chmod -R 777 /opt/puppet $ cd /opt/puppet $ pulp-puppet-module-builder --url=https://github.com/puppetlabs/puppetlabs-xinetd -o ../modules $ pulp-puppet-module-builder --working-dir=/opt/puppet --output-dir=/opt/puppet/modules --clean --url=https://github.com/puppetlabs/puppetlabs-mcollective.git -t 2.0.0 $pulp-admin puppet repo sync run --repo-id=puppet-builds Now I removed the puppetlabs-mcollective-2.0.0.tar.gz $ rm -rf puppetlabs-mcollective-2.0.0.tar.gz Also removed it from the PULP_MANIFEST Now ran pulp-admin puppet repo sync run --repo-id=puppet-builds listing puppet repo shows that the module is removed from the repo [root@cloud-qe-4 modules]# ls PULP_MANIFEST puppetlabs-inifile-1.1.3.tar.gz puppetlabs-xinetd-1.4.0.tar.gz reidmv-mco_profile-0.1.0.tar.gz [root@cloud-qe-4 modules]# vi PULP_MANIFEST [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# rm -rf reidmv-mco_profile-0.1.0.tar.gz [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# pulp-admin puppet repo sync run --repo-id=puppet-builds +----------------------------------------------------------------------+ Synchronizing Repository [puppet-builds] +----------------------------------------------------------------------+ This command may be exited via ctrl+c without affecting the request. Downloading metadata... [==================================================] 100% Metadata Query: 1/1 items ... completed Downloading new modules... [==================================================] 100% Module: 0/0 items ... completed Task Succeeded Publishing modules... [==================================================] 100% Module: 2/2 items ... completed Generating repository metadata... [-] ... completed Publishing repository over HTTP... ... completed Publishing repository over HTTPS... ... skipped Task Succeeded [root@cloud-qe-4 modules]# pulp-admin puppet repo list +----------------------------------------------------------------------+ Puppet Repositories +----------------------------------------------------------------------+ Id: repo1 Display Name: Repo 1 Description: Mirror of Puppet Forge Content Unit Counts: Puppet Module: 1835 Id: puppet-builds Display Name: puppet-builds Description: None Content Unit Counts: Puppet Module: 2 [root@cloud-qe-4 modules]# rpm -qa pulp-server pulp-server-2.6.0-0.5.beta.el7.noarch [root@cloud-qe-4 modules]# [root@cloud-qe-4 modules]# Moved to https://pulp.plan.io/issues/645 Since this issue was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release. The Pulp upstream bug status is at CLOSED - CURRENTRELEASE. Updating the external tracker on this bug. Verified in Satellite 6.2 Beta Snap 12. This functionality is now working correctly when manually managing uploaded puppet modules in a repo. Additionally, I feel it would be very beneficial to be able to filter puppet repositories in Satellite like you can with pulp-admin. pulp-admin puppet repo update --repo-id=repo1 --queries=libvirt Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2016:1501 |
I was not able to reproduce the bug. Here are the approaches I took: I added the following to the puppet_importer.json { "remove_missing": "True" } Then I ran 3 commands: pulp-admin puppet repo create --repo-id=repo1 --description="Mirror of Puppet Forge" --display-name="Repo 1" --feed=http://forge.puppetlabs.com pulp-admin puppet repo update --repo-id=repo1 --queries=libvirt pulp-admin puppet repo sync run --repo-id=repo1 The three commands above created a repository with 8 modules. Then I ran the following commands: pulp-admin puppet repo update --repo-id=repo1 --queries=libvirttttttt pulp-admin puppet repo sync run --repo-id=repo1 This produced an empty repository because nothing matched the query. I didn't see any tracebacks in the logs. I then attempted to reproduce this bug without modifying the --querries attribute of the repo. pulp-admin puppet repo create --repo-id=repo1 --description="Mirror of Puppet Forge" --display-name="Repo 1" --feed=http://forge.puppetlabs.com pulp-admin puppet repo update --repo-id=repo1 --queries=libvirt pulp-admin puppet repo sync run --repo-id=repo1 pulp-admin puppet repo create --repo-id=repo1 --description="Mirror of repo1" --display-name="Repo 2" --feed=http://localhost/pulp/puppet/repo1 pulp-admin puppet repo sync run --repo-id=repo2 After running the above commands I had 2 repositories with 8 modules. Then I ran the following 3 commands: pulp-admin puppet repo update --repo-id=repo1 --queries=libvirttttttt pulp-admin puppet repo sync run --repo-id=repo1 pulp-admin puppet repo sync run --repo-id=repo2 This produced two repos that were empty. Once again - I didn't see any tracebacks. I also tried manually removing modules from a repository and then synced from it without seeing this bug.