-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27372/
-----------------------------------------------------------
Review request for Ambari and Nate Cole.
Bugs: AMBARI-8035
https://issues.apache.org/jira/browse/AMBARI-8035
Repository: ambari
Description
-------
When creating an AlertDefinition via the REST APIs, the ResourceProvider takes
the JSON payload and converts it to a flattened list of properties (such as
AlertDefinition/source/reporting/critical/text = 'foo').
This causes a problem when attempting to convert and serialize the Source field
since this is a first-class object (such as MetricSource). Each of the flat
properties has to be converted into appropriate JSON to be serialized to the
database. Although this was working for the "reporting" structure, it was not
working for the updated URI structure or the JMX property structure.
I could have gone through and created keys for all of the missing flattened
properties, but then adding a new property in the future would have a similar
problem.
Instead, I recursively builds JsonObject instances based on the flat set of
properties.
Diffs
-----
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java
e1c0082
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProviderTest.java
a82e8c4
Diff: https://reviews.apache.org/r/27372/diff/
Testing
-------
Created several different types of AlertDefinitions (Metric, Web, etc)
including exampels of failing AlertDefinitions. Verified that they are created
successfully and the returned JSON from the GET is correct.
Updated test cases to reflect the changes and to further exercise the uri and
reporting structures.
Thanks,
Jonathan Hurley