@Override
      public RequestStageContainer invoke() throws AmbariException {
        RequestStageContainer stageContainer = null;
        try {
          stageContainer = updateHostComponents(stages, requests, request.getRequestInfoProperties(),
              runSmokeTest, useGeneratedConfigs, useClusterHostInfo);
        } catch (Exception e) {
          LOG.info("Caught an exception while updating host components, will not try again: {}", e.getMessage(), e);
          // !!! IllegalArgumentException results in a 400 response, RuntimeException results in 500.
          if (e instanceof IllegalArgumentException) {
            throw (IllegalArgumentException) e;
          } else {
            throw new RuntimeException("Update Host request submission failed: " + e, e);
          }
        }

        return stageContainer;
      }
Update resources.

@param stages                  request stage container
@param request                 request
@param predicate               request predicate
@param performQueryEvaluation  should query be evaluated for matching resource set
@param useGeneratedConfigs     should update request contains actual configs
@param useClusterHostInfo      should update request contain cluster topology info
@return
@throws UnsupportedPropertyException   an unsupported property was specified in the request
@throws SystemException                an unknown exception occurred
@throws NoSuchResourceException        the query didn't match any resources
@throws NoSuchParentResourceException  a specified parent resource doesn't exist
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java