/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.syncope.client.cli.commands.task;
import java.util.List;
import java.util.Map;
import org.apache.syncope.client.cli.commands.CommonsResultManager;
import org.apache.syncope.common.lib.to.AbstractTaskTO;
import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.JobTO;
import org.apache.syncope.common.lib.to.NotificationTaskTO;
import org.apache.syncope.common.lib.to.PropagationTaskTO;
import org.apache.syncope.common.lib.to.PushTaskTO;
import org.apache.syncope.common.lib.to.SchedTaskTO;
import org.apache.syncope.common.lib.to.PullTaskTO;
import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.types.TaskType;
public class TaskResultManager extends CommonsResultManager {
public void printTasks(final List<AbstractTaskTO> taskTOs) {
System.out.println("");
for (final AbstractTaskTO taskTO : taskTOs) {
if (taskTO instanceof NotificationTaskTO) {
printNotificationTask((NotificationTaskTO) taskTO);
} else if (taskTO instanceof PropagationTaskTO) {
printPropagationTask((PropagationTaskTO) taskTO);
} else if (taskTO instanceof PushTaskTO) {
printPushTask((PushTaskTO) taskTO);
} else if (taskTO instanceof SchedTaskTO) {
printScheduledTask((SchedTaskTO) taskTO);
} else if (taskTO instanceof PullTaskTO) {
printPullTask((PullTaskTO) taskTO);
}
}
}
public void printTasksType(final String taskTypeString, final List<AbstractTaskTO> taskTOs) {
System.out.println("");
switch (TaskType.valueOf(taskTypeString)) {
case NOTIFICATION:
for (final AbstractTaskTO taskTO : taskTOs) {
printNotificationTask(((NotificationTaskTO) taskTO));
}
break;
case PROPAGATION:
for (final AbstractTaskTO taskTO : taskTOs) {
printPropagationTask((PropagationTaskTO) taskTO);
}
break;
case PUSH:
for (final AbstractTaskTO taskTO : taskTOs) {
printPushTask((PushTaskTO) taskTO);
}
break;
case SCHEDULED:
for (final AbstractTaskTO taskTO : taskTOs) {
printScheduledTask((SchedTaskTO) taskTO);
}
break;
case PULL:
for (final AbstractTaskTO taskTO : taskTOs) {
printPullTask((PullTaskTO) taskTO);
}
break;
default:
break;
}
}
private void printNotificationTask(final NotificationTaskTO notificationTaskTO) {
System.out.println(" - Notification task key: " + notificationTaskTO.getKey());
System.out.println(" executed: " + notificationTaskTO.isExecuted());
System.out.println(" sender: " + notificationTaskTO.getSender());
System.out.println(" subjetc: " + notificationTaskTO.getSubject());
System.out.println(" text body: " + notificationTaskTO.getTextBody());
System.out.println(" html body: " + notificationTaskTO.getHtmlBody());
System.out.println(" latest execution status: " + notificationTaskTO.getLatestExecStatus());
System.out.println(" start date: " + notificationTaskTO.getStart());
System.out.println(" end date: " + notificationTaskTO.getEnd());
System.out.println(" recipients: " + notificationTaskTO.getRecipients());
System.out.println(" trace level: " + notificationTaskTO.getTraceLevel());
printTaskExecTOs(notificationTaskTO.getExecutions());
System.out.println("");
}
private void printPropagationTask(final PropagationTaskTO propagationTaskTO) {
System.out.println(" - Propagation task key: " + propagationTaskTO.getKey());
System.out.println(" resource: " + propagationTaskTO.getResource());
System.out.println(" any key: " + propagationTaskTO.getEntityKey());
System.out.println(" any type kind: " + propagationTaskTO.getAnyTypeKind());
System.out.println(" connector object key: " + propagationTaskTO.getConnObjectKey());
System.out.println(" old connector object key: " + propagationTaskTO.getOldConnObjectKey());
System.out.println(" latest execution status: " + propagationTaskTO.getLatestExecStatus());
System.out.println(" class name: " + propagationTaskTO.getObjectClassName());
System.out.println(" attributes: " + propagationTaskTO.getAttributes());
System.out.println(" start date: " + propagationTaskTO.getStart());
System.out.println(" end date: " + propagationTaskTO.getEnd());
System.out.println(" operation: " + propagationTaskTO.getOperation());
printTaskExecTOs(propagationTaskTO.getExecutions());
System.out.println("");
}
private void printPushTask(final PushTaskTO pushTaskTO) {
System.out.println(" - Push task key: " + pushTaskTO.getKey());
System.out.println(" name: " + pushTaskTO.getName());
System.out.println(" resource: " + pushTaskTO.getResource());
System.out.println(" cron expression: " + pushTaskTO.getCronExpression());
System.out.println(" description: " + pushTaskTO.getDescription());
System.out.println(" is perform create: " + pushTaskTO.isPerformCreate());
System.out.println(" is perform delete: " + pushTaskTO.isPerformDelete());
System.out.println(" is perform update: " + pushTaskTO.isPerformUpdate());
System.out.println(" is pull status: " + pushTaskTO.isSyncStatus());
System.out.println(" start date: " + pushTaskTO.getStart());
System.out.println(" end date: " + pushTaskTO.getEnd());
System.out.println(" last execution: " + pushTaskTO.getLastExec());
System.out.println(" next execution: " + pushTaskTO.getNextExec());
System.out.println(" latest execution status: " + pushTaskTO.getLatestExecStatus());
System.out.println(" filters: " + pushTaskTO.getFilters());
System.out.println(" delegate class: " + pushTaskTO.getJobDelegateClassName());
System.out.println(" action class: " + pushTaskTO.getActionsClassNames());
System.out.println(" matching rule: " + pushTaskTO.getMatchingRule());
System.out.println(" not matching rule: " + pushTaskTO.getUnmatchingRule());
printTaskExecTOs(pushTaskTO.getExecutions());
System.out.println("");
}
private void printScheduledTask(final SchedTaskTO schedTaskTO) {
System.out.println(" - Scheduled task key: " + schedTaskTO.getKey());
System.out.println(" name: " + schedTaskTO.getName());
System.out.println(" cron expression: " + schedTaskTO.getCronExpression());
System.out.println(" description: " + schedTaskTO.getDescription());
System.out.println(" start date: " + schedTaskTO.getStart());
System.out.println(" end date: " + schedTaskTO.getEnd());
System.out.println(" last execution: " + schedTaskTO.getLastExec());
System.out.println(" next execution: " + schedTaskTO.getNextExec());
System.out.println(" latest execution status: " + schedTaskTO.getLatestExecStatus());
System.out.println(" job delegate class: " + schedTaskTO.getJobDelegateClassName());
printTaskExecTOs(schedTaskTO.getExecutions());
System.out.println("");
}
private void printPullTask(final PullTaskTO pullTaskTO) {
System.out.println(" - Pull task key: " + pullTaskTO.getKey());
System.out.println(" name: " + pullTaskTO.getName());
System.out.println(" resource: " + pullTaskTO.getResource());
System.out.println(" realm destination: " + pullTaskTO.getDestinationRealm());
System.out.println(" cron expression: " + pullTaskTO.getCronExpression());
System.out.println(" description: " + pullTaskTO.getDescription());
System.out.println(" pull mode: " + pullTaskTO.getPullMode());
System.out.println(" perform create: " + pullTaskTO.isPerformCreate());
System.out.println(" perform delete: " + pullTaskTO.isPerformDelete());
System.out.println(" perform update: " + pullTaskTO.isPerformUpdate());
System.out.println(" pull status: " + pullTaskTO.isSyncStatus());
System.out.println(" TEMPLATES:");
printTemplates(pullTaskTO.getTemplates());
System.out.println(" start date: " + pullTaskTO.getStart());
System.out.println(" end date: " + pullTaskTO.getEnd());
System.out.println(" next execution: " + pullTaskTO.getNextExec());
System.out.println(" last execution: " + pullTaskTO.getLastExec());
System.out.println(" latest execution status: " + pullTaskTO.getLatestExecStatus());
System.out.println(" job delegate class: " + pullTaskTO.getJobDelegateClassName());
System.out.println(" action class name: " + pullTaskTO.getActionsClassNames());
System.out.println(" matching rule: " + pullTaskTO.getMatchingRule());
System.out.println(" unmatching rule: " + pullTaskTO.getUnmatchingRule());
printTaskExecTOs(pullTaskTO.getExecutions());
System.out.println("");
}
private void printTemplates(final Map<String, AnyTO> templates) {
for (final Map.Entry<String, AnyTO> entrySet : templates.entrySet()) {
final String key = entrySet.getKey();
final AnyTO value = entrySet.getValue();
System.out.println(" " + key + " key: " + value.getKey()
+ " of realm" + value.getRealm()
+ " on resource " + value.getResources());
}
}
public void printTaskExecTOs(final List<ExecTO> taskExecTOs) {
for (final ExecTO taskExecTO : taskExecTOs) {
System.out.println(" EXECUTIONS: ");
System.out.println(" - task execution key: " + taskExecTO.getKey());
System.out.println(" task: " + taskExecTO.getRefDesc());
System.out.println(" message: ");
System.out.println(" ############### <BEGIN MESSAGE> ###############");
System.out.println(" message: " + taskExecTO.getMessage());
System.out.println(" ############### <END MESSAGE> ###############");
System.out.println(" status: " + taskExecTO.getStatus());
System.out.println(" start date: " + taskExecTO.getStart());
System.out.println(" end date: " + taskExecTO.getEnd());
System.out.println("");
}
}
public void printJobs(final List<JobTO> jobTOs) {
for (final JobTO jobTO : jobTOs) {
System.out.println(" TASK: " + jobTO.getRefDesc());
System.out.println(" start date: " + jobTO.getStart());
System.out.println(" running: " + jobTO.isRunning());
System.out.println(" scheduled: " + jobTO.isScheduled());
}
}
public void printDetails(final Map<String, String> details) {
printDetails("tasks details", details);
}
}