private String getConfiguredPrincipalNameFromReference(Cluster cluster,
                                                         AbstractKerberosDescriptorContainer container,
                                                         String identityReference)
      throws AmbariException {
    KerberosIdentityDescriptor identityDescriptor = container.getReferencedIdentityDescriptor(identityReference);

    if (identityDescriptor != null) {
      KerberosPrincipalDescriptor principal = identityDescriptor.getPrincipalDescriptor();
      if ((principal != null) && (!StringUtils.isEmpty(principal.getConfiguration()))) {
        String[] parts = principal.getConfiguration().split("/");
        if (parts.length == 2) {
          String type = parts[0];
          String property = parts[1];

          Config config = cluster.getDesiredConfigByType(type);

          if (config != null) {
            return config.getProperties().get(property);
          }
        }
      }
    }

    return null;
  }
Finds the value of the configuration found for the principal in the referenced identity
descriptor.

@param cluster           the cluster
@param container         the current {@link KerberosIdentityDescriptor}, ideally the identity's parent descriptor
@param identityReference the path to the referenced identity
@return the value of the configuration specified in the referenced identity's principal descriptor
@throws AmbariException if an error occurs
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java