Skip to content

Commit 12e4262

Browse files
committed
Review update
1 parent d318aad commit 12e4262

File tree

10 files changed

+90
-24
lines changed

10 files changed

+90
-24
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
#pragma once
18+
19+
#include <string>
20+
#include <optional>
21+
22+
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
23+
24+
namespace org::apache::nifi::minifi::controllers {
25+
26+
struct ProxyConfiguration {
27+
ProxyType proxy_type;
28+
std::string proxy_host;
29+
std::optional<uint16_t> proxy_port;
30+
std::optional<std::string> proxy_user;
31+
std::optional<std::string> proxy_password;
32+
};
33+
34+
} // namespace org::apache::nifi::minifi::controllers

extensions/aws/processors/AwsProcessor.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ aws::ProxyOptions AwsProcessor::getProxy(core::ProcessContext& context, const co
7171

7272
auto proxy_controller_service = minifi::utils::parseOptionalControllerService<minifi::controllers::ProxyConfigurationServiceInterface>(context, ProxyConfigurationService, getUUID());
7373
if (proxy_controller_service) {
74-
auto controller_service_proxy = proxy_controller_service->getProxyConfiguration();
75-
proxy.host = controller_service_proxy.proxy_host;
76-
proxy.port = controller_service_proxy.proxy_port ? *controller_service_proxy.proxy_port : 0;
77-
proxy.username = controller_service_proxy.proxy_user ? *controller_service_proxy.proxy_user : "";
78-
proxy.password = controller_service_proxy.proxy_password ? *controller_service_proxy.proxy_password : "";
74+
proxy.host = proxy_controller_service->getHost();
75+
auto port_opt = proxy_controller_service->getPort();
76+
proxy.port = port_opt ? *port_opt : 0;
77+
auto username_opt = proxy_controller_service->getUsername();
78+
proxy.username = username_opt ? *username_opt : "";
79+
auto password_opt = proxy_controller_service->getPassword();
80+
proxy.password = password_opt ? *password_opt : "";
7981
} else {
8082
proxy.host = minifi::utils::parseOptionalProperty(context, ProxyHost, flow_file).value_or("");
8183
proxy.port = gsl::narrow<uint32_t>(minifi::utils::parseOptionalU64Property(context, ProxyPort, flow_file).value_or(0));

extensions/azure/processors/AzureStorageProcessorBase.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@ void AzureStorageProcessorBase::onSchedule(core::ProcessContext& context, core::
3333
auto proxy_controller_service = minifi::utils::parseOptionalControllerService<minifi::controllers::ProxyConfigurationServiceInterface>(context, ProxyConfigurationService, getUUID());
3434
if (proxy_controller_service) {
3535
logger_->log_debug("Proxy configuration is set for Azure Storage processor");
36-
proxy_configuration_ = proxy_controller_service->getProxyConfiguration();
36+
proxy_configuration_ = minifi::controllers::ProxyConfiguration{
37+
.proxy_type = minifi::controllers::ProxyType::HTTP,
38+
.proxy_host = proxy_controller_service->getHost(),
39+
.proxy_port = proxy_controller_service->getPort(),
40+
.proxy_user = proxy_controller_service->getUsername(),
41+
.proxy_password = proxy_controller_service->getPassword()
42+
};
3743
}
3844
}
3945

extensions/azure/processors/AzureStorageProcessorBase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "minifi-cpp/core/logging/Logger.h"
3434
#include "storage/AzureStorageCredentials.h"
3535
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
36+
#include "controllers/ProxyConfiguration.h"
3637

3738
namespace org::apache::nifi::minifi::azure::processors {
3839

extensions/azure/storage/BlobStorageClient.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "utils/Enum.h"
3232
#include "minifi-cpp/io/InputStream.h"
3333
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
34+
#include "controllers/ProxyConfiguration.h"
3435

3536
namespace org::apache::nifi::minifi::azure::storage {
3637

extensions/azure/storage/DataLakeStorageClient.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "utils/Enum.h"
3333
#include "utils/RegexUtils.h"
3434
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
35+
#include "controllers/ProxyConfiguration.h"
3536

3637
namespace org::apache::nifi::minifi::azure::storage {
3738

libminifi/include/controllers/ProxyConfigurationService.h

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <mutex>
2020

2121
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
22+
#include "controllers/ProxyConfiguration.h"
2223
#include "core/controller/ControllerService.h"
2324
#include "core/PropertyDefinitionBuilder.h"
2425
#include "minifi-cpp/core/PropertyValidator.h"
@@ -74,9 +75,29 @@ class ProxyConfigurationService : public core::controller::ControllerServiceImpl
7475
void initialize() override;
7576
void onEnable() override;
7677

77-
ProxyConfiguration getProxyConfiguration() const override {
78+
ProxyType getProxyType() const override {
7879
std::lock_guard lock(configuration_mutex_);
79-
return proxy_configuration_;
80+
return proxy_configuration_.proxy_type;
81+
}
82+
83+
std::string getHost() const override {
84+
std::lock_guard lock(configuration_mutex_);
85+
return proxy_configuration_.proxy_host;
86+
}
87+
88+
std::optional<uint16_t> getPort() const override {
89+
std::lock_guard lock(configuration_mutex_);
90+
return proxy_configuration_.proxy_port;
91+
}
92+
93+
std::optional<std::string> getUsername() const override {
94+
std::lock_guard lock(configuration_mutex_);
95+
return proxy_configuration_.proxy_user;
96+
}
97+
98+
std::optional<std::string> getPassword() const override {
99+
std::lock_guard lock(configuration_mutex_);
100+
return proxy_configuration_.proxy_password;
80101
}
81102

82103
private:

libminifi/src/controllers/ProxyConfigurationService.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ void ProxyConfigurationService::initialize() {
2828

2929
void ProxyConfigurationService::onEnable() {
3030
std::lock_guard lock(configuration_mutex_);
31+
proxy_configuration_.proxy_type = ProxyType::HTTP;
3132
proxy_configuration_.proxy_host = getProperty(ProxyServerHost.name).value_or("");
3233
if (proxy_configuration_.proxy_host.empty()) {
3334
logger_->log_error("Proxy Server Host is required");

libminifi/test/unit/ProxyConfigurationServiceTests.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,10 @@ TEST_CASE_METHOD(ProxyConfigurationServiceTestFixture, "ProxyConfigurationServic
4242
TEST_CASE_METHOD(ProxyConfigurationServiceTestFixture, "Only required properties are set in ProxyConfigurationService") {
4343
plan_->setProperty(proxy_configuration_node_, controllers::ProxyConfigurationService::ProxyServerHost, "192.168.1.123");
4444
REQUIRE_NOTHROW(plan_->finalize());
45-
auto proxy = proxy_configuration_service_->getProxyConfiguration();
46-
CHECK(proxy.proxy_host == "192.168.1.123");
47-
CHECK(proxy.proxy_port == std::nullopt);
48-
CHECK(proxy.proxy_user == std::nullopt);
49-
CHECK(proxy.proxy_password == std::nullopt);
45+
CHECK(proxy_configuration_service_->getHost() == "192.168.1.123");
46+
CHECK(proxy_configuration_service_->getPort() == std::nullopt);
47+
CHECK(proxy_configuration_service_->getUsername() == std::nullopt);
48+
CHECK(proxy_configuration_service_->getPassword() == std::nullopt);
5049
}
5150

5251
TEST_CASE_METHOD(ProxyConfigurationServiceTestFixture, "All properties are set in ProxyConfigurationService") {
@@ -55,11 +54,10 @@ TEST_CASE_METHOD(ProxyConfigurationServiceTestFixture, "All properties are set i
5554
plan_->setProperty(proxy_configuration_node_, controllers::ProxyConfigurationService::ProxyUserName, "user");
5655
plan_->setProperty(proxy_configuration_node_, controllers::ProxyConfigurationService::ProxyUserPassword, "password");
5756
REQUIRE_NOTHROW(plan_->finalize());
58-
auto proxy = proxy_configuration_service_->getProxyConfiguration();
59-
CHECK(proxy.proxy_host == "192.168.1.123");
60-
CHECK(proxy.proxy_port == 8080);
61-
CHECK(proxy.proxy_user == "user");
62-
CHECK(proxy.proxy_password == "password");
57+
CHECK(proxy_configuration_service_->getHost() == "192.168.1.123");
58+
CHECK(proxy_configuration_service_->getPort() == 8080);
59+
CHECK(proxy_configuration_service_->getUsername() == "user");
60+
CHECK(proxy_configuration_service_->getPassword() == "password");
6361
}
6462

6563
} // namespace org::apache::nifi::minifi::test

minifi-api/include/minifi-cpp/controllers/ProxyConfigurationServiceInterface.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@
2121

2222
namespace org::apache::nifi::minifi::controllers {
2323

24-
struct ProxyConfiguration {
25-
std::string proxy_host;
26-
std::optional<uint16_t> proxy_port;
27-
std::optional<std::string> proxy_user;
28-
std::optional<std::string> proxy_password;
24+
enum class ProxyType {
25+
HTTP
2926
};
3027

3128
class ProxyConfigurationServiceInterface : public virtual core::controller::ControllerService {
@@ -36,7 +33,11 @@ class ProxyConfigurationServiceInterface : public virtual core::controller::Cont
3633
.type = "org.apache.nifi.minifi.controllers.ProxyConfigurationServiceInterface",
3734
};
3835

39-
virtual ProxyConfiguration getProxyConfiguration() const = 0;
36+
virtual std::string getHost() const = 0;
37+
virtual std::optional<uint16_t> getPort() const = 0;
38+
virtual std::optional<std::string> getUsername() const = 0;
39+
virtual std::optional<std::string> getPassword() const = 0;
40+
virtual ProxyType getProxyType() const = 0;
4041
};
4142

4243
} // namespace org::apache::nifi::minifi::controllers

0 commit comments

Comments
 (0)