registerups: Reworked configuration parsing.
It looks more complicated, but contains error handling.
This commit is contained in:
parent
34fc66d20e
commit
098714d37d
|
@ -2,7 +2,6 @@
|
|||
# IP addres or hostname of UPS SNMP card
|
||||
address = 192.168.0.105
|
||||
# TCP port
|
||||
# default - 3052
|
||||
port = 3052
|
||||
# Secret phrase for software authentication. This value must be the
|
||||
# same as configured on the UPS web interface
|
||||
|
|
|
@ -78,30 +78,52 @@ class cps_ups:
|
|||
def help():
|
||||
print('Usage: ' + sys.argv[0] + ' <path-to-configuration-file>')
|
||||
|
||||
configuration_structure = {'UPS': ['address',
|
||||
'secret_key',
|
||||
'port'],
|
||||
'HOST': ['ip_address',
|
||||
'shutdown_time',
|
||||
'delay_time',
|
||||
'hostname',
|
||||
'outlet_id',
|
||||
'bank_id',
|
||||
'isps',
|
||||
'contact',
|
||||
'location',
|
||||
'bedt']}
|
||||
try:
|
||||
configfile = sys.argv[1]
|
||||
except IndexError:
|
||||
help()
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.isfile(configfile):
|
||||
print('Error: configuration file ' + configfile + ' doesn\'t exists')
|
||||
sys.exit(2)
|
||||
configuration = {}
|
||||
try:
|
||||
config = configparser.ConfigParser()
|
||||
config.read(configfile)
|
||||
for section in configuration_structure:
|
||||
configuration[section] = {}
|
||||
for param in configuration_structure[section]:
|
||||
configuration[section][param] = config.get(section, param)
|
||||
except (configparser.NoOptionError,
|
||||
configparser.MissingSectionHeaderError,
|
||||
configparser.ParsingError) as err:
|
||||
print('Configuration file parsing error:\n' + str(err))
|
||||
sys.exit(3)
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(configfile)
|
||||
u = cps_ups(address = configuration['UPS']['address'],
|
||||
secret_key = configuration['UPS']['secret_key'],
|
||||
port = int(configuration['UPS']['port']))
|
||||
|
||||
u = cps_ups(address = config.get('UPS', 'address'),
|
||||
secret_key = config.get('UPS','secret_key'),
|
||||
port = int(config.get('UPS', 'port', fallback='3052')))
|
||||
|
||||
u.register(ip_address = config.get('HOST','ip_address'),
|
||||
shutdown_time = config.get('HOST','shutdown_time'),
|
||||
delay_time = config.get('HOST','delay_time'),
|
||||
hostname = config.get('HOST','hostname'),
|
||||
outlet_id = config.get('HOST','outlet_id'),
|
||||
bank_id = config.get('HOST','bank_id'),
|
||||
isps = config.get('HOST','isps'),
|
||||
contact = config.get('HOST','contact'),
|
||||
location = config.get('HOST','location'),
|
||||
bedt = config.get('HOST','bedt'))
|
||||
u.register(ip_address = configuration['HOST']['ip_address'],
|
||||
shutdown_time = configuration['HOST']['shutdown_time'],
|
||||
delay_time = configuration['HOST']['delay_time'],
|
||||
hostname = configuration['HOST']['hostname'],
|
||||
outlet_id = configuration['HOST']['outlet_id'],
|
||||
bank_id = configuration['HOST']['bank_id'],
|
||||
isps = configuration['HOST']['isps'],
|
||||
contact = configuration['HOST']['contact'],
|
||||
location = configuration['HOST']['location'],
|
||||
bedt = configuration['HOST']['bedt'])
|
||||
|
|
Loading…
Reference in New Issue