nipyapi
nipyapi copied to clipboard
Error "Invalid keys in `parameter_sensitivities`" after calling get_parameter_providers
- Nipyapi version: main
- NiFi version: 1.20.0
- NiFi-Registry version: 1.20.0
- Python version: 3.10.6
- Operating System: Windows 11
Description
There is an error with getting parameter providers list with EnvironmentParameterProvider:
Invalid keys in parameter_sensitivities [... MY_ENVIRONMENT_VARIABLES ...], must be a subset of [SENSITIVE, NON_SENSITIVE]
Looks like in ParameterGroupConfigurationEntity.parameter_sensitivities.setter validation mixed up keys and values.
After editing the line
if not set(parameter_sensitivities.keys()).issubset(set(allowed_values)):
on
if not set(parameter_sensitivities.values()).issubset(set(allowed_values)):
the error is gone.
What I Did
After calling
nipyapi.nifi.FlowApi().get_parameter_providers()
I have error
Invalid keys in parameter_sensitivities [ENV_PARAM1, ENV_PARAM2], must be a subset of [SENSITIVE, NON_SENSITIVE]
Stacktrace:
File "\nipyapi\nifi\apis\flow_api.py", line 2988, in get_parameter_providers
(data) = self.get_parameter_providers_with_http_info(**kwargs)
File "\nipyapi\nifi\apis\flow_api.py", line 3049, in get_parameter_providers_with_http_info
return self.api_client.call_api('/flow/parameter-providers', 'GET',
File "\nipyapi\nifi\api_client.py", line 330, in call_api
return self.__call_api(resource_path, method,
File "\nipyapi\nifi\api_client.py", line 163, in __call_api
return_data = self.deserialize(response_data, response_type)
File "\nipyapi\nifi\api_client.py", line 244, in deserialize
return self.__deserialize(data, response_type)
File "\nipyapi\nifi\api_client.py", line 287, in __deserialize
return self.__deserialize_model(data, klass)
File "\nipyapi\nifi\api_client.py", line 656, in __deserialize_model
deserialized_value = self.__deserialize(value, attr_type)
File "\nipyapi\nifi\api_client.py", line 264, in __deserialize
return [self.__deserialize(sub_data, sub_kls)
File "\nipyapi\nifi\api_client.py", line 264, in parameter_sensitivities [ENV_PARAM1, ENV_PARAM2], must be a subset of [SENSITIVE, NON_SENSITIVE]
Urgency
I don't think it's super urgent because it didn't get released.
It seems to be released by now, since I get this issue with the latest version of nipyapi.
The swagger json contains this:
"parameterSensitivities" : {
"type" : "object",
"description" : "All fetched parameter names that should be applied.",
"additionalProperties" : {
"type" : "string",
"enum" : [ "SENSITIVE", "NON_SENSITIVE" ]
}
}
That should be correct, but the swagger-codegen isn't handling this correctly it seems.
See https://github.com/swagger-api/swagger-codegen/issues/9138