[ 
https://issues.apache.org/jira/browse/MINIFI-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15995955#comment-15995955
 ] 

ASF GitHub Bot commented on MINIFI-294:
---------------------------------------

Github user benqiu2016 commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi-cpp/pull/90#discussion_r114679460
  
    --- Diff: libminifi/src/core/yaml/YamlConfiguration.cpp ---
    @@ -417,29 +405,27 @@ void YamlConfiguration::parseConnectionYaml(
     
     
             // Configure connection source
    -        auto rawRelationship = connectionNode["source relationship name"]
    -            .as<std::string>();
    +        checkRequiredField(&connectionNode, "source relationship name", 
CONFIG_YAML_CONNECTIONS_KEY);
    +        auto rawRelationship = connectionNode["source relationship 
name"].as<std::string>();
             core::Relationship relationship(rawRelationship, "");
    -        logger_->log_debug(
    -            "parseConnection: relationship => [%s]", rawRelationship);
    +        logger_->log_debug("parseConnection: relationship => [%s]", 
rawRelationship);
             if (connection) {
               connection->setRelationship(relationship);
             }
     
             uuid_t srcUUID;
    -        std::string connectionSrcProcName = connectionNode["source name"]
    -            .as<std::string>();
    +
             if (connectionNode["source id"]) {
    -          std::string connectionSrcProcId = connectionNode["source id"]
    -              .as<std::string>();
    +          std::string connectionSrcProcId = connectionNode["source 
id"].as<std::string>();
     
               uuid_parse(connectionSrcProcId.c_str(), srcUUID);
             } else {
               // if we don't have a source id, try harder to resolve the 
source processor.
               // config schema v2 will make this unnecessary
    +          checkRequiredField(&connectionNode, "source name", 
CONFIG_YAML_CONNECTIONS_KEY);
    --- End diff --
    
    i thought we only use source id instead of source name. source id is the 
process UUID for the connection source



> Better handling of required vs. optional fields in config schema v1
> -------------------------------------------------------------------
>
>                 Key: MINIFI-294
>                 URL: https://issues.apache.org/jira/browse/MINIFI-294
>             Project: Apache NiFi MiNiFi
>          Issue Type: Bug
>          Components: C++, Documentation, Processing Configuration
>            Reporter: Kevin Doran
>            Assignee: Kevin Doran
>            Priority: Critical
>             Fix For: cpp-0.2.0
>
>
> This is a followup task to MINIFI-275. While the scope of MINIFI-275 was 
> minifi-cpp processing of components without id fields, which are optional in 
> config schema v1, this ticket covers all fields for all component types, 
> either doing string checks for required fields (with useful error messages if 
> absent) or graceful handling of missing optional fields.
> The Config Schema V1 in the minifi-java codebase will be used as a guide for 
> which fields to treat as required and which to treat as optional. [~aldrin] - 
> please confirm that is the correct assumption for minifi-cpp. The Java 
> implementation can be found at [1]. Specifically, in the Java code, required 
> fields are loaded using `getRequiredKeyAsType() and optional fields are 
> loaded using `getOptionalKeyAsType()`
> Also in scope for this ticket is to update the config.yml examples in the 
> minifi-cpp README.md file to make sure they are not missing required fields. 
> During testing, it was found that one example config.yml is missing source 
> name and destination name, which are required in config schema v1.
> [1] 
> https://github.com/apache/nifi-minifi/tree/master/minifi-commons/minifi-commons-schema/src/main/java/org/apache/nifi/minifi/commons/schema/v1



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to