@Override
    public Integer call() throws Exception {
        if (!CommandUtil.isInputValid(this)) {
            return ToolConstants.INVALID_INPUT_ERROR_CODE;
        }

        WorkflowContext workflowContext = new WorkflowContextBuilder(appName).withNamespace(namespace).withServiceName(serviceName).withAuthConfig(authConfigBuilder.getAuthConfig()).get();
        workflowContext.addAttribute(WorkflowConstants.TAIL_LOGS, tail);
        workflowContext.addAttribute(WorkflowConstants.LINES, line);
        workflowContext.addAttribute(WorkflowConstants.REPLICA_NAME, replicaName);

        if (!clusterValidator.validate(workflowContext)) {
            WorkflowLogger.logPersistedActivities();
            return ToolConstants.INVALID_INPUT_ERROR_CODE;
        }

        WorkflowLogger.header(ControllerActivity.SERVICE_NAME, serviceName);
        try {
            loggerUtility.deploymentLogs(workflowContext);
        } catch (HyscaleException ex) {
            return ex.getCode();
        }

        return workflowContext.isFailed() ? ToolConstants.HYSCALE_ERROR_CODE : ToolConstants.HYSCALE_SUCCESS_CODE;
    }
This class executes the 'hyscale get service logs' command
It is a sub-command of the 'hyscale get service' command

 Options :
 serviceName - name of the service
 namespace - namespace in which the app is deployed
 appName - name of the app
 tail - enable this option to tail the logs
 line - last 'n' number of lines are retrieved from the service
<p>
Eg: hyscale get service logs -s s1 -n dev -a sample
<p>
Fetches the pod logs from the given cluster
@see HyscaleGetServiceCommand .
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/get/service/HyscaleServiceLogsCommand.java