Project

Profile

Help

Issue #6644

Updated by mdepaulo@redhat.com almost 4 years ago

Consider the following scenario: 
 1. Pulp 3.2.1, pulp-file 0.2, & pulp-container 1.2.0 were installed. 
 2. The user runs the latest pulp_installer (3.3) with the following pulp_install_plugins, which is missing pulp_container: 
 ``` 
 pulp_install_plugins: 
   pulp-file:  
   version: "0.3" 
 ``` 

 This causes the following to happen 
 1. The pre-flight (`pip-compile`) check determines that pulp-file 0.3 is compatible with pulpcore 3.3.0, and passes. 
 2. It sees pulp-container 1.2.0 in the old requirements.txt, and removes it from the new requirements.txt it just generated. This is because assumes that the user means to uninstall pulp-container, which its countainerpart `pip-sync` would do  
 3. pulp_installer uses `pip` commands to perform the install/upgrade instead. (Pulp doesn't support uninstalling plugins, 
 4. The installer later fails with an import error due to pulp-container still being an old incompatible version. 


 Users can work around this currently by making sure to specify all installed plugins in pulp_install_plugins. 

 We need to fix this by adding any missing installed plugins, not found in pulp_install_plugins, to requirements.in. We need to normalize their names with dashes (pip / pypi converts underscores to dashes.) dashes. And we need to search for plugins named like "pulp-*", but we may make exceptions (for galaxy_ng.)

Back