#! /usr/bin/python3

# Copyright (c) 2019-2020 AT&T Intellectual Property.
# All rights reserved.
# SPDX-License-Identifier: GPL-2.0-only

import vci
import vyatta.vrrp_vci.vyatta_vrrp_vci as vrrp
import vyatta.vrrp_vci.keepalived.config_file as impl_conf
import vyatta.vrrp_vci.abstract_vrrp_classes as abstract_impl

if __name__ == "__main__":
    keepalived_implementation: abstract_impl.ConfigFile \
        = impl_conf.KeepalivedConfig()
    config_obj: vci.Config = vrrp.Config(keepalived_implementation)
    state_obj: vci.State = vrrp.State(keepalived_implementation)
    url: str = "net.vyatta.vci.vrrp"
    namespace_v1: str = "vyatta-vrrp-v1"
    (vci.Component(url)
        .model(vci.Model(f"{url}.v1")
               .config(config_obj)
               .state(state_obj)
               .rpc(namespace_v1, "garp", vrrp.send_garp)
               .rpc(namespace_v1, "rfc-intf-map", vrrp.rfc_intf_map))
        .run()
        .wait())
