From 85c672644184888e397815a9ca42d4d2e0271b7c Mon Sep 17 00:00:00 2001
From: amichelo <andrea.michelotti@lnf.infn.it>
Date: Fri, 12 Nov 2021 13:37:53 +0100
Subject: [PATCH] newUS

---
 .../configuration/GlobalConfiguration.cpp       |  2 +-
 chaos_service_common/ChaosManager.cpp           | 17 +++++++++++++++++
 chaos_service_common/ChaosManager.h             |  3 +++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/chaos/common/configuration/GlobalConfiguration.cpp b/chaos/common/configuration/GlobalConfiguration.cpp
index cf4a4ed20..98f4dcfe0 100644
--- a/chaos/common/configuration/GlobalConfiguration.cpp
+++ b/chaos/common/configuration/GlobalConfiguration.cpp
@@ -449,7 +449,7 @@ void GlobalConfiguration::fillKVParameter(std::map<std::string, std::string>& kv
         
         const std::string& kv_param_value = *it;
         
-        if(regex.size() &&
+        if(regex.size() &&kv_param_value.size()&&
            !boost::regex_match(kv_param_value,
                                boost::regex(regex))) {
                std::stringstream ss;
diff --git a/chaos_service_common/ChaosManager.cpp b/chaos_service_common/ChaosManager.cpp
index 266cb06f8..857033faa 100644
--- a/chaos_service_common/ChaosManager.cpp
+++ b/chaos_service_common/ChaosManager.cpp
@@ -19,6 +19,7 @@
 #include <ChaosMetadataService/api/unit_server/GetSetFullUnitServer.h>
 #include <ChaosMetadataService/api/unit_server/LoadUnloadControlUnit.h>
 #include <ChaosMetadataService/api/unit_server/ManageCUType.h>
+#include <ChaosMetadataService/api/unit_server/NewUS.h>
 
 #include <ChaosMetadataService/api/agent/CheckAgentHostedProcess.h>
 #include <ChaosMetadataService/api/agent/GetAgentForNode.h>
@@ -1071,6 +1072,22 @@ chaos::common::data::CDWUniquePtr ChaosManager::nodeDelete(const std::string& ui
   }
   return res;
 }
+chaos::common::data::CDWUniquePtr ChaosManager::newUS(const std::string& uid,const std::string&desc){
+CDWUniquePtr res;
+  if (persistence_driver) {
+    NewUS node;
+    CALC_EXEC_START;
+    ChaosUniquePtr<chaos::common::data::CDataWrapper> message(new CDataWrapper());
+    
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, uid);
+    message->addStringValue(NodeDefinitionKey::NODE_DESC, desc);
+
+    res = node.execute(MOVE(message));
+    CALC_EXEC_END
+  }
+    return res;
+
+}
 
 chaos::common::data::CDWUniquePtr ChaosManager::nodeNew(const std::string& uid, const chaos::common::data::CDataWrapper& value, const std::string parent) {
   CDWUniquePtr res;
diff --git a/chaos_service_common/ChaosManager.h b/chaos_service_common/ChaosManager.h
index cd36b54a4..b55a37d3d 100644
--- a/chaos_service_common/ChaosManager.h
+++ b/chaos_service_common/ChaosManager.h
@@ -84,6 +84,8 @@ chaos::common::data::CDWUniquePtr setVariable(const std::string& uid,const chaos
 chaos::common::data::CDWUniquePtr removeVariable(const std::string& uid);
 chaos::common::data::CDWUniquePtr nodeDelete(const std::string& uid,const std::string parent="");
 chaos::common::data::CDWUniquePtr nodeNew(const std::string& uid,const chaos::common::data::CDataWrapper& value,const std::string parent="");
+chaos::common::data::CDWUniquePtr newUS(const std::string& uid,const std::string& desc="US");
+
 chaos::common::data::CDWUniquePtr getFullUnitServer(const std::string& uid);
 chaos::common::data::CDWUniquePtr setFullUnitServer(const std::string& uid,const chaos::common::data::CDataWrapper& value);
 chaos::common::data::CDWUniquePtr getAgentForNode(const std::string& uid);
@@ -91,6 +93,7 @@ chaos::common::data::CDWUniquePtr updateProperty(const std::string& uid,const ch
 chaos::common::data::CDWUniquePtr manageCUType(const std::string& uid,const std::string& implname,int op=0);
 chaos::common::data::CDWUniquePtr setInstanceDescription(const std::string& uid,const chaos::common::data::CDataWrapper& value);
 chaos::common::data::CDWUniquePtr deleteInstance(const std::string& uid,const std::string&parent);
+
 chaos::common::data::CDWUniquePtr getCUInstance(const std::string& uid);
 chaos::common::data::CDWUniquePtr startStop(const std::string& uid,bool start);
 chaos::common::data::CDWUniquePtr initDeinit(const std::string& uid,bool ini);
-- 
GitLab