From 98cb350edc54e3ed1c727c0cafb48da2bbc947f0 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Fri, 23 Jun 2017 11:40:13 -0400 Subject: [PATCH] Only import os_utils when plugin is called Currently, if a dependency of one of the os_ plugins is missing, running monitorstack with no args returns (for example): ``` OpenStack plugins require access to the OpenStackSDK. \ Please install "python-openstacksdk". \ ERROR: No module named keystoneauth1.loading ``` This commit moves the os_utils import in the os_ plugins to within cli, similar to what is being done in the kvm module. This allows the monitorstack cli to operate normally even if a plugin cannot be loaded. Change-Id: I2ff1ad8c6365f6592191f09ea9c0d543f81e16ba --- monitorstack/plugins/os_block_pools_totals.py | 5 ++++- monitorstack/plugins/os_block_pools_usage.py | 5 ++++- monitorstack/plugins/os_vm_quota_cores.py | 5 ++++- monitorstack/plugins/os_vm_quota_instance.py | 5 ++++- monitorstack/plugins/os_vm_quota_ram.py | 5 ++++- monitorstack/plugins/os_vm_used_cores.py | 5 ++++- monitorstack/plugins/os_vm_used_disk.py | 5 ++++- monitorstack/plugins/os_vm_used_instance.py | 5 ++++- monitorstack/plugins/os_vm_used_ram.py | 5 ++++- 9 files changed, 36 insertions(+), 9 deletions(-) diff --git a/monitorstack/plugins/os_block_pools_totals.py b/monitorstack/plugins/os_block_pools_totals.py index 94fe228..683a0b1 100644 --- a/monitorstack/plugins/os_block_pools_totals.py +++ b/monitorstack/plugins/os_block_pools_totals.py @@ -17,7 +17,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get block storage totals from the available pools.""" @@ -33,6 +32,10 @@ def cli(ctx, config_file): """Get nova cores quotas.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_block_pools_usage.py b/monitorstack/plugins/os_block_pools_usage.py index 2b566c6..f4635f4 100644 --- a/monitorstack/plugins/os_block_pools_usage.py +++ b/monitorstack/plugins/os_block_pools_usage.py @@ -17,7 +17,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get block storage usage from the available pools.""" @@ -33,6 +32,10 @@ def cli(ctx, config_file): """Get nova cores quotas.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_quota_cores.py b/monitorstack/plugins/os_vm_quota_cores.py index e3fd589..e7fbb19 100644 --- a/monitorstack/plugins/os_vm_quota_cores.py +++ b/monitorstack/plugins/os_vm_quota_cores.py @@ -17,7 +17,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova cores quotas.""" @@ -33,6 +32,10 @@ def cli(ctx, config_file): """Get nova cores quotas.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_quota_instance.py b/monitorstack/plugins/os_vm_quota_instance.py index 6b48b9b..652a2a1 100644 --- a/monitorstack/plugins/os_vm_quota_instance.py +++ b/monitorstack/plugins/os_vm_quota_instance.py @@ -17,7 +17,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova instance quotas.""" @@ -33,6 +32,10 @@ def cli(ctx, config_file): """Get nova instance quotas.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_quota_ram.py b/monitorstack/plugins/os_vm_quota_ram.py index 54a7e40..125656f 100644 --- a/monitorstack/plugins/os_vm_quota_ram.py +++ b/monitorstack/plugins/os_vm_quota_ram.py @@ -17,7 +17,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova ram quotas.""" @@ -33,6 +32,10 @@ def cli(ctx, config_file): """Get nova ram quotas.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_used_cores.py b/monitorstack/plugins/os_vm_used_cores.py index db05f07..8185446 100644 --- a/monitorstack/plugins/os_vm_used_cores.py +++ b/monitorstack/plugins/os_vm_used_cores.py @@ -19,7 +19,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova used cores.""" @@ -35,6 +34,10 @@ def cli(ctx, config_file): """Get nova used cores.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_used_disk.py b/monitorstack/plugins/os_vm_used_disk.py index a71111e..0d662f6 100644 --- a/monitorstack/plugins/os_vm_used_disk.py +++ b/monitorstack/plugins/os_vm_used_disk.py @@ -19,7 +19,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova used disk.""" @@ -35,6 +34,10 @@ def cli(ctx, config_file): """Get nova used disk.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_used_instance.py b/monitorstack/plugins/os_vm_used_instance.py index 511f719..9264694 100644 --- a/monitorstack/plugins/os_vm_used_instance.py +++ b/monitorstack/plugins/os_vm_used_instance.py @@ -19,7 +19,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova used instances.""" @@ -35,6 +34,10 @@ def cli(ctx, config_file): """Get nova used instances.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': { diff --git a/monitorstack/plugins/os_vm_used_ram.py b/monitorstack/plugins/os_vm_used_ram.py index 1ce299b..a8967c9 100644 --- a/monitorstack/plugins/os_vm_used_ram.py +++ b/monitorstack/plugins/os_vm_used_ram.py @@ -19,7 +19,6 @@ import click from monitorstack import utils from monitorstack.cli import pass_context -from monitorstack.utils import os_utils as ost DOC = """Get nova used ram.""" @@ -35,6 +34,10 @@ def cli(ctx, config_file): """Get nova used ram.""" setattr(cli, '__doc__', DOC) + # Lower level import because we only want to load this module + # when this plugin is called. + from monitorstack.utils import os_utils as ost + output = { 'measurement_name': COMMAND_NAME, 'meta': {