Doroszlai, Attila created AMBARI-24934:
------------------------------------------

             Summary: 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
             Fix For: 2.8.0


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