private String getServiceMessage(DeploymentStatus serviceStatus, DeploymentContext context) {
        if (serviceStatus == null) {
            return null;
        }
        /*
         * Fetch service name from service status as
         * context can have the previous service name in case of app deploy
         */
        context.setServiceName(serviceStatus.getServiceName());
        List<DiagnosisReport> diagnosisReports = null;
        if (!DeploymentStatus.ServiceStatus.SCALING_DOWN.equals(serviceStatus.getServiceStatus())) {
            if (DeploymentStatus.ServiceStatus.NOT_DEPLOYED.equals(serviceStatus.getServiceStatus())) {
                TroubleshootingContext toubleshootingContext = new TroubleshootingContext();
                serviceNotDeployedAction.process(toubleshootingContext);
                diagnosisReports = toubleshootingContext.getDiagnosisReports();
            } else if (!DeploymentStatus.ServiceStatus.RUNNING.equals(serviceStatus.getServiceStatus())) {
                diagnosisReports = troubleshoot(context);
            }
        }
        return TroubleshootUtil.getTroubleshootMessage(diagnosisReports);
    }
ServiceStatus component acts as a bridge between workflow controller and deployer for status operation
provides link between {@link WorkflowContext} and {@link DeploymentContext}
Responsible for calling troubleshooting in case service is in Not running state
@author tushar
workflow-controller/controller-service/src/main/java/io/hyscale/controller/invoker/StatusComponentInvoker.java