Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate multiple Azure plugins into AzCloud #164

Open
susam opened this issue Jul 19, 2019 · 0 comments
Open

Consolidate multiple Azure plugins into AzCloud #164

susam opened this issue Jul 19, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@susam
Copy link
Member

susam commented Jul 19, 2019

We seem to be having a proliferation of Azure cloud plugins. The Azure cloud plugins are heavyweight plugins because they launch multiple workers and threads. They also have overlapping concerns. For example, all of them iterate over all the subscriptions. Sometimes two of them iterate on the same type of resource. There is also a high configuration overhead because the same Azure credentials would need to be entered for each cloud plugin in the config file.

I am thinking we should change the AzCloud design a little bit so that the functionality of all other plugins become part of AzCloud plugin. Here's my proposal:

  • Move azsql.py, azvm.py, azwebapp, etc. to a library package, say, azreaders or azlib.
  • These individual modules no longer launch multiple threads and processes. They just yield each record in a single threaded manner.
  • AzCloud's worker method, i.e., _get_resources() invokes these modules in multiple processes and threads to retrieve the data.
  • The functionality of an individual module can be turned on and off via AzCloud's __init__() parameters. For example, in the params config of AzCloud, we can specify that things like we want azsql data to be pulled but we do not want azvm data to be pulled.

Note that we are similarly having a proliferation of event plugins but I think that's fine because the concerns of event plugins are much more isolated and they are very lightweight too.

This is a significant change, so I am looking for a consensus on this idea. If we have consensus, I am willing to perform the entire change myself, or if you prefer, distribute the change among ourselves.

@susam susam added the enhancement New feature or request label Jul 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant