You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2019/03/09 05:08:34 UTC
[nifi-minifi-cpp] 01/02: MINIFICPP-758: Fix tests and enforce
protocol
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 <ph...@apache.org>
AuthorDate: Fri Mar 8 14:17:06 2019 -0500
MINIFICPP-758: Fix tests and enforce protocol
This closes #507.
Signed-off-by: Aldrin Piri <al...@apache.org>
---
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));