You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ph...@apache.org on 2018/01/12 18:03:32 UTC

nifi-minifi-cpp git commit: MINIFICPP-336: Use correct path when excluding dot files

Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master c3aa2a86b -> a63d4c0d5


MINIFICPP-336: Use correct path when excluding dot files

This closes #238.

Signed-off-by: Marc Parisi <ph...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/a63d4c0d
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/a63d4c0d
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/a63d4c0d

Branch: refs/heads/master
Commit: a63d4c0d56a79e70a8a0185d826b662315bf4811
Parents: c3aa2a8
Author: Marc Parisi <ph...@apache.org>
Authored: Thu Jan 11 13:02:24 2018 -0500
Committer: Marc Parisi <ph...@apache.org>
Committed: Fri Jan 12 13:03:11 2018 -0500

----------------------------------------------------------------------
 libminifi/src/processors/GetFile.cpp   |  2 +-
 libminifi/test/unit/ProcessorTests.cpp | 84 +++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/a63d4c0d/libminifi/src/processors/GetFile.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/processors/GetFile.cpp b/libminifi/src/processors/GetFile.cpp
index 1dd3858..0472c55 100644
--- a/libminifi/src/processors/GetFile.cpp
+++ b/libminifi/src/processors/GetFile.cpp
@@ -215,7 +215,7 @@ bool GetFile::acceptFile(std::string fullName, std::string name, const GetFileRe
     if (request.maxAge > 0 && fileAge > request.maxAge)
       return false;
 
-    if (request.ignoreHiddenFile && fullName.c_str()[0] == '.')
+    if (request.ignoreHiddenFile && name.c_str()[0] == '.')
       return false;
 
     if (access(fullName.c_str(), R_OK) != 0)

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/a63d4c0d/libminifi/test/unit/ProcessorTests.cpp
----------------------------------------------------------------------
diff --git a/libminifi/test/unit/ProcessorTests.cpp b/libminifi/test/unit/ProcessorTests.cpp
index 94618a1..0a603a4 100644
--- a/libminifi/test/unit/ProcessorTests.cpp
+++ b/libminifi/test/unit/ProcessorTests.cpp
@@ -125,6 +125,90 @@ TEST_CASE("Test GetFileMultiple", "[getfileCreate3]") {
   }
 }
 
+TEST_CASE("Test GetFile Ignore", "[getfileCreate3]") {
+  TestController testController;
+  LogTestController::getInstance().setDebug<minifi::processors::GetFile>();
+  std::shared_ptr<core::ContentRepository> content_repo = std::make_shared<core::repository::VolatileContentRepository>();
+  std::shared_ptr<core::Processor> processor = std::make_shared<org::apache::nifi::minifi::processors::GetFile>("getfileCreate2");
+
+  std::shared_ptr<core::Repository> test_repo = std::make_shared<TestRepository>();
+  std::shared_ptr<TestRepository> repo = std::static_pointer_cast<TestRepository>(test_repo);
+
+  char format[] = "/tmp/gt.XXXXXX";
+  char *dir = testController.createTempDirectory(format);
+
+  uuid_t processoruuid;
+  REQUIRE(true == processor->getUUID(processoruuid));
+
+  std::shared_ptr<minifi::Connection> connection = std::make_shared<minifi::Connection>(test_repo, content_repo, "getfileCreate2Connection");
+
+  connection->setRelationship(core::Relationship("success", "description"));
+
+  // link the connections so that we can test results at the end for this
+  connection->setSource(processor);
+  connection->setDestination(processor);
+
+  connection->setSourceUUID(processoruuid);
+  connection->setDestinationUUID(processoruuid);
+
+  processor->addConnection(connection);
+  REQUIRE(dir != NULL);
+
+  std::shared_ptr<core::ProcessorNode> node = std::make_shared<core::ProcessorNode>(processor);
+  std::shared_ptr<core::controller::ControllerServiceProvider> controller_services_provider = nullptr;
+  auto context = std::make_shared<core::ProcessContext>(node, controller_services_provider, repo, repo, content_repo);
+
+  context->setProperty(org::apache::nifi::minifi::processors::GetFile::Directory, dir);
+  // replicate 10 threads
+  processor->setScheduledState(core::ScheduledState::RUNNING);
+
+  auto factory = std::make_shared<core::ProcessSessionFactory>(context);
+
+  processor->onSchedule(context, factory);
+
+  int prev = 0;
+
+  auto session = std::make_shared<core::ProcessSession>(context);
+  REQUIRE(processor->getName() == "getfileCreate2");
+
+  std::shared_ptr<core::FlowFile> record;
+
+  processor->onTrigger(context, session);
+
+  provenance::ProvenanceReporter *reporter = session->getProvenanceReporter();
+  std::set<provenance::ProvenanceEventRecord*> records = reporter->getEvents();
+  record = session->get();
+  REQUIRE(record == nullptr);
+  REQUIRE(records.size() == 0);
+
+  std::fstream file;
+  std::stringstream ss;
+  ss << dir << "/" << ".filewithoutanext";
+  file.open(ss.str(), std::ios::out);
+  file << "tempFile";
+  file.close();
+
+  processor->incrementActiveTasks();
+  processor->setScheduledState(core::ScheduledState::RUNNING);
+  processor->onTrigger(context, session);
+  unlink(ss.str().c_str());
+  reporter = session->getProvenanceReporter();
+
+  REQUIRE(processor->getName() == "getfileCreate2");
+
+  records = reporter->getEvents();
+
+  for (provenance::ProvenanceEventRecord *provEventRecord : records) {
+    REQUIRE(provEventRecord->getComponentType() == processor->getName());
+  }
+  session->commit();
+  std::shared_ptr<core::FlowFile> ffr = session->get();
+
+  REQUIRE(repo->getRepoMap().size() == 0);
+  prev++;
+
+}
+
 TEST_CASE("LogAttributeTest", "[getfileCreate3]") {
   TestController testController;
   LogTestController::getInstance().setDebug<minifi::processors::LogAttribute>();