Cleaner api request, logging and use absolute path for files
This commit is contained in:
parent
f007e56292
commit
0bf05dbad3
1 changed files with 21 additions and 8 deletions
25
main.py
25
main.py
|
@ -1,11 +1,25 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
|
import logging
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from re2oapi import Re2oAPIClient
|
from re2oapi import Re2oAPIClient
|
||||||
|
|
||||||
|
LOG_LEVEL = logging.INFO
|
||||||
|
|
||||||
|
logger = logging.getLogger()
|
||||||
|
logger.setLevel(LOG_LEVEL)
|
||||||
|
formatter = logging.Formatter('%(levelname)s :: %(message)s')
|
||||||
|
stream_handler = logging.StreamHandler()
|
||||||
|
stream_handler.setFormatter(formatter)
|
||||||
|
stream_handler.setLevel(LOG_LEVEL)
|
||||||
|
logger.addHandler(stream_handler)
|
||||||
|
|
||||||
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
config = ConfigParser()
|
config = ConfigParser()
|
||||||
config.read('config.ini')
|
config.read(os.path.join(BASE_DIR, 'config.ini'))
|
||||||
|
|
||||||
api_hostname = config.get('Re2o', 'hostname')
|
api_hostname = config.get('Re2o', 'hostname')
|
||||||
api_password = config.get('Re2o', 'password')
|
api_password = config.get('Re2o', 'password')
|
||||||
|
@ -34,7 +48,7 @@ def regen_dhcp(api_client):
|
||||||
ipv4=ipv4
|
ipv4=ipv4
|
||||||
) for hostname, mac_address, ipv4 in hmi_list)
|
) for hostname, mac_address, ipv4 in hmi_list)
|
||||||
|
|
||||||
filename = 'generated/dhcp{extension}.list'.format(extension=extension)
|
filename = os.path.join(BASE_DIR, 'generated/dhcp{extension}.list'.format(extension=extension))
|
||||||
with open(filename, 'w+') as f:
|
with open(filename, 'w+') as f:
|
||||||
f.write(dhcp_leases_content)
|
f.write(dhcp_leases_content)
|
||||||
|
|
||||||
|
@ -42,9 +56,8 @@ api_client = Re2oAPIClient(api_hostname, api_username, api_password)
|
||||||
|
|
||||||
client_hostname = socket.gethostname().split('.', 1)[0]
|
client_hostname = socket.gethostname().split('.', 1)[0]
|
||||||
|
|
||||||
for service in api_client.list("services/regen"):
|
for service in api_client.list("services/regen", params=dict(hostname=client_hostname)):
|
||||||
if service['hostname'] == client_hostname and \
|
if service['service_name'] == 'dhcp' and service['need_regen']:
|
||||||
service['service_name'] == 'dhcp' and \
|
logger.info("Regenerating service dhcp")
|
||||||
service['need_regen']:
|
|
||||||
regen_dhcp(api_client)
|
regen_dhcp(api_client)
|
||||||
api_client.patch(service['api_url'], data={'need_regen': False})
|
api_client.patch(service['api_url'], data={'need_regen': False})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue