Detect invalid collectors.
The program would blow up anyway, but provide users with a more friendly error message. Change-Id: If70fc27b61963058af036568b88535b7f2dcff3f
This commit is contained in:
parent
ba6c781db0
commit
140e527458
|
@ -106,8 +106,15 @@ def collect_all(collectors, store=False, requests_impl_map=None):
|
|||
def __main__(args=sys.argv, requests_impl_map=None):
|
||||
setup_conf()
|
||||
CONF(args=args[1:], prog="os-collect-config")
|
||||
|
||||
log.setup("os-collect-config")
|
||||
|
||||
unknown_collectors = set(CONF.collectors) - set(DEFAULT_COLLECTORS)
|
||||
if unknown_collectors:
|
||||
raise exc.InvalidArguments(
|
||||
'Unknown collectors %s. Valid collectors are: %s' %
|
||||
(list(unknown_collectors), DEFAULT_COLLECTORS))
|
||||
|
||||
(any_changed, content) = collect_all(cfg.CONF.collectors,
|
||||
store=bool(CONF.command),
|
||||
requests_impl_map=requests_impl_map)
|
||||
|
|
|
@ -16,3 +16,7 @@ class CfnMetadataNotConfigured(SourceNotAvailable):
|
|||
|
||||
class HeatLocalMetadataNotAvailable(SourceNotAvailable):
|
||||
"""The local Heat metadata is not available."""
|
||||
|
||||
|
||||
class InvalidArguments(ValueError):
|
||||
"""Invalid arguments."""
|
||||
|
|
|
@ -24,6 +24,7 @@ import testtools
|
|||
from testtools import matchers
|
||||
|
||||
from os_collect_config import collect
|
||||
from os_collect_config import exc
|
||||
from os_collect_config.tests import test_cfn
|
||||
from os_collect_config.tests import test_ec2
|
||||
from os_collect_config.tests import test_heat_local
|
||||
|
@ -126,6 +127,10 @@ class TestCollect(testtools.TestCase):
|
|||
self.assertIn('ec2', out_struct)
|
||||
self.assertIn('cfn', out_struct)
|
||||
|
||||
def test_main_invalid_collector(self):
|
||||
fake_args = ['os-collect-config', 'invalid']
|
||||
self.assertRaises(exc.InvalidArguments, self._call_main, fake_args)
|
||||
|
||||
|
||||
class TestCollectAll(testtools.TestCase):
|
||||
def setUp(self):
|
||||
|
|
Loading…
Reference in New Issue