# Path: autonetkit/render/node/base.py
# class NodeRenderer:
#     """
# 
#     """
# 
#     def __init__(self, env: Environment):
#         self.env: Environment = env
# 
#     @abc.abstractmethod
#     def render(self, node: Node) -> Dict:
#         """
# 
#         @param node:
#         """
#         pass
# 
# Path: autonetkit/render/types.py
# class RenderedFileEntry(NamedTuple):
#     body: str
#     path: Optional[str]
#     filename: str


from typing import Dict, List
from autonetkit.render.node.base import NodeRenderer
from autonetkit.render.types import RenderedFileEntry



class QuaggaRenderer(NodeRenderer):
    def render(self, data: Dict) -> List[RenderedFileEntry]:
        """

        @param data:
        @return:
        """
        result = []
        quagga_path = "etc/quagga"

        zebra_template = self.env.get_template("quagga/zebra.conf")
        result.append(RenderedFileEntry(
            zebra_template.render(node=data),
            quagga_path,
            "zebra.conf"))

        ospfd_template = self.env.get_template("quagga/ospfd.conf")

# Path: autonetkit/render/node/base.py
# class NodeRenderer:
#     """
# 
#     """
# 
#     def __init__(self, env: Environment):
#         self.env: Environment = env
# 
#     @abc.abstractmethod
#     def render(self, node: Node) -> Dict:
#         """
# 
#         @param node:
#         """
#         pass
# 
# Path: autonetkit/render/types.py
# class RenderedFileEntry(NamedTuple):
#     body: str
#     path: Optional[str]
#     filename: str


# Path: autonetkit/render/node/quagga.py
from typing import Dict, List
from autonetkit.render.node.base import NodeRenderer
from autonetkit.render.types import RenderedFileEntry




class QuaggaRenderer(NodeRenderer):
    def render(self, data: Dict) -> List[RenderedFileEntry]:
        """

        @param data:
        @return:
        """
        result = []
        quagga_path = "etc/quagga"

        zebra_template = self.env.get_template("quagga/zebra.conf")
        result.append(RenderedFileEntry(
            zebra_template.render(node=data),
            quagga_path,
            "zebra.conf"))

        ospfd_template = self.env.get_template("quagga/ospfd.conf")

        result.append(RenderedFileEntry(