Required OpenStack services

Should we define a minimum set of OpenStack services that are required for ManageIQ operation?

For example, The ManageIQ “Smart State Analysis” feature (fleecing) requires the Glance Image service. If Glance is not available, the Image functionality available through Nova does not provide the functionality we need to implement the feature. So, If Glance is optional, then fleecing must be optional too, and code must be added to ManageIQ to conditionally enable/disable the feature accordingly.

There are similar issues surrounding the refresh/discovery feature. For example, the metadata items returned for a Volume by Cinder, differs from those returned through Nova. So, if Cinder is optional, then the data items collected per volume would vary as well - unless we only support the least common set of data.

There are other issues as well, but the above is enough to illustrate the need to explicitly define the set of OpenStack services ManageIQ can assume will always be available.


@rpo , do you see the disabled fleecing functionality due to Glance being unavailable looking any different than, for instance, the way it looks when there is no VixDiskLib installed? There might be other plug-ins required to make fleecing work with other providers that I am not as of yet aware of, as well.

The main difference is VixDiskLib is per-appliance, while the Glance issue is per-provider. So the feature may be enabled for some OpenStack providers, but not others.

Got it. That is different. It might be nice to have a “one-stop-shopping” place to go to see what optional features are and aren’t enabled and why

Well, If a provider doesn’t have the required services we could just prevent the provider from being added. That’s only if we can require services that are optional in OpenStack.

It doesn’t seem right to arbitrarily decide that a certain provider can not be added simply because the back-end to support 1 functionality is not there. You have providers for which “fleecing” is not there and yet ManageIQ provides a whole set of valuable functionality to its users.

If a user wants to point ManageIQ to a provider and that provider is configured so that it either only exposes a limited set of data or it only supports a limited set of features, then the ManageIQ UI should be able to quickly let the user understand those limitation but it should not disable the use of that provider (for instance as today where it will not enable the “Analyze VM” button if the libraries are not installed locally in the appliance.

Thanks for the input Xav.

While I agree, unfortunately this is an “easier said than done” situation. Fleecing isn’t the main issue. It can be disabled at a high-level fairly cleanly. It’s the disparity in the available data that concerns me most. Conditionalizing all data collection will complicate things greatly.

I still think it will be useful to have an official statement of what services are required by ManageIQ, even if it’s only Compute (Nova). Then we can start defining how ManageIQ should handle the optional services.