def METHOD_NAME(self, template):
    dom = etree.parse(template)
    self.root_path = dom.xpath("//tftp/tftp_root_path/text()")[0].lower()
    if len(dom.xpath("//tftp/add_src/text()")) == 0:
        self.add_src = None
    else:
        self.add_src = dom.xpath("//tftp/add_src/text()")[0].lower()
    self.data_fs_subdir = dom.xpath("//tftp/data_fs_subdir/text()")[0].lower()
    # Create a file system.
    self.vfs, self.data_fs = conpot_core.add_protocol(
        protocol_name="tftp",
        data_fs_subdir=self.data_fs_subdir,
        vfs_dst_path=self.root_path,
        src_path=self.add_src,
    )
    if self.add_src:
        logger.info(
            "TFTP Serving File System from {} at {} in vfs. TFTP data_fs sub directory: {}".format(
                self.add_src, self.root_path, self.data_fs._sub_dir
            )
        )
    else:
        logger.info(
            "TFTP Serving File System at {} in vfs. TFTP data_fs sub directory: {}".format(
                self.root_path, self.data_fs._sub_dir
            )
        )
    logger.debug(
        "TFTP serving list of files : {}".format(", ".join(self.vfs.listdir(".")))
    )
    self.root = "/"  # Setup root dir.
    # check for permissions etc.
    logger.debug(
        "TFTP root {} is a directory".format(self.vfs.getcwd() + self.root)
    )
    if self.vfs.access(self.root, 0, os.R_OK):
        logger.debug(
            "TFTP root {} is readable".format(self.vfs.getcwd() + self.root)
        )
    else:
        raise TftpException("The TFTP root must be readable")
    if self.vfs.access(self.root, 0, os.W_OK):
        logger.debug(
            "TFTP root {} is writable".format(self.vfs.getcwd() + self.root)
        )
    else:
        logger.warning(
            "The TFTP root {} is not writable".format(self.vfs.getcwd() + self.root)
        )