Fix broken help commands for monasca-*

Call for:

* monasca-collector -h
* monasca-forwader -h
* monasca-statsd -h

was broken, as described in [1].

Commits removes usage of deprecated optparse in favor
of argparse.

Ref:
[1] https://storyboard.openstack.org/#!/story/2000995

Story: 2000998
Task: 4180
Change-Id: I8879f1f11a2502c180407c93e13d22451f6f2fa2
This commit is contained in:
Tomasz Trębski 2017-05-15 07:10:42 +02:00
parent e8b3aceedd
commit e099d074da
3 changed files with 24 additions and 24 deletions

View File

@ -163,7 +163,7 @@ class CollectorDaemon(monasca_agent.common.daemon.Daemon):
def main():
options, args = util.get_parsed_args()
options, args = util.get_parsed_args(prog='monasca-collector')
config = cfg.Config()
collector_config = config.get_config(['Main', 'Api', 'Logging'])
autorestart = collector_config.get('autorestart', False)

View File

@ -1,12 +1,12 @@
# (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
import argparse
import glob
import hashlib
import imp
import inspect
import itertools
import math
import optparse
import os
import platform
import re
@ -444,21 +444,18 @@ def get_hostname():
return hostname
def get_parsed_args():
parser = optparse.OptionParser()
parser.add_option('-c', '--clean', action='store_true', default=False, dest='clean')
parser.add_option('-v', '--verbose', action='store_true', default=False, dest='verbose',
help='Print out stacktraces for errors in checks')
parser.add_option('-f', '--config-file', default=None, dest='config_file',
help='Location for an alternate config rather than '
'using the default config location.')
def get_parsed_args(prog=None):
parser = argparse.ArgumentParser(prog=prog)
parser.add_argument('-c', '--clean', action='store_true', default=False, dest='clean')
parser.add_argument('-v', '--verbose', action='store_true', default=False, dest='verbose',
help='Print out stacktraces for errors in checks')
parser.add_argument('-f', '--config-file', default=None, dest='config_file',
help='Location for an alternate config rather than '
'using the default config location.')
try:
options, args = parser.parse_args()
except SystemExit:
# Ignore parse errors
options, args = optparse.Values({'clean': False}), []
return options, args
options = parser.parse_known_args(sys.argv[1:])
return options
def load_check_directory():

View File

@ -1,12 +1,13 @@
# -*- coding: latin-1 -*-
import unittest
import mock
import os.path
import tempfile
import unittest
from monasca_agent.common import config
from monasca_agent.common.config import Config
from monasca_agent.common.util import PidFile, is_valid_hostname
from monasca_agent.common import util
class TestConfig(unittest.TestCase):
@ -30,7 +31,7 @@ class TestConfig(unittest.TestCase):
pid_f.write(pid)
pid_f.close()
p = PidFile(program, pid_dir)
p = util.PidFile(program, pid_dir)
self.assertEqual(p.get_pid(), 666)
# clean up
@ -57,10 +58,10 @@ class TestConfig(unittest.TestCase):
]
for hostname in valid_hostnames:
self.assertTrue(is_valid_hostname(hostname), hostname)
self.assertTrue(util.is_valid_hostname(hostname), hostname)
for hostname in not_valid_hostnames:
self.assertFalse(is_valid_hostname(hostname), hostname)
self.assertFalse(util.is_valid_hostname(hostname), hostname)
def testConfigIsSingleton(self):
# create a temp conf file
@ -112,6 +113,8 @@ class TestConfig(unittest.TestCase):
self.assertEqual(config.DEFAULT_CONFIG_FILE, conf._configFile)
mock_os.path.exists.assert_called_once_with(config.DEFAULT_CONFIG_FILE)
if __name__ == '__main__':
unittest.main()
def test_verify_common_config_opts(self):
opts = util.get_parsed_args(prog='test')
opts_dict = vars(opts[0])
self.assertItemsEqual(['config_file', 'clean', 'verbose'],
opts_dict.keys())