I need to generate a *.yaml file using the yaml-cpp library. I have prepared sample code. I managed almost everything, but I have a problem with saving the configuration routes:
- to: 0.0.0.0 via: 1.1.1.1 How to generate it with yaml-cpp?
tyYAML::Node root;
root["network"] = YAML::Node(YAML::NodeType::Map);
YAML::Node versionNode = root["network"];
versionNode["version"] = "2";
versionNode["renderer"] = "NetworkManager";
versionNode["ethernets"] = YAML::Node(YAML::NodeType::Map);
YAML::Node interfaceNode = versionNode["ethernets"];;
interfaceNode["enps31f6"] = YAML::Node(YAML::NodeType::Map);
YAML::Node dhcpNode = interfaceNode["enps31f6"];
dhcpNode["addresses"].push_back("192.168.1.123");
YAML::Node dhcp4Node = interfaceNode["enps31f6"];
dhcp4Node["dhcp4"] = "true";
YAML::Node dhcp4overridesNode = interfaceNode["enps31f6"];
dhcp4overridesNode["dhcp4-overrides"] = YAML::Node(YAML::NodeType::Map);
YAML::Node useDnsNode = dhcp4overridesNode["dhcp4-overrides"];
useDnsNode["use-dns"] = "true";
useDnsNode["use-routes"] = "true";
YAML::Node gatewayNode = interfaceNode["enps31f6"];
gatewayNode["gateway4"] = "192.168.1.1";
YAML::Node nameserversNode = interfaceNode["enps31f6"];
nameserversNode["nameservers"] = YAML::Node(YAML::NodeType::Map);
YAML::Node addressessNode = nameserversNode["nameservers"];
addressessNode["addresses"].push_back("0.0.0.0");
addressessNode["addresses"].push_back("8.8.8.8");
YAML::Node routesNode = interfaceNode["enps31f6"];
routesNode["routes"] = YAML::Node(YAML::NodeType::Map);
YAML::Node toNode = routesNode["routes"];
toNode["to"] = YAML::Node(YAML::NodeType::Map);
toNode["to"] = "3.3.3.3";
//routesNode["routes"].push_back(toNode);
// YAML::Node viaNode;
// viaNode["via"] = "9.9.9.9";
// routesNode["routes"] = viaNode;
YAML::Emitter emitter;
emitter << root;
// zapis pliku
QFile file("/etc/netplan/test.yaml");
if(file.open(QIODevice::ReadWrite))
{
QTextStream stream(&file);
stream << emitter.c_str();
ui->dataOutputTextBrowser->append("save file");
}
else
{
ui->dataOutputTextBrowser->clear();
ui->dataOutputTextBrowser->append("no file");
}pe here
Up to this point the file formats correctly but I don't know about routes: -to: via: Thanks for advices