private void readClusterDefinition() throws IOException {

    InputStream is = definitionProvider.getInputStream();
    try {
      BufferedReader br = new BufferedReader(new InputStreamReader(is));

      String  line;
      while ((line = br.readLine()) != null) {
        line = line.trim();

        if (line.startsWith(COMMENT_TAG)) continue;

        int i = line.indexOf('=');
        if (i == -1) continue;

        String propertyName = line.substring(0, i);
        String propertyValue = line.substring(i + 1);

        if(propertyName.equalsIgnoreCase(HA_PROPERTY_INDICATOR)) {
          HA_ENABLE = propertyValue.equalsIgnoreCase("YES") ? Boolean.TRUE : Boolean.FALSE;
        }

        Set<String> componentNames = componentNameMap.get(propertyName);
        if (componentNames != null) {
          for (String componentName : componentNames) {
            String serviceName = componentServiceMap.get(componentName);
            services.add(serviceName);

            Set<String> serviceComponents = components.get(serviceName);
            if (serviceComponents == null) {
              serviceComponents = new HashSet<String>();
              components.put(serviceName, serviceComponents);
            }
            serviceComponents.add(componentName);

            Map<String, Set<String>> serviceHostComponents = hostComponents.get(serviceName);
            if (serviceHostComponents == null) {
              serviceHostComponents = new HashMap<String, Set<String>>();
              hostComponents.put(serviceName, serviceHostComponents);
            }

            String[] hostNames = propertyValue.split(",");
            for (String hostName : hostNames) {
              hostName = hostName.trim();
              Set<String> hostHostComponents = serviceHostComponents.get(hostName);
              if (hostHostComponents == null) {
                hostHostComponents = new HashSet<String>();
                serviceHostComponents.put(hostName, hostHostComponents);
              }
              hostHostComponents.add(componentName);

              hosts.add(hostName);
            }
          }
        }
      }
    } finally {
      is.close();
    }
  }
Read the MSI cluster definition file.
contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java