[ 
https://issues.apache.org/jira/browse/AMBARI-24934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Doroszlai, Attila updated AMBARI-24934:
---------------------------------------
    Resolution: Implemented
        Status: Resolved  (was: Patch Available)

> Accept legacy JSON configuration in Add Service request
> -------------------------------------------------------
>
>                 Key: AMBARI-24934
>                 URL: https://issues.apache.org/jira/browse/AMBARI-24934
>             Project: Ambari
>          Issue Type: Improvement
>          Components: ambari-server
>            Reporter: Doroszlai, Attila
>            Assignee: Doroszlai, Attila
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.8.0
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Cluster creation via blueprint accepts configuration in the following format, 
> where the {{"properties"}} level is omitted:
> {noformat}
>   "configurations": [
>     {
>       "cluster-env": {
>         "custom-property": "whatever"
>       }
>     },
>     {
>       "zoo.cfg": {
>         "syncLimit": "7"
>       }
>     },
> ...
> {noformat}
> "Add Service" request should accept the same format, too, but currently it 
> results in:
> {noformat}
> <h3>Caused by:</h3><pre>java.lang.IllegalArgumentException: Invalid fields in 
> cluster-env configuration: [custom-property]
>       at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
>       at 
> org.apache.ambari.server.topology.ConfigurableHelper.lambda$parseConfigs$1(ConfigurableHelper.java:102)
>       at java.util.ArrayList.forEach(ArrayList.java:1249)
>       at 
> org.apache.ambari.server.topology.ConfigurableHelper.parseConfigs(ConfigurableHelper.java:88)
>       at 
> org.apache.ambari.server.controller.AddServiceRequest.&lt;init&gt;(AddServiceRequest.java:88)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>       at 
> com.fasterxml.jackson.databind.introspect.AnnotatedConstructor.call(AnnotatedConstructor.java:124)
>       at 
> com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromObjectWith(StdValueInstantiator.java:283)
>       at 
> com.fasterxml.jackson.databind.deser.ValueInstantiator.createFromObjectWith(ValueInstantiator.java:229)
>       at 
> com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:195)
>       at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:488)
>       at 
> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1280)
>       at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
>       at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
>       at 
> com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001)
>       at 
> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2992)
>       at 
> org.apache.ambari.server.controller.AddServiceRequest.of(AddServiceRequest.java:115)
>       at 
> org.apache.ambari.server.controller.internal.ServiceResourceProvider.createAddServiceRequest(ServiceResourceProvider.java:1242)
>       at 
> org.apache.ambari.server.controller.internal.ServiceResourceProvider.processAddServiceRequest(ServiceResourceProvider.java:1232)
>       at 
> org.apache.ambari.server.controller.internal.ServiceResourceProvider.createResourcesAuthorized(ServiceResourceProvider.java:257)
> {noformat}



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

Reply via email to