Debut de conf , templates de switchs hp
This commit is contained in:
parent
979accb43f
commit
a9ccc6ae82
2 changed files with 102 additions and 31 deletions
47
main.py
47
main.py
|
@ -4,6 +4,8 @@ import socket
|
|||
|
||||
from re2oapi import Re2oAPIClient
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
|
||||
config = ConfigParser()
|
||||
config.read('config.ini')
|
||||
|
||||
|
@ -11,40 +13,23 @@ api_hostname = config.get('Re2o', 'hostname')
|
|||
api_password = config.get('Re2o', 'password')
|
||||
api_username = config.get('Re2o', 'username')
|
||||
|
||||
def regen_dhcp(api_client):
|
||||
host_mac_ip = {}
|
||||
|
||||
for hmi in api_client.list("dhcp/hostmacip/"):
|
||||
if hmi['extension'] not in host_mac_ip.keys():
|
||||
host_mac_ip[hmi['extension']] = []
|
||||
host_mac_ip[hmi['extension']].append((hmi['hostname'],
|
||||
hmi['mac_address'],
|
||||
hmi['ipv4']))
|
||||
|
||||
template = ("host {hostname}{extension} {{\n"
|
||||
" hardware ethernet {mac_address};\n"
|
||||
" fixed-address {ipv4};\n"
|
||||
"}}")
|
||||
|
||||
for extension, hmi_list in host_mac_ip.items():
|
||||
dhcp_leases_content = '\n\n'.join(template.format(
|
||||
hostname=hostname,
|
||||
extension=extension,
|
||||
mac_address=mac_address,
|
||||
ipv4=ipv4
|
||||
) for hostname, mac_address, ipv4 in hmi_list)
|
||||
|
||||
filename = 'dhcp{extension}.list'.format(extension=extension)
|
||||
with open(filename, 'w+') as f:
|
||||
f.write(dhcp_leases_content)
|
||||
|
||||
api_client = Re2oAPIClient(api_hostname, api_username, api_password)
|
||||
|
||||
client_hostname = socket.gethostname().split('.', 1)[0]
|
||||
|
||||
for service in api_client.list("services/regen"):
|
||||
#if service['hostname'] == client_hostname and \
|
||||
# service['service_name'] == 'dhcp' and \
|
||||
# service['need_regen']:
|
||||
regen_dhcp(api_client)
|
||||
api_client.patch(service['api_url'], data={'need_regen': False})
|
||||
all_switchs = api_client.list("switchs/ports-config/")
|
||||
|
||||
|
||||
# Création de l'environnement Jinja
|
||||
ENV = Environment(loader=FileSystemLoader('.'))
|
||||
|
||||
# Import du fichier template dans une variable "template"
|
||||
template = ENV.get_template("templates/hp_test.tpl")
|
||||
|
||||
# Création du template final avec les valeurs contenues dans le dictionnaire "valeurs" - Ces valeurs sont positionnées dans un objet "temp", qui sera utilisé par le moteur, et que l'on retrouve dans le template.
|
||||
conf = template.render(switch=all_switchs[2])
|
||||
|
||||
print(all_switchs[2])
|
||||
print(conf)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue