public static void parseProperties(ConfigurationRequest config, String absCategory, String propName, String propValue) {
    if (propName.equals("type"))
      config.setType(propValue);
    else if (propName.equals("tag"))
      config.setVersionTag(propValue);
    else if (propName.equals("selected")) {
      config.setSelected(Boolean.parseBoolean(propValue));
    }
    else if (propName.equals("service_config_version_note")) {
      config.setServiceConfigVersionNote(propValue);
    }
    else if (absCategory.endsWith("/properties")) {
      config.getProperties().put(propName, propValue);
    }
    else if (propertiesAttributesPattern.matcher(absCategory).matches()) {
      String attributeName = absCategory.substring(absCategory.lastIndexOf('/') + 1);
      Map<String, Map<String, String>> configAttributesMap = config.getPropertiesAttributes();
      if (null == configAttributesMap) {
        configAttributesMap = new HashMap<>();
        config.setPropertiesAttributes(configAttributesMap);
      }
      Map<String, String> attributesMap = configAttributesMap.get(attributeName);
      if (null == attributesMap) {
        attributesMap = new HashMap<>();
        configAttributesMap.put(attributeName, attributesMap);
      }
      attributesMap.put(propName, propValue);
    }
  }
Helper method to get a configuration request, if one exists.
@param parentCategory  the parent category name.  Checks for a property
   whose category is the parent and marked as a desired config.
@param properties  the properties on the request.
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java