void suspendGroup(OrchestratorContext context, NodeGroup nodeGroup) throws HostStateChangeDeniedException {
        ApplicationInstanceReference applicationReference = nodeGroup.getApplicationReference();

        final SuspensionReasons suspensionReasons;
        try (ApplicationLock lock = statusService.lockApplication(context, applicationReference)) {
            ApplicationInstanceStatus appStatus = lock.getApplicationInstanceStatus();
            if (appStatus == ApplicationInstanceStatus.ALLOWED_TO_BE_DOWN) {
                return;
            }

            ApplicationApi applicationApi = applicationApiFactory.create(
                    nodeGroup, lock, clusterControllerClientFactory);
            suspensionReasons = policy.grantSuspensionRequest(context.createSubcontextWithinLock(), applicationApi);
        }

        suspensionReasons.makeLogMessage().ifPresent(log::info);
    }
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