[
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)