Feature #12384
What's the correct behavior for module actions when dealing with multiple directories in a modulepath
| Status: | Merged - Pending Release | Start date: | 02/02/2012 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | modules | |||
| Target version: | 2.7.x | |||
| Affected Puppet version: | Branch: | |||
| Keywords: | geordi v1 | |||
| Votes: | 0 |
Description
If you run puppet module uninstall foo and foo is in multiple directories of the modulepath, should it uninstall both, or stop after uninstalling the first one? This question is also affected by the decision for how we deal with usage of the forge name vs the directory name for a module in #12381, and also applies to the upgrade action. If you have foo from different authors in different directories, then it may be that just specifying foo is insufficient to uninstall either and you need to say author1/foo.
Related issues
History
Updated by Matt Robinson 3 months ago
- Assignee set to Pieter van de Bruggen
Again, if you can update the decisions and reasoning behind decisions here that would be appreciated.
Updated by Pieter van de Bruggen 3 months ago
Preconditions:
/etc/puppet/modules/foo -> arthur-foo
/usr/share/puppet/modules/foo -> bea-foo
puppet module uninstall foo is expected to fail; there is no module named “foo” installed. The failure should suggest both arthur-foo and bea-foo as possible intentions.
puppet module uninstall arthur-foo should remove /etc/puppet/modules/foo.
puppet module uninstall bea-foo should remove /usr/share/puppet/modules/foo.
puppet module upgrade should behave similarly.
Preconditions:
/etc/puppet/modules/foo -> arthur-foo
/usr/share/puppet/modules/foo -> arthur-foo
puppet module uninstall foo is expected to fail; there is no module named “foo” installed. The failure should suggest arthur-foo as a possible intention.
puppet module uninstall arthur-foo should remove both /etc/puppet/modules/foo and /usr/share/puppet/modules/foo.
puppet module upgrade foo should behave like puppet module uninstall foo.
puppet module upgrade arthur-foo should upgrade /etc/puppet/modules/foo.
Preconditions:
/etc/puppet/modules/foo -> foo
/usr/share/puppet/modules/foo -> arthur-foo
puppet module uninstall foo should remove /etc/puppet/modules/foo.
puppet module uninstall arthur-foo should remove /usr/share/puppet/modules/foo.
puppet module upgrade foo should fail, indicating that the module foo cannot be upgraded.
puppet module upgrade arthur-foo should upgrade /usr/share/puppet/modules/foo.
Updated by Pieter van de Bruggen about 1 month ago
- Status changed from Needs More Information to In Topic Branch Pending Review
- Keywords changed from geordi to geordi v1
This was implemented as described.
Updated by Kelsey Hightower about 1 month ago
- Status changed from In Topic Branch Pending Review to Merged - Pending Release