From 560961dc99322aeedd245764dff41624d4d0eb4a Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Tue, 23 Jun 2020 21:24:35 -0500 Subject: JSON: Add service support --- devel/image.yang | 17 +++++++++++++++++ tools/hscript-fromjson/jsonconv.cc | 12 ++++++++++++ 2 files changed, 29 insertions(+) diff --git a/devel/image.yang b/devel/image.yang index cd0069c..15af9f4 100644 --- a/devel/image.yang +++ b/devel/image.yang @@ -26,6 +26,9 @@ module horizon-image { revision 2020-06-22 { description "Add PPPoE configuration support." } + revision 2020-06-23 { + description "Add service enablement." + } typedef architecture { type enumeration { @@ -238,6 +241,20 @@ module horizon-image { type boolean; default false; } + container services { + list service { + key "service"; + + leaf service { + type string; + description "The name of the service to enable."; + } + leaf runlevel { + type string; + description "The runlevel to enable the service."; + } + } + } leaf netconfig { type netconfigtype; description diff --git a/tools/hscript-fromjson/jsonconv.cc b/tools/hscript-fromjson/jsonconv.cc index cbe6a60..1343a57 100644 --- a/tools/hscript-fromjson/jsonconv.cc +++ b/tools/hscript-fromjson/jsonconv.cc @@ -113,6 +113,18 @@ bool parse_one_desc(json desc, std::ostream &out) { #undef SIMPLE_PLURAL_KEY + if(desc.find("services") != desc.end()) { + for(const auto &svc : desc["services"]) { + ENSURE_KEY(svc, "service"); + std::string service = svc["service"].get(); + out << "svcenable " << svc; + if(svc.find("runlevel") != svc.end()) { + out << " " << svc["runlevel"].get(); + } + out << std::endl; + } + } + if(desc.find("users") != desc.end()) { for(const auto &user : desc["users"]) { if(user.find("username") == user.end()) { -- cgit v1.2.3-60-g2f50