[ https://issues.apache.org/jira/browse/MINIFI-339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16159292#comment-16159292
]
ASF GitHub Bot commented on MINIFI-339:
---------------------------------------
Github user achristianson commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/134#discussion_r137881667
--- Diff: libminifi/src/RemoteProcessorGroupPort.cpp ---
@@ -221,51 +223,28 @@ void RemoteProcessorGroupPort::refreshRemoteSite2SiteInfo() {
if (!rest_user_name_.empty()) {
std::string loginUrl = this->protocol_ + this->host_ + ":" + std::to_string(this->port_)
+ "/nifi-api/access/token";
- token = utils::get_token(loginUrl, this->rest_user_name_, this->rest_password_,
this->securityConfig_);
- logger_->log_debug("Token from NiFi REST Api endpoint %s", token);
+ utils::HTTPClient client(loginUrl, ssl_service);
+ client.setVerbose();
+ token = utils::get_token(client, this->rest_user_name_, this->rest_password_);
+ logger_->log_debug("Token from NiFi REST Api endpoint %s, %s", loginUrl, token);
if (token.empty())
- return;
+ return;
}
- CURL *http_session = curl_easy_init();
+ utils::HTTPClient client(fullUrl.c_str(), ssl_service);
- if (fullUrl.find("https") != std::string::npos) {
- this->securityConfig_.configureSecureConnection(http_session);
- }
+ client.initialize("GET");
struct curl_slist *list = NULL;
if (!token.empty()) {
std::string header = "Authorization: " + token;
list = curl_slist_append(list, header.c_str());
- curl_easy_setopt(http_session, CURLOPT_HTTPHEADER, list);
+ client.setHeaders(list);
}
- curl_easy_setopt(http_session, CURLOPT_URL, fullUrl.c_str());
-
- utils::HTTPRequestResponse content;
- curl_easy_setopt(http_session, CURLOPT_WRITEFUNCTION,
- &utils::HTTPRequestResponse::recieve_write);
-
- curl_easy_setopt(http_session, CURLOPT_WRITEDATA,
- static_cast<void*>(&content));
-
- CURLcode res = curl_easy_perform(http_session);
- if (list)
- curl_slist_free_all(list);
-
- if (res == CURLE_OK) {
- std::string response_body(content.data.begin(), content.data.end());
- int64_t http_code = 0;
- curl_easy_getinfo(http_session, CURLINFO_RESPONSE_CODE, &http_code);
- char *content_type;
- /* ask for the content-type */
- curl_easy_getinfo(http_session, CURLINFO_CONTENT_TYPE, &content_type);
-
- bool isSuccess = ((int32_t) (http_code / 100)) == 2
- && res != CURLE_ABORTED_BY_CALLBACK;
- bool body_empty = IsNullOrEmpty(content.data);
-
- if (isSuccess && !body_empty) {
+ if (client.submit() == CURLE_OK && client.getResponseCode() == 200) {
--- End diff --
Our curl abstraction is leaking here (referencing curl constants).
> Begin building controlling API to facilitate control of agents
> --------------------------------------------------------------
>
> Key: MINIFI-339
> URL: https://issues.apache.org/jira/browse/MINIFI-339
> Project: Apache NiFi MiNiFi
> Issue Type: New Feature
> Components: C++
> Reporter: marco polo
> Assignee: marco polo
> Priority: Critical
> Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and likely have
public and private elements. As development progresses we may want more capabilities.
> What I want to create as a straw man will be basic control and metrics gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
> ** Throughput of of flow components
> ** Execution time ( run time minus sleep time )
> ** Memory consumption
> -- Drain repositories
> -- Switch repository types.
> Better employ update listener within this controlling API
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
|