ManageIQ / manageiq

ManageIQ Open-Source Management Platform
https://manageiq.org
Apache License 2.0
1.34k stars 896 forks source link

[Providers] Pluggability Checklist #19440

Open agrare opened 4 years ago

agrare commented 4 years ago

This is an ongoing list of items which need to be extracted out of core repos (manageiq, manageiq-api, manageiq-ui) and into plugins.

A continuation of https://github.com/ManageIQ/manageiq/issues/14840

Specs

Providers

UI

agrare commented 4 years ago

cc @Fryguy @chessbyte

juliancheal commented 4 years ago

One thing @agrare is removing the need to check node_types (in core, I guess) i.e. "nodes" (openstack) or "hosts" (non-openstack) for instance here https://github.com/ManageIQ/manageiq/blob/master/app/models/host.rb#L1722-L1744

agrare commented 4 years ago

That's a good one @juliancheal, we can probably just drop the title_for_host and title_for_clusters methods in the UI then those methods aren't needed at all

Fryguy commented 4 years ago

I had spoken to @chessbyte about that with respect to his EmsCluster changes (see here), and we came up with 2 possibilities

chessbyte commented 4 years ago

Created https://github.com/ManageIQ/manageiq/issues/19469 for refactoring VmScan code.

carbonin commented 4 years ago

@agrare Does https://github.com/ManageIQ/manageiq/pull/19536 solve the worker definitions bullet or is that more complicated?

agrare commented 4 years ago

@carbonin that absolutely covers that case

NickLaMuro commented 4 years ago

@agrare This exists, which I am currently working on:

https://github.com/ManageIQ/manageiq-gems-pending/issues/403

Not sure where it fits into what you have at the moment. Sorry it took me so long to figure the git-stuff out for that...

agrare commented 4 years ago

Awesome thanks @NickLaMuro, added to the list and linked to your issue.

NickLaMuro commented 4 years ago

For what it is worth, for the end goal of that ticket item:

Move provider specifics from MiqFileStorage into their respective provider repos e.g. miq_s3_storage.rb/miq_swift_storage.rb (ManageIQ/manageiq-gems-pending#403) @NickLaMuro

That PR doesn't complete that, but just moves it back into the main repo via:

https://github.com/ManageIQ/manageiq/pull/19547

Moving the swift and s3 parts to their respective provide repos is a different step all together, and figuring out how we make those "pluggable" is something I haven't quite figured out yet, and might require a bit of discussion. I might try tackling that once the two above are merged though.

Fryguy commented 4 years ago

Moving the swift and s3 parts to their respective provide repos is a different step all together, and figuring out how we make those "pluggable" is something I haven't quite figured out yet, and might require a bit of discussion. I might try tackling that once the two above are merged though.

This is one of those weird cases where even though it's S3, it's been argued that it doesn't belong in the amazon provider. The reasoning is that someone could use S3 as a File Depot, without requiring an Amazon provider and vice versa. This is sort of an independent pluggable thing. I didn't think this way previously, but now I'm leaning more towards that way.

skateman commented 4 years ago

I got a green light from @Fryguy to move decorators, we might introduce external tests from the decorator library repo for providers using a similar approach to https://github.com/ManageIQ/manageiq/blob/master/lib/tasks/test_providers_common.rake https://github.com/ManageIQ/manageiq/blob/master/spec/models/event_stream_spec.rb

Fryguy commented 4 years ago

I added a "Decorators" bullet to the checklist in the OP. @skateman Be sure that if there are any patterned changes that all providers need to implement, that they are first implemented in the provider generator and then blasted out to all existing providers.

Fryguy commented 4 years ago

Merged #20595, but wasn't sure which checklist item above to check off

agrare commented 4 years ago

@Fryguy linked the pr and checked it off