Issue #6644
Updated by mdepaulo@redhat.com over 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.)