From 89e8f70de00db52a8d6121c5b83c1f0b1b41e26c Mon Sep 17 00:00:00 2001 From: Jason Dellaluce Date: Tue, 13 Sep 2022 08:50:29 +0000 Subject: [PATCH] refactor(userspace/engine): clean up and rename rule reader Signed-off-by: Jason Dellaluce --- userspace/engine/rule_loader_reader.cpp | 36 +++++++++++++------------ userspace/engine/rule_loader_reader.h | 17 +++++++----- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/userspace/engine/rule_loader_reader.cpp b/userspace/engine/rule_loader_reader.cpp index d57d7818..fa2fd3a9 100644 --- a/userspace/engine/rule_loader_reader.cpp +++ b/userspace/engine/rule_loader_reader.cpp @@ -14,11 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -#include "rule_reader.h" +#include +#include -#define THROW(cond, err, ctx) { if ((cond)) { throw rule_loader::rule_load_exception(load_result::LOAD_ERR_YAML_VALIDATE, (err), (ctx)); } } +#include "rule_loader_reader.h" + +#define THROW(cond, err, ctx) { if ((cond)) { throw rule_loader::rule_load_exception(falco::load_result::LOAD_ERR_YAML_VALIDATE, (err), (ctx)); } } -using namespace falco; // Don't call this directly, call decode_val/decode_optional_val instead. template @@ -241,7 +243,7 @@ static void read_rule_exceptions( static void read_item( rule_loader::configuration& cfg, - rule_loader& loader, + rule_loader::collector& collector, const YAML::Node& item, const rule_loader::context& parent) { @@ -255,7 +257,7 @@ static void read_item( rule_loader::engine_version_info v(ctx); decode_val(item, "required_engine_version", v.version, ctx); - loader.define(cfg, v); + collector.define(cfg, v); } else if(item["required_plugin_versions"].IsDefined()) { @@ -296,7 +298,7 @@ static void read_item( } } - loader.define(cfg, v); + collector.define(cfg, v); } } else if(item["list"].IsDefined()) @@ -317,11 +319,11 @@ static void read_item( if(append) { - loader.append(cfg, v); + collector.append(cfg, v); } else { - loader.define(cfg, v); + collector.define(cfg, v); } } else if(item["macro"].IsDefined()) @@ -345,11 +347,11 @@ static void read_item( if(append) { - loader.append(cfg, v); + collector.append(cfg, v); } else { - loader.define(cfg, v); + collector.define(cfg, v); } } else if(item["rule"].IsDefined()) @@ -379,7 +381,7 @@ static void read_item( v.cond_ctx = rule_loader::context(item["condition"], rule_loader::context::RULE_CONDITION, "", ctx); } read_rule_exceptions(item, v, ctx, append); - loader.append(cfg, v); + collector.append(cfg, v); } else { @@ -394,7 +396,7 @@ static void read_item( !item["priority"].IsDefined()) { decode_val(item, "enabled", v.enabled, ctx); - loader.enable(cfg, v); + collector.enable(cfg, v); } else { @@ -421,18 +423,18 @@ static void read_item( decode_optional_val(item, "skip-if-unknown-filter", v.skip_if_unknown_filter, ctx); decode_tags(item, v.tags, ctx); read_rule_exceptions(item, v, ctx, append); - loader.define(cfg, v); + collector.define(cfg, v); } } } else { rule_loader::context ctx(item, rule_loader::context::RULES_CONTENT_ITEM, "", parent); - cfg.res->add_warning(load_result::LOAD_UNKNOWN_ITEM, "Unknown top level item", ctx); + cfg.res->add_warning(falco::load_result::LOAD_UNKNOWN_ITEM, "Unknown top level item", ctx); } } -bool rule_reader::load(rule_loader::configuration& cfg, rule_loader& loader) +bool rule_loader::reader::read(rule_loader::configuration& cfg, collector& collector) { std::vector docs; try @@ -442,7 +444,7 @@ bool rule_reader::load(rule_loader::configuration& cfg, rule_loader& loader) catch(const exception& e) { rule_loader::context ctx(cfg.name); - cfg.res->add_error(load_result::LOAD_ERR_YAML_PARSE, e.what(), ctx); + cfg.res->add_error(falco::load_result::LOAD_ERR_YAML_PARSE, e.what(), ctx); return false; } @@ -465,7 +467,7 @@ bool rule_reader::load(rule_loader::configuration& cfg, rule_loader& loader) { if (!it->IsNull()) { - read_item(cfg, loader, *it, ctx); + read_item(cfg, collector, *it, ctx); } } } diff --git a/userspace/engine/rule_loader_reader.h b/userspace/engine/rule_loader_reader.h index b3e94341..8dc3f02c 100644 --- a/userspace/engine/rule_loader_reader.h +++ b/userspace/engine/rule_loader_reader.h @@ -16,22 +16,25 @@ limitations under the License. #pragma once -#include -#include -#include #include "rule_loader.h" +#include "rule_loader_collector.h" + +namespace rule_loader +{ /*! \brief Reads the contents of a ruleset */ -class rule_reader +class reader { public: - virtual ~rule_reader() = default; + virtual ~reader() = default; /*! - \brief Reads the contents of a ruleset and uses a loader to store + \brief Reads the contents of a ruleset and uses a collector to store thew new definitions */ - virtual bool load(rule_loader::configuration& cfg, rule_loader& loader); + virtual bool read(configuration& cfg, collector& loader); }; + +}; // namespace rule_loader \ No newline at end of file