#!/usr/bin/python3

import sys

from netops.ngcs import (
    client,
    models,
    logic,
)

remote_ag_service = models.FirewallService({
    "name": "nom-ag-lhvpn",
    "label": "NetOps Automation Gateway - Remote Service",
    "ports": [{"protocol": "tcp", "port": 9045}]
})

api_sess = client.Api(
    address=sys.argv[1],
    cert=(sys.argv[2], sys.argv[3]),
)

api_sess.update_firewall_service(remote_ag_service)
lhvpn_zone = logic.find_firewall_zone(api_sess.get_firewall_zones(), name='lhvpn')

try:
    logic.find_firewall_rule(api_sess.get_firewall_rules(), service=remote_ag_service.name, zone=lhvpn_zone.id)
except logic.NotFoundException:
    api_sess.post_firewall_rule(models.FirewallRule({"service": remote_ag_service.name, "zone": lhvpn_zone.id}))
