public KerberosDescriptor update(KerberosDescriptor updates) {
    if (updates != null) {
      Map<String, KerberosServiceDescriptor> updatedServiceDescriptors = updates.getServices();
      if (updatedServiceDescriptors != null) {
        for (Map.Entry<String, KerberosServiceDescriptor> entry : updatedServiceDescriptors.entrySet()) {
          putService(entry.getValue());
        }
      }

      Map<String, String> updatedProperties = updates.getProperties();
      if (updatedProperties != null) {
        for (Map.Entry<String, String> entry : updatedProperties.entrySet()) {
          putProperty(entry.getKey(), entry.getValue());
        }
      }
    }

    super.update(updates);

    return this;
  }
Updates this KerberosDescriptor with data from another KerberosDescriptor
<p/>
Properties will be updated if the relevant updated values are not null.

@param updates the KerberosDescriptor containing the updated values
@return this {@code KerberosDescriptor} for convenience
ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/KerberosDescriptor.java