[Fuel Plugins] Change deprecation warning on 6.0 Fuel Plugins into a more user-friendly and clear

Bug #1470211 reported by Fabrizio Soppelsa
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Confirmed
Medium
Fuel Python (Deprecated)
6.1.x
Won't Fix
Medium
Fuel Python (Deprecated)
7.0.x
Won't Fix
Medium
Fuel Python (Deprecated)

Bug Description

Currently, you can install 6.0 plugins at 6.1 Fuel (like in the output below).

To improve UX, we should:
- prevent users from installing 6.0 plugins at 6.1
- prevent users from installing 6.1 plugins at 7.0
- provide clear message that would point to fuel infra community catalog of fuel plugins

Sample message could look like:
DEPRECATION WARNING: The plugin has old format and is incompatible with 6.1. Please, look for a newer version in Fuel Plugins Community Catalog <https://www.fuel-infra.org/plugins/catalog.html>.

VERSION:
  feature_groups:
    - mirantis
  production: "docker"
  release: "6.1"
  openstack_version: "2014.2.2-6.1"
  api: "1.0"
  build_number: "525"
  build_id: "2015-06-19_13-02-31"

LBaaS plugin for 6.0

[root@fuel lbaas-1.0.0]# cat metadata.yaml | grep fuel_version
fuel_version: ['6.0']
[root@fuel tmp]# fuel plugins --install ./lbaas-1.0.0.fp
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will be used as the source for settings. This behavior is deprecated. Please specify the path to your custom settings file in the FUELCLIENT_CUSTOM_SETTINGS environment variable.
DEPRECATION WARNING: The plugin has old 1.0 package format, this format does not support many features, such as plugins updates, find plugin in new format or migrate and rebuild this one.
Plugin ./lbaas-1.0.0.fp was successfully installed.
[root@fuel tmp]# fuel plugins
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will be used as the source for settings. This behavior is deprecated. Please specify the path to your custom settings file in the FUELCLIENT_CUSTOM_SETTINGS environment variable.
id | name | version | package_version
---|-------|---------|----------------
1 | lbaas | 1.0.0 | 1.0.0

It is not recognized because of version incompatibility.
Shouldn't we prevent it to be installed at all then?

Changed in fuel-plugins:
importance: Undecided → High
Changed in fuel:
milestone: none → 7.0
tags: added: feature-plugins
Mike Scherbakov (mihgen)
Changed in fuel:
assignee: nobody → Fuel Python Team (fuel-python)
Changed in fuel:
status: New → Confirmed
Revision history for this message
Vladimir Sharshov (vsharshov) wrote :

If i correctly understand, we do such thing in case of upgrade. In 6.1 env we can support 6.0 and 6.1 environments.

You suggest to prevent installation if no supported releases was found in env, for example it is clean 6.1 installation?

Changed in fuel:
importance: Undecided → Medium
Revision history for this message
Sheena Conant (sheena-conant) wrote :

I had a discussion with Irina and Olena this morning and our suggestion is to update the deprecation warning to be explicit - i.e. if you are installing a plugin from scratch on MOS 6.1, it should say something to the effect of DEPRECATION WARNING: this plugin is incompatible with MOS 6.1 - please go to Fuel Plugin Catalog {link} to see if an updated version is available.

I think there is still work to be done on testing the upgrade use case with plugins (Oleg is documenting this/working on this now), but agree that making a previously compatible plugin unusable because the MOS version has been changed doesn't make much sense.

Fabrizio - would a more explicit deprecation warning be sufficient, from your perspective?

Revision history for this message
Fabrizio Soppelsa (fsoppelsa) wrote :

Sheena, from a customer/user standpoint, I'd expect if I download & install a plugin, it works.
And, if I download a plugin made specifically for 6.0 (not working on 6.1), and I attempt to install it on 6.1, it refuses to install warning the user: You should install this package {link} instead.

I tried to install LBaaS made for 6.0 on 6.1, it installed pretty smoothly, but it doesn't work. So is it a LBaaS plugin bug? I mean, will we make some plugins certified for 6.0+, so they can work on 6.0, 6.1, 6.2 and they should be installed on any version?

Revision history for this message
Fabrizio Soppelsa (fsoppelsa) wrote :

@Vladimir Sharshov, yes say you have a fresh 6.1, I'm trying to understand if the LBaaS I tried to install is not compatible with 6.1 or if it is just a bug in the plugin itself...

Revision history for this message
Irina Povolotskaya (ipovolotskaya) wrote :

Guys, we should:
- improve deprecation warning we have right now
- make it appear for 6.1 and future 7.0 Fuel.

What do we need to get in that very message:
- link to fuel-infra Plugins Catalog (as we have community iso as well, no Mirantis is okay here)
- no weird 'plugin package' and stuff like that - only clear end user instructions

I'm still not sure why we can install 6.0 plugins at 6.1 Fuel.

description: updated
Revision history for this message
Irina Povolotskaya (ipovolotskaya) wrote :

I edited the bug and reassigned to Fuel Project as well.

no longer affects: fuel-plugins
Revision history for this message
Sheena Conant (sheena-conant) wrote :

Fabrizio -

I understand your concern, but until we understand the upgrade path for a MOS + plugin deployment, I do not want to create any sort of inability to install the plugin in any environment. We can revisit this once we have confirmed the behavior of a MOS + plugin environment upgrade.

Specifically: if a customer has a 6.0 environment with a plugin and then we upgrade to MOS 6.1 and there is an incompatibility specified, what would happen to the plugin running on the 6.0 environment? If the user wants to keep both their 6.0 environment and create new environments, how do we account for application plugins which the user might want to install that would be compatible with their original environment? Long-term we want to support the ability for a user to add non-core plugins to an environment after the deployment is complete. There maybe metadata living in the fuel-master node that knows which environments it is capable of supporting and we could map plugin installation to that, but it still wouldn't cover your exact use case (i.e. a user could still install a plugin that is not compatible with their new environment - 6.1 - and get confused/not be able to use it even though it is usable in their old environment - 6.0). This use case needs to be explored thoroughly before we make any decisions on preventing a plugin from installing.

If we are specifying compatibility both in the plugin catalog AND in a deprecation warning, I think that is sufficient for now.

Revision history for this message
Irina Povolotskaya (ipovolotskaya) wrote :

I renamed the bug a bit, just to be more specific.

summary: - Don't install not compatible plugins
+ [Fuel Plugins] Change deprecation warning on 6.0 Fuel Plugins into a
+ more user-friendly and clear
Revision history for this message
Vladimir Sharshov (vsharshov) wrote :

Not affect deployment/plugin installation. Small problem with UX. Moved to 8.0

tags: added: tech-debt
Changed in fuel:
milestone: 7.0 → 8.0
no longer affects: fuel/8.0
Revision history for this message
Vitaly Sedelnik (vsedelnik) wrote :

Won't Fix for 7.0-updates and 6.1-updates because of Medium importance

Revision history for this message
Kyrylo Romanenko (kromanenko) wrote :

This bug also affects 7.0 GA when user installs plugin designed for MOS6.1.
Here is no clear warning about incompatibility.

# fuel plugins --install zabbix_monitoring-1.0.0.noarch.rpm
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will be used as the source for settings. This behavior is deprecated. Please specify the path to your custom settings file in the FUELCLIENT_CUSTOM_SETTINGS environment variable.
Loaded plugins: fastestmirror, priorities
Setting up Install Process
Examining zabbix_monitoring-1.0.0.noarch.rpm: zabbix_monitoring-1.0-1.0.0-1.noarch
Marking zabbix_monitoring-1.0.0.noarch.rpm to be installed
Loading mirror speeds from cached hostfile
mos7.0-security | 2.9 kB 00:00
mos7.0-security/primary_db | 1.1 kB 00:00
mos7.0-updates | 2.9 kB 00:00
mos7.0-updates/primary_db | 1.1 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package zabbix_monitoring-1.0.noarch 0:1.0.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package Arch Version Repository Size
======================================================================================================================================================
Installing:
 zabbix_monitoring-1.0 noarch 1.0.0-1 /zabbix_monitoring-1.0.0.noarch 12 M

Transaction Summary
======================================================================================================================================================
Install 1 Package(s)

Total size: 12 M
Installed size: 12 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : zabbix_monitoring-1.0-1.0.0-1.noarch 1/1
  Verifying : zabbix_monitoring-1.0-1.0.0-1.noarch 1/1

Installed:
  zabbix_monitoring-1.0.noarch 0:1.0.0-1

Complete!
Plugin zabbix_monitoring-1.0.0.noarch.rpm was successfully installed.

description: updated
Dmitry Pyzhov (dpyzhov)
tags: removed: tech-debt
Dmitry Pyzhov (dpyzhov)
Changed in fuel:
milestone: 7.0-updates → 8.0
no longer affects: fuel/8.0.x
Dmitry Pyzhov (dpyzhov)
tags: added: area-python
Revision history for this message
Alexander Kislitsky (akislitsky) wrote :

We passed SCF in 8.0. Moving the bug to 9.0.

Changed in fuel:
milestone: 8.0 → 9.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.