private void suspendAllNodeGroups(OrchestratorContext context,
                                      HostName parentHostname,
                                      List<NodeGroup> nodeGroupsOrderedByApplication,
                                      boolean probe)
            throws BatchHostStateChangeDeniedException, BatchInternalErrorException {
        for (NodeGroup nodeGroup : nodeGroupsOrderedByApplication) {
            try {
                suspendGroup(context.createSubcontextForSingleAppOp(probe), nodeGroup);
            } catch (HostStateChangeDeniedException e) {
                throw new BatchHostStateChangeDeniedException(parentHostname, nodeGroup, e);
            } catch (UncheckedTimeoutException e) {
                throw e;
            } catch (RuntimeException e) {
                throw new BatchInternalErrorException(parentHostname, nodeGroup, e);
            }
        }
    }
Suspend normal operations for a group of nodes in the same application.

@param nodeGroup The group of nodes in an application.
@throws HostStateChangeDeniedException if the request cannot be met due to policy constraints.
orchestrator/src/main/java/com/yahoo/vespa/orchestrator/OrchestratorImpl.java