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

Kevin Doran commented on NIFI-4801:
-----------------------------------

[~mcgilman] I added this annotation to 
{{ProcessGroupResource.uploadTemplate(...)}}:

{code}
@ApiImplicitParams(
    value = {
        @ApiImplicitParam(
            name = "body",
            value = "The binary content of the template file being uploaded",
            required = true,
            dataType = "java.io.File",
            paramType = "body")
    }
)
{code}

which changes the swagger.json output to:

{noformat}
...
"/process-groups/{id}/templates/upload" : {
  "post" : {
    "tags" : [ "process-groups" ],
    "summary" : "Uploads a template",
    "description" : "",
    "operationId" : "uploadTemplate",
    "consumes" : [ "multipart/form-data" ],
    "produces" : [ "application/xml" ],
    "parameters" : [ {
      "name" : "id",
      "in" : "path",
      "description" : "The process group id.",
      "required" : true,
      "type" : "string"
    }, {
      "in" : "body",
      "name" : "body",
      "description" : "The binary content of the template file being uploaded",
      "required" : true,
      "schema" : {
        "type" : "file"
      }
    } ],
    "responses" : {
      "200" : {
        "description" : "successful operation",
        "schema" : {
          "$ref" : "#/definitions/TemplateEntity"
        }
      },
      "400" : {
        "description" : "NiFi was unable to complete the request because it was 
invalid. The request should not be retried without modification."
      },
      "401" : {
        "description" : "Client could not be authenticated."
      },
      "403" : {
        "description" : "Client is not authorized to make this request."
      },
      "409" : {
        "description" : "The request was valid but NiFi was not in the 
appropriate state to process it. Retrying the same request later may be 
successful."
      }
    },
    "security" : [ {
      "Write - /process-groups/{uuid}" : [ ]
    } ]
  }
},
...
{noformat}

[~chaffelson] - does that output look correct to you? any quick way to test it 
will, if used as an input, procedurally generate the correct python code?

> Rest-api swagger definition produces non-functional template import in Python
> -----------------------------------------------------------------------------
>
>                 Key: NIFI-4801
>                 URL: https://issues.apache.org/jira/browse/NIFI-4801
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.5.0, 1.6.0
>         Environment: Python 2.7/3.6
>            Reporter: Daniel Chaffelson
>            Assignee: Kevin Doran
>            Priority: Major
>
> The swagger.json produced when compiling NiFi-1.5.0 results in a 
> ProcessgroupsApi().upload_template function that only accepts the id of the 
> Process Group to receive the template, and no option to specify the template 
> itself.
> It would appear that the underlying API call expects the template to be the 
> body of the request, but the produced function does not allow it to be 
> specified. This is changed from NiFi-1.2.0 where a  'template' keyword 
> argument was included.
> It may also be related to how the TemplatesApi().export_template function 
> used to produce a TemplateDTO and now produces a string. 
> I am unsure in which version since 1.2.0 this changed, it may not 
> specifically be just 1.5.0 code.
> An example of the procedurally generated code can be found at:
> [https://github.com/Chaffelson/nifi-python-swagger-client/blob/master/swagger_client/apis/processgroups_api.py]
> And documentation at:
> [http://nifi-python-swagger-client.readthedocs.io/en/latest/ProcessgroupsApi/#upload_template]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to