This is an automated email from the ASF dual-hosted git repository. aldrin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit e99615537becf0b3d7cc7d585dadbe4747f55786 Author: Marc Parisi <[email protected]> AuthorDate: Fri Mar 8 14:17:06 2019 -0500 MINIFICPP-758: Fix tests and enforce protocol This closes #507. Signed-off-by: Aldrin Piri <[email protected]> --- conf/minifi.properties | 2 ++ extensions/http-curl/tests/C2FailedUpdateTest.cpp | 9 +++++---- extensions/http-curl/tests/C2NullConfiguration.cpp | 3 +-- extensions/http-curl/tests/C2UpdateAgentTest.cpp | 11 ++++++----- extensions/http-curl/tests/C2UpdateTest.cpp | 9 +++++---- extensions/http-curl/tests/C2VerifyHeartbeatAndStop.cpp | 11 ++++++----- extensions/http-curl/tests/C2VerifyServeResults.cpp | 13 +++++++------ libminifi/src/c2/C2Agent.cpp | 7 ++++--- 8 files changed, 36 insertions(+), 29 deletions(-) diff --git a/conf/minifi.properties b/conf/minifi.properties index dcf773f..eedc221 100644 --- a/conf/minifi.properties +++ b/conf/minifi.properties @@ -41,6 +41,8 @@ nifi.database.content.repository.directory.default=${MINIFI_HOME}/content_reposi ## define those with missing options #nifi.c2.enable=true ## define protocol parameters +## The default is CoAP, if that extension is built. +## Alternatively, you may use RESTSender if http-curl is built #nifi.c2.agent.protocol.class=CoapProtocol #nifi.c2.agent.coap.host= #nifi.c2.agent.coap.port= diff --git a/extensions/http-curl/tests/C2FailedUpdateTest.cpp b/extensions/http-curl/tests/C2FailedUpdateTest.cpp index 904d931..1df1219 100644 --- a/extensions/http-curl/tests/C2FailedUpdateTest.cpp +++ b/extensions/http-curl/tests/C2FailedUpdateTest.cpp @@ -142,10 +142,11 @@ int main(int argc, char **argv) { std::shared_ptr<minifi::Configure> configuration = std::make_shared<minifi::Configure>(); - configuration->set("c2.enable", "true"); - configuration->set("c2.agent.class", "test"); - configuration->set("c2.rest.url", "http://localhost:7071/update"); - configuration->set("c2.agent.heartbeat.period", "1000"); + configuration->set("nifi.c2.agent.protocol.class", "RESTSender"); + configuration->set("nifi.c2.enable", "true"); + configuration->set("nifi.c2.agent.class", "test"); + configuration->set("nifi.c2.rest.url", "http://localhost:7071/update"); + configuration->set("nifi.c2.agent.heartbeat.period", "1000"); mkdir("content_repository", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); std::shared_ptr<core::Repository> test_repo = std::make_shared<TestRepository>(); diff --git a/extensions/http-curl/tests/C2NullConfiguration.cpp b/extensions/http-curl/tests/C2NullConfiguration.cpp index 4850844..3b86c49 100644 --- a/extensions/http-curl/tests/C2NullConfiguration.cpp +++ b/extensions/http-curl/tests/C2NullConfiguration.cpp @@ -79,7 +79,6 @@ class VerifyC2Server : public CoapIntegrationBase { } void runAssertions() { - assert(LogTestController::getInstance().contains("C2Agent] [info] Class is null") == true); assert(LogTestController::getInstance().contains("C2Agent] [debug] Could not instantiate null") == true); assert(LogTestController::getInstance().contains("Class is RESTSender") == true); } @@ -98,7 +97,7 @@ class VerifyC2Server : public CoapIntegrationBase { parse_http_components(url, port, scheme, path); configuration->set("c2.enable", "true"); configuration->set("c2.agent.class", "test"); - configuration->set("c2.agent.protocol.class", "null"); + configuration->set("c2.agent.protocol.class", "RESTSender"); configuration->set("c2.rest.url", ""); configuration->set("c2.rest.url.ack", ""); configuration->set("c2.agent.heartbeat.reporter.classes", "null"); diff --git a/extensions/http-curl/tests/C2UpdateAgentTest.cpp b/extensions/http-curl/tests/C2UpdateAgentTest.cpp index 049f506..85d0d0e 100644 --- a/extensions/http-curl/tests/C2UpdateAgentTest.cpp +++ b/extensions/http-curl/tests/C2UpdateAgentTest.cpp @@ -140,11 +140,12 @@ int main(int argc, char **argv) { std::shared_ptr<minifi::Configure> configuration = std::make_shared<minifi::Configure>(); - configuration->set("c2.enable", "true"); - configuration->set("c2.agent.class", "test"); - configuration->set("c2.agent.update.allow","true"); - configuration->set("c2.rest.url", "http://localhost:7072/update"); - configuration->set("c2.agent.heartbeat.period", "1000"); + configuration->set("nifi.c2.agent.protocol.class", "RESTSender"); + configuration->set("nifi.c2.enable", "true"); + configuration->set("nifi.c2.agent.class", "test"); + configuration->set("nifi.c2.agent.update.allow","true"); + configuration->set("nifi.c2.rest.url", "http://localhost:7072/update"); + configuration->set("nifi.c2.agent.heartbeat.period", "1000"); mkdir("content_repository", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); std::shared_ptr<core::Repository> test_repo = std::make_shared<TestRepository>(); diff --git a/extensions/http-curl/tests/C2UpdateTest.cpp b/extensions/http-curl/tests/C2UpdateTest.cpp index a5166f3..64002c6 100644 --- a/extensions/http-curl/tests/C2UpdateTest.cpp +++ b/extensions/http-curl/tests/C2UpdateTest.cpp @@ -140,10 +140,11 @@ int main(int argc, char **argv) { std::shared_ptr<minifi::Configure> configuration = std::make_shared<minifi::Configure>(); - configuration->set("c2.enable", "true"); - configuration->set("c2.agent.class", "test"); - configuration->set("c2.rest.url", "http://localhost:7070/update"); - configuration->set("c2.agent.heartbeat.period", "1000"); + configuration->set("nifi.c2.agent.protocol.class", "RESTSender"); + configuration->set("nifi.c2.enable", "true"); + configuration->set("nifi.c2.agent.class", "test"); + configuration->set("nifi.c2.rest.url", "http://localhost:7070/update"); + configuration->set("nifi.c2.agent.heartbeat.period", "1000"); mkdir("content_repository", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); std::shared_ptr<core::Repository> test_repo = std::make_shared<TestRepository>(); diff --git a/extensions/http-curl/tests/C2VerifyHeartbeatAndStop.cpp b/extensions/http-curl/tests/C2VerifyHeartbeatAndStop.cpp index d299851..e849b26 100644 --- a/extensions/http-curl/tests/C2VerifyHeartbeatAndStop.cpp +++ b/extensions/http-curl/tests/C2VerifyHeartbeatAndStop.cpp @@ -162,11 +162,12 @@ class VerifyC2Heartbeat : public CoapIntegrationBase { std::string url = ""; inv->getProperty(minifi::processors::InvokeHTTP::URL.getName(), url); - configuration->set("c2.enable", "true"); - configuration->set("c2.agent.class", "test"); - configuration->set("c2.rest.url", "http://localhost:8888/api/heartbeat"); - configuration->set("c2.agent.heartbeat.period", "1000"); - configuration->set("c2.rest.url.ack", "http://localhost:8888/api/heartbeat"); + configuration->set("nifi.c2.agent.protocol.class", "RESTSender"); + configuration->set("nifi.c2.enable", "true"); + configuration->set("nifi.c2.agent.class", "test"); + configuration->set("nifi.c2.rest.url", "http://localhost:8888/api/heartbeat"); + configuration->set("nifi.c2.agent.heartbeat.period", "1000"); + configuration->set("nifi.c2.rest.url.ack", "http://localhost:8888/api/heartbeat"); configuration->set("nifi.c2.root.classes", "DeviceInfoNode,AgentInformation,FlowInformation"); } diff --git a/extensions/http-curl/tests/C2VerifyServeResults.cpp b/extensions/http-curl/tests/C2VerifyServeResults.cpp index 601a5a2..ac4ee54 100644 --- a/extensions/http-curl/tests/C2VerifyServeResults.cpp +++ b/extensions/http-curl/tests/C2VerifyServeResults.cpp @@ -115,12 +115,13 @@ class VerifyC2Server : public CoapIntegrationBase { std::string port, scheme, path; parse_http_components(url, port, scheme, path); - configuration->set("c2.enable", "true"); - configuration->set("c2.agent.class", "test"); - configuration->set("c2.agent.heartbeat.reporter.classes", "RESTReceiver"); - configuration->set("c2.rest.listener.port", port); - configuration->set("c2.agent.heartbeat.period", "10"); - configuration->set("c2.rest.listener.heartbeat.rooturi", path); + configuration->set("nifi.c2.enable", "true"); + configuration->set("nifi.c2.agent.class", "test"); + configuration->set("nifi.c2.agent.heartbeat.reporter.classes", "RESTReceiver"); + configuration->set("nifi.c2.agent.protocol.class", "RESTSender"); + configuration->set("nifi.c2.rest.listener.port", port); + configuration->set("nifi.c2.agent.heartbeat.period", "10"); + configuration->set("nifi.c2.rest.listener.heartbeat.rooturi", path); } protected: diff --git a/libminifi/src/c2/C2Agent.cpp b/libminifi/src/c2/C2Agent.cpp index b64e65e..f2f9999 100644 --- a/libminifi/src/c2/C2Agent.cpp +++ b/libminifi/src/c2/C2Agent.cpp @@ -158,12 +158,13 @@ void C2Agent::configure(const std::shared_ptr<Configure> &configure, bool reconf if (protocol == nullptr) { logger_->log_info("Class %s not found", clazz); - protocol = core::ClassLoader::getDefaultClassLoader().instantiateRaw("CoapProtocol", "RESTSender"); - + protocol = core::ClassLoader::getDefaultClassLoader().instantiateRaw("CoapProtocol", "CoapProtocol"); if (!protocol) { + logger_->log_info("Attempted to load CoapProtocol. To enable C2, please specify an active protocol for this agent."); return; + } else { + logger_->log_info("Class is CoapProtocol"); } - logger_->log_info("Class is CoapProtocol"); } C2Protocol *old_protocol = protocol_.exchange(dynamic_cast<C2Protocol*>(protocol));
