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
This commit is contained in:
Matt Thompson 2017-06-23 11:40:13 -04:00
parent f655761212
commit 98cb350edc
9 changed files with 36 additions and 9 deletions

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {

View File

@ -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': {