@Override
    public Integer call() throws Exception {
        if (!CommandUtil.isInputValid(this)) {
            return ToolConstants.INVALID_INPUT_ERROR_CODE;
        }
        List<WorkflowContext> workflowContextList = new ArrayList<>();

        for (String each : serviceList) {
            WorkflowContext context = new WorkflowContextBuilder(appName).withServiceName(each).withNamespace(namespace).withAuthConfig(authConfigBuilder.getAuthConfig()).get();
            context.addAttribute(WorkflowConstants.CLEAN_UP_SERVICE_DIR, true);
            if (!clusterValidator.validate(context)) {
                WorkflowLogger.logPersistedActivities();
                return ToolConstants.INVALID_INPUT_ERROR_CODE;
            }
            workflowContextList.add(context);
        }
        for (WorkflowContext workflowContext : workflowContextList) {
            WorkflowLogger.header(ControllerActivity.SERVICE_NAME, workflowContext.getServiceName());
            try {
                undeployComponentInvoker.execute(workflowContext);
            } catch (HyscaleException e) {
                logger.error("Error while undeploying app: {}, service: {}, in namespace: {}", appName,
                        workflowContext.getServiceName(), namespace, e);
                throw e;
            } finally {
                UndeployCommandUtil.logUndeployInfo();
            }
        }

        return ToolConstants.HYSCALE_SUCCESS_CODE;
    }
This class executes 'hyscale undeploy service' command
It is a sub-command of the 'hyscale undeploy' command

Options:
 namespace - name of the namespace from which the service has to be undeployed
 appName - name of the app in which the service is present
 serviceList - list of service names to be undeployed
<p>
Eg: hyscale undeploy service -s s1 -s s2 -a sample -n dev
<p>
Undeploys the service from the namespace in the cluster
Removes all the resources, except the pvcs from the cluster related
to the given service from the namespace.
@see HyscaleUndeployCommand
Every command/sub-command has to implement the {@link Callable} so that
whenever the command is executed the {@link #call()}
method will be invoked
workflow-controller/controller-service/src/main/java/io/hyscale/controller/commands/undeploy/HyscaleUndeploySeviceCommand.java