mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
Add --log-level command line option to filter out log messages from lower log levels. Then fix the annoying CzechLight warning message and useless "NACM config validation" log. Then add audit trail as we have in netopeer2-server, and finish off by stripping redundant fields from log message: timestamp, identity, and log level. Fixes #892 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
97 lines
3.8 KiB
Diff
97 lines
3.8 KiB
Diff
From f58dc52c4e7445a06484bce0bbfeac831004ce02 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <tomas.pecka@cesnet.cz>
|
|
Date: Tue, 25 Mar 2025 11:06:26 +0100
|
|
Subject: [PATCH 35/42] restconf: refactor getting datastore from string
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
Organization: Wires
|
|
|
|
This will be useful when processing YANG push requests.
|
|
|
|
Change-Id: I1e76335c8d674e81890d6cd1e973adaf521eb205
|
|
Signed-off-by: Mattias Walström <lazzer@gmail.com>
|
|
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
|
---
|
|
src/restconf/uri.cpp | 19 +++++--------------
|
|
src/restconf/utils/sysrepo.cpp | 16 ++++++++++++++++
|
|
src/restconf/utils/sysrepo.h | 1 +
|
|
3 files changed, 22 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/src/restconf/uri.cpp b/src/restconf/uri.cpp
|
|
index 99c3d1f..6143435 100644
|
|
--- a/src/restconf/uri.cpp
|
|
+++ b/src/restconf/uri.cpp
|
|
@@ -17,6 +17,7 @@
|
|
#include "restconf/Exceptions.h"
|
|
#include "restconf/uri.h"
|
|
#include "restconf/uri_impl.h"
|
|
+#include "restconf/utils/sysrepo.h"
|
|
#include "restconf/utils/yang.h"
|
|
|
|
using namespace std::string_literals;
|
|
@@ -298,21 +299,11 @@ std::optional<sysrepo::Datastore> datastoreFromApiIdentifier(const boost::option
|
|
return std::nullopt;
|
|
}
|
|
|
|
- if (*datastore->prefix == "ietf-datastores") {
|
|
- if (datastore->identifier == "running") {
|
|
- return sysrepo::Datastore::Running;
|
|
- } else if (datastore->identifier == "operational") {
|
|
- return sysrepo::Datastore::Operational;
|
|
- } else if (datastore->identifier == "candidate") {
|
|
- return sysrepo::Datastore::Candidate;
|
|
- } else if (datastore->identifier == "startup") {
|
|
- return sysrepo::Datastore::Startup;
|
|
- } else if (datastore->identifier == "factory-default") {
|
|
- return sysrepo::Datastore::FactoryDefault;
|
|
- }
|
|
+ try {
|
|
+ return datastoreFromString(*datastore->prefix + ":"s + datastore->identifier);
|
|
+ } catch (const std::runtime_error&) {
|
|
+ throw ErrorResponse(400, "application", "operation-failed", "Unsupported datastore " + *datastore->prefix + ":" + datastore->identifier);
|
|
}
|
|
-
|
|
- throw ErrorResponse(400, "application", "operation-failed", "Unsupported datastore " + *datastore->prefix + ":" + datastore->identifier);
|
|
}
|
|
|
|
std::optional<std::variant<libyang::Module, libyang::SubmoduleParsed>> getModuleOrSubmodule(const libyang::Context& ctx, const std::string& name, const std::optional<std::string>& revision)
|
|
diff --git a/src/restconf/utils/sysrepo.cpp b/src/restconf/utils/sysrepo.cpp
|
|
index 622ab27..9f14cc7 100644
|
|
--- a/src/restconf/utils/sysrepo.cpp
|
|
+++ b/src/restconf/utils/sysrepo.cpp
|
|
@@ -22,4 +22,20 @@ ScopedDatastoreSwitch::~ScopedDatastoreSwitch()
|
|
m_session.switchDatastore(m_oldDatastore);
|
|
}
|
|
|
|
+sysrepo::Datastore datastoreFromString(const std::string& datastore)
|
|
+{
|
|
+ if (datastore == "ietf-datastores:running") {
|
|
+ return sysrepo::Datastore::Running;
|
|
+ } else if (datastore == "ietf-datastores:operational") {
|
|
+ return sysrepo::Datastore::Operational;
|
|
+ } else if (datastore == "ietf-datastores:candidate") {
|
|
+ return sysrepo::Datastore::Candidate;
|
|
+ } else if (datastore == "ietf-datastores:startup") {
|
|
+ return sysrepo::Datastore::Startup;
|
|
+ } else if (datastore == "ietf-datastores:factory-default") {
|
|
+ return sysrepo::Datastore::FactoryDefault;
|
|
+ }
|
|
+
|
|
+ throw std::runtime_error("Unknown datastore '" + datastore + "'");
|
|
+}
|
|
}
|
|
diff --git a/src/restconf/utils/sysrepo.h b/src/restconf/utils/sysrepo.h
|
|
index da6c359..0eced9e 100644
|
|
--- a/src/restconf/utils/sysrepo.h
|
|
+++ b/src/restconf/utils/sysrepo.h
|
|
@@ -26,4 +26,5 @@ public:
|
|
ScopedDatastoreSwitch& operator=(ScopedDatastoreSwitch&&) = delete;
|
|
};
|
|
|
|
+sysrepo::Datastore datastoreFromString(const std::string& datastore);
|
|
}
|
|
--
|
|
2.43.0
|
|
|