added details option, SYNCOPE-158
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d43268c1 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d43268c1 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d43268c1 Branch: refs/heads/SYNCOPE-156 Commit: d43268c10f022e9707b01a95ffdc55c37e91b05e Parents: 714557e Author: massi <[email protected]> Authored: Fri Oct 30 11:18:47 2015 +0100 Committer: massi <[email protected]> Committed: Fri Oct 30 11:18:55 2015 +0100 ---------------------------------------------------------------------- .../cli/commands/CommonsResultManager.java | 13 ++ .../commands/connector/ConnectorCommand.java | 5 + .../commands/connector/ConnectorDetails.java | 76 ++++++++++ .../connector/ConnectorResultManager.java | 7 +- .../cli/commands/domain/DomainCommand.java | 5 + .../cli/commands/domain/DomainDetails.java | 50 +++++++ .../commands/domain/DomainResultManager.java | 5 + .../cli/commands/logger/LoggerCommand.java | 5 + .../cli/commands/logger/LoggerDetails.java | 93 +++++++++++++ .../commands/logger/LoggerResultManager.java | 5 + .../commands/notification/NotificationList.java | 5 +- .../commands/notification/NotificationRead.java | 2 +- .../notification/NotificationResultManager.java | 23 ++++ .../cli/commands/policy/PolicyCommand.java | 5 + .../cli/commands/policy/PolicyDetails.java | 60 ++++++++ .../client/cli/commands/policy/PolicyList.java | 1 - .../commands/policy/PolicyResultManager.java | 5 + .../client/cli/commands/realm/RealmCommand.java | 5 + .../client/cli/commands/realm/RealmDetails.java | 49 +++++++ .../cli/commands/realm/RealmResultManager.java | 5 + .../cli/commands/report/ReportCommand.java | 5 + .../cli/commands/report/ReportDetails.java | 59 ++++++++ .../client/cli/commands/report/ReportList.java | 4 +- .../client/cli/commands/report/ReportRead.java | 2 +- .../commands/report/ReportResultManager.java | 9 +- .../cli/commands/resource/ResourceCommand.java | 5 + .../cli/commands/resource/ResourceDetails.java | 52 +++++++ .../resource/ResourceResultManager.java | 8 ++ .../client/cli/commands/role/RoleCommand.java | 5 + .../client/cli/commands/role/RoleDetails.java | 59 ++++++++ .../cli/commands/role/RoleResultManager.java | 5 + .../cli/commands/schema/SchemaCommand.java | 5 + .../cli/commands/schema/SchemaDetails.java | 58 ++++++++ .../commands/schema/SchemaResultManager.java | 5 + .../client/cli/commands/task/TaskCommand.java | 5 + .../client/cli/commands/task/TaskDetails.java | 137 +++++++++++++++++++ .../client/cli/commands/task/TaskList.java | 3 +- .../cli/commands/task/TaskResultManager.java | 35 +++-- .../commands/task/TaskSyncopeOperations.java | 5 +- .../client/cli/commands/user/UserCommand.java | 8 +- .../client/cli/commands/user/UserCount.java | 45 ------ .../client/cli/commands/user/UserDetails.java | 73 ++++++++++ .../cli/commands/user/UserResultManager.java | 5 + .../commands/user/UserSyncopeOperations.java | 4 - .../apache/syncope/client/cli/view/Table.java | 2 + 45 files changed, 941 insertions(+), 86 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java index 4764d4d..26873a1 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/CommonsResultManager.java @@ -18,9 +18,13 @@ */ package org.apache.syncope.client.cli.commands; +import java.util.Arrays; +import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.syncope.client.cli.view.Messages; +import org.apache.syncope.client.cli.view.Table; import org.apache.syncope.common.lib.types.ConnConfProperty; public abstract class CommonsResultManager { @@ -80,4 +84,13 @@ public abstract class CommonsResultManager { System.out.println(""); } } + + protected void printDetails(final String title, final Map<String, String> details) { + final Table.TableBuilder tableBuilder + = new Table.TableBuilder(title).header("detail").header("value"); + for (final Map.Entry<String, String> entrySet : details.entrySet()) { + tableBuilder.rowValues(new LinkedList(Arrays.asList(entrySet.getKey(), entrySet.getValue()))); + } + tableBuilder.build().print(); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java index c87055c..0110156 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorCommand.java @@ -31,6 +31,7 @@ public class ConnectorCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: connector [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n" + " --list-bundles \n" + " --list-configuration-properties\n" @@ -47,6 +48,9 @@ public class ConnectorCommand extends AbstractCommand { } switch (ConnectorOptions.fromName(input.getOption())) { + case DETAILS: + new ConnectorDetails(input).details(); + break; case LIST: new ConnectorList(input).list(); break; @@ -82,6 +86,7 @@ public class ConnectorCommand extends AbstractCommand { HELP("--help"), LIST("--list"), + DETAILS("--details"), LIST_BUNDLES("--list-bundles"), LIST_CONFIGURATION("--list-configuration-properties"), READ("--read"), http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java new file mode 100644 index 0000000..deb43ef --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorDetails.java @@ -0,0 +1,76 @@ +/* + * 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.connector; + +import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.to.ConnInstanceTO; +import org.apache.syncope.common.lib.types.ConnectorCapability; + +public class ConnectorDetails extends AbstractConnectorCommand { + + private static final String LIST_HELP_MESSAGE = "connector --details"; + + private final Input input; + + public ConnectorDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + final Map<String, String> details = new LinkedMap<>(); + final List<ConnInstanceTO> connInstanceTOs = connectorSyncopeOperations.list(); + int withCreateCapability = 0; + int withDeleteCapability = 0; + int withSearchCapability = 0; + int withSyncCapability = 0; + int withUpdateCapability = 0; + for (final ConnInstanceTO connInstanceTO : connInstanceTOs) { + if (connInstanceTO.getCapabilities().contains(ConnectorCapability.CREATE)) { + withCreateCapability++; + } + if (connInstanceTO.getCapabilities().contains(ConnectorCapability.DELETE)) { + withDeleteCapability++; + } + if (connInstanceTO.getCapabilities().contains(ConnectorCapability.SEARCH)) { + withSearchCapability++; + } + if (connInstanceTO.getCapabilities().contains(ConnectorCapability.SYNC)) { + withSyncCapability++; + } + if (connInstanceTO.getCapabilities().contains(ConnectorCapability.UPDATE)) { + withUpdateCapability++; + } + } + details.put("Total number", String.valueOf(connInstanceTOs.size())); + details.put("With create capability", String.valueOf(withCreateCapability)); + details.put("With delete capability", String.valueOf(withDeleteCapability)); + details.put("With search capability", String.valueOf(withSearchCapability)); + details.put("With sync capability", String.valueOf(withSyncCapability)); + details.put("With update capability", String.valueOf(withUpdateCapability)); + details.put("Bundles number", String.valueOf(connectorSyncopeOperations.getBundles().size())); + connectorResultManager.printDetails(details); + } else { + connectorResultManager.unnecessaryParameters(input.listParameters(), LIST_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java index 4ff92ed..be44465 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/connector/ConnectorResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.connector; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.to.ConnBundleTO; @@ -74,8 +75,6 @@ public class ConnectorResultManager extends CommonsResultManager { System.out.println(" display name: " + connBundleTO.getDisplayName()); System.out.println(" location: " + connBundleTO.getLocation()); System.out.println(" version: " + connBundleTO.getVersion()); - System.out.println(" PROPERTIES:"); - printConfPropSchema(connBundleTO.getProperties()); } } @@ -95,4 +94,8 @@ public class ConnectorResultManager extends CommonsResultManager { printConfiguration(connConfPropertys); } + + public void printDetails(final Map<String, String> details) { + printDetails("connectors details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java index adda76b..d27c613 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainCommand.java @@ -31,6 +31,7 @@ public class DomainCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: domain [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n" + " --delete \n" + " Syntax: --delete {DOMAIN-NAME} {DOMAIN-NAME} [...]\n"; @@ -41,6 +42,9 @@ public class DomainCommand extends AbstractCommand { input.setOption(Options.HELP.getOptionName()); } switch (Options.fromName(input.getOption())) { + case DETAILS: + new DomainDetails(input).details(); + break; case LIST: new DomainList(input).list(); break; @@ -63,6 +67,7 @@ public class DomainCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST("--list"), DELETE("--delete"); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java new file mode 100644 index 0000000..a4808bb --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainDetails.java @@ -0,0 +1,50 @@ +/* + * 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.domain; + +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; + +public class DomainDetails extends AbstractDomainCommand { + + private static final String LIST_HELP_MESSAGE = "domain --details"; + + private final Input input; + + public DomainDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + details.put("Total number", String.valueOf(domainSyncopeOperations.list().size())); + domainResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + domainResultManager.genericError(ex.getMessage()); + } + } else { + domainResultManager.unnecessaryParameters(input.listParameters(), LIST_HELP_MESSAGE); + } + + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java index d0b28ed..ca21592 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/domain/DomainResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.domain; import java.util.List; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.to.DomainTO; @@ -34,4 +35,8 @@ public class DomainResultManager extends CommonsResultManager { System.out.println(" > DOIMAIN NAME: " + domainTO.getKey()); System.out.println(" chiper algorithm: " + domainTO.getAdminCipherAlgorithm()); } + + public void printDetails(final Map<String, String> details) { + printDetails("domains details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java index 4d2a55e..5b0ecc8 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerCommand.java @@ -31,6 +31,7 @@ public class LoggerCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: logger [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n" + " --read \n" + " Syntax: --read {LOG-NAME} {LOG-NAME} [...]\n" @@ -50,6 +51,9 @@ public class LoggerCommand extends AbstractCommand { } switch (LoggerOptions.fromName(input.getOption())) { + case DETAILS: + new LoggerDetails(input).details(); + break; case LIST: new LoggerList(input).list(); break; @@ -84,6 +88,7 @@ public class LoggerCommand extends AbstractCommand { private enum LoggerOptions { HELP("--help"), + DETAILS("--details"), LIST("--list"), READ("--read"), UPDATE("--update"), http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java new file mode 100644 index 0000000..b86aeb9 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerDetails.java @@ -0,0 +1,93 @@ +/* + * 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.logger; + +import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.LoggerTO; + +public class LoggerDetails extends AbstractLoggerCommand { + + private static final String LIST_HELP_MESSAGE = "logger --details"; + + private final Input input; + + public LoggerDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final List<LoggerTO> loggerTOs = loggerSyncopeOperations.list(); + int debugLevel = 0; + int errorLevel = 0; + int fatalLevel = 0; + int infoLevel = 0; + int offLevel = 0; + int traceLevel = 0; + int warnLevel = 0; + for (final LoggerTO loggerTO : loggerTOs) { + switch (loggerTO.getLevel()) { + case DEBUG: + debugLevel++; + break; + case ERROR: + errorLevel++; + break; + case FATAL: + fatalLevel++; + break; + case INFO: + infoLevel++; + break; + case OFF: + offLevel++; + break; + case TRACE: + traceLevel++; + break; + case WARN: + warnLevel++; + break; + default: + break; + } + } + details.put("Total number", String.valueOf(loggerTOs.size())); + details.put("Set to DEBUG", String.valueOf(debugLevel)); + details.put("Set to ERROR", String.valueOf(errorLevel)); + details.put("Set to FATAL", String.valueOf(fatalLevel)); + details.put("Set to INFO", String.valueOf(infoLevel)); + details.put("Set to OFF", String.valueOf(offLevel)); + details.put("Set to TRACE", String.valueOf(traceLevel)); + details.put("Set to WARN", String.valueOf(warnLevel)); + loggerResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + loggerResultManager.genericError(ex.getMessage()); + } + } else { + loggerResultManager.unnecessaryParameters(input.listParameters(), LIST_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java index d6f759c..d78f5db 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/logger/LoggerResultManager.java @@ -20,6 +20,7 @@ package org.apache.syncope.client.cli.commands.logger; import java.util.Arrays; import java.util.LinkedList; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.client.cli.view.Table; import org.apache.syncope.common.lib.to.LoggerTO; @@ -57,4 +58,8 @@ public class LoggerResultManager extends CommonsResultManager { } tableBuilder.build().print(); } + + public void printDetails(final Map<String, String> details) { + printDetails("loggers details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationList.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationList.java index 9341ae2..365c02b 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationList.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationList.java @@ -20,7 +20,6 @@ package org.apache.syncope.client.cli.commands.notification; import org.apache.syncope.client.cli.Input; import org.apache.syncope.common.lib.SyncopeClientException; -import org.apache.syncope.common.lib.to.NotificationTO; public class NotificationList extends AbstractNotificationCommand { @@ -35,9 +34,7 @@ public class NotificationList extends AbstractNotificationCommand { public void list() { if (input.parameterNumber() == 0) { try { - for (final NotificationTO notificationTO : notificationSyncopeOperations.list()) { - System.out.println(notificationTO); - } + notificationResultManager.printNotifications(notificationSyncopeOperations.list()); } catch (final SyncopeClientException ex) { notificationResultManager.genericError(ex.getMessage()); } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java index d493fa5..efd2d7c 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationRead.java @@ -36,7 +36,7 @@ public class NotificationRead extends AbstractNotificationCommand { if (input.parameterNumber() >= 1) { for (final String parameter : input.getParameters()) { try { - System.out.println(notificationSyncopeOperations.read(parameter)); + notificationResultManager.printNotification(notificationSyncopeOperations.read(parameter)); } catch (final NumberFormatException ex) { notificationResultManager.notBooleanDeletedError("notification", parameter); } catch (final WebServiceException | SyncopeClientException ex) { http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java index d16d88b..45c4223 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/notification/NotificationResultManager.java @@ -18,8 +18,31 @@ */ package org.apache.syncope.client.cli.commands.notification; +import java.util.List; import org.apache.syncope.client.cli.commands.CommonsResultManager; +import org.apache.syncope.common.lib.to.NotificationTO; public class NotificationResultManager extends CommonsResultManager { + public void printNotifications(final List<NotificationTO> notificationTOs) { + for (final NotificationTO notificationTO : notificationTOs) { + printNotification(notificationTO); + } + } + + public void printNotification(final NotificationTO notificationTO) { + System.out.println(" > NOTIFICATION ID: " + notificationTO.getKey()); + System.out.println(" events: " + notificationTO.getEvents()); + System.out.println(" sender: " + notificationTO.getSender()); + System.out.println(" subject: " + notificationTO.getSubject()); + System.out.println(" recipients: " + notificationTO.getRecipients()); + System.out.println(" recipient attribute name: " + notificationTO.getRecipientAttrName()); + System.out.println(" template: " + notificationTO.getTemplate()); + System.out.println(" abouts: " + notificationTO.getAbouts()); + System.out.println(" recipient attribute types: " + notificationTO.getRecipientAttrType()); + System.out.println(" static recipient: " + notificationTO.getStaticRecipients()); + System.out.println(" trace level: " + notificationTO.getTraceLevel()); + System.out.println(" active: " + notificationTO.isActive()); + System.out.println(" self as recipient: " + notificationTO.isSelfAsRecipient()); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java index f665113..a0a697d 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyCommand.java @@ -31,6 +31,7 @@ public class PolicyCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: policy [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list-policy \n" + " Syntax: --list-policy {POLICY-TYPE} \n" + " Policy type: ACCOUNT / PASSWORD / SYNC / PUSH\n" @@ -46,6 +47,9 @@ public class PolicyCommand extends AbstractCommand { } switch (Options.fromName(input.getOption())) { + case DETAILS: + new PolicyDetails(input).details(); + break; case LIST_POLICY: new PolicyList(input).list(); break; @@ -71,6 +75,7 @@ public class PolicyCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST_POLICY("--list-policy"), READ("--read"), DELETE("--delete"); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java new file mode 100644 index 0000000..946fb4e --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyDetails.java @@ -0,0 +1,60 @@ +/* + * 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.policy; + +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.types.PolicyType; + +public class PolicyDetails extends AbstractPolicyCommand { + + private static final String DETAILS_HELP_MESSAGE = "policy --details"; + + private final Input input; + + public PolicyDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final int accountPolicySize = policySyncopeOperations.list(PolicyType.ACCOUNT).size(); + final int passwordPolicySize = policySyncopeOperations.list(PolicyType.PASSWORD).size(); + final int syncPolicySize = policySyncopeOperations.list(PolicyType.SYNC).size(); + final int pushPolicySize = policySyncopeOperations.list(PolicyType.PUSH).size(); + details.put("total number", String.valueOf(accountPolicySize + + passwordPolicySize + + syncPolicySize + + pushPolicySize)); + details.put("account policies", String.valueOf(accountPolicySize)); + details.put("password policies", String.valueOf(passwordPolicySize)); + details.put("sync policies", String.valueOf(syncPolicySize)); + details.put("push policies", String.valueOf(pushPolicySize)); + policyResultManager.printDetails(details); + } catch (final Exception ex) { + policyResultManager.genericError(ex.getMessage()); + } + } else { + policyResultManager.commandOptionError(DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java index d23fa11..0cd8ea4 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyList.java @@ -37,7 +37,6 @@ public class PolicyList extends AbstractPolicyCommand { } public void list() { - if (input.parameterNumber() == 1) { try { final PolicyType policyType = PolicyType.valueOf(input.firstParameter()); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java index 86b5d13..d130f73 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/policy/PolicyResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.policy; import java.util.LinkedList; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.policy.AbstractPolicyTO; import org.apache.syncope.common.lib.policy.AccountPolicyTO; @@ -120,4 +121,8 @@ public class PolicyResultManager extends CommonsResultManager { } System.out.println(""); } + + public void printDetails(final Map<String, String> details) { + printDetails("policies details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java index 95b8ec4..7e38415 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmCommand.java @@ -31,6 +31,7 @@ public class RealmCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: realm [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n"; @Override @@ -39,6 +40,9 @@ public class RealmCommand extends AbstractCommand { input.setOption(Options.HELP.getOptionName()); } switch (Options.fromName(input.getOption())) { + case DETAILS: + new RealmDetails(input).details(); + break; case LIST: new RealmList(input).list(); break; @@ -58,6 +62,7 @@ public class RealmCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST("--list"); private final String optionName; http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java new file mode 100644 index 0000000..b68a7b4 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmDetails.java @@ -0,0 +1,49 @@ +/* + * 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.realm; + +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; + +public class RealmDetails extends AbstractRealmCommand { + + private static final String DETAILS_HELP_MESSAGE = "realm --details"; + + private final Input input; + + public RealmDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + details.put("Total number", String.valueOf(realmSyncopeOperations.list().size())); + realmResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + realmResultManager.genericError(ex.getMessage()); + } + } else { + realmResultManager.unnecessaryParameters(input.listParameters(), DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java index bbb46d9..f6776b3 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.realm; import java.util.List; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.to.RealmTO; @@ -36,4 +37,8 @@ public class RealmResultManager extends CommonsResultManager { System.out.println(" password policy id: " + realmTO.getPasswordPolicy()); } } + + public void printDetails(final Map<String, String> details) { + printDetails("realms details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java index ac67fcf..c6304ac 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportCommand.java @@ -31,6 +31,7 @@ public class ReportCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: report [options]\n" + " Options:\n" + " --help \n" + + " --details\n" + " --list \n" + " --list-jobs \n" + " --read \n" @@ -57,6 +58,9 @@ public class ReportCommand extends AbstractCommand { case LIST: new ReportList(input).list(); break; + case DETAILS: + new ReportDetails(input).details(); + break; case LIST_JOBS: new ReportListJobs(input).list(); break; @@ -94,6 +98,7 @@ public class ReportCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST("--list"), LIST_JOBS("--list-jobs"), READ("--read"), http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java new file mode 100644 index 0000000..05fb901 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportDetails.java @@ -0,0 +1,59 @@ +/* + * 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.report; + +import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.ReportTO; + +public class ReportDetails extends AbstractReportCommand { + + private static final String LIST_HELP_MESSAGE = "report --details"; + + private final Input input; + + public ReportDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final List<ReportTO> reportTOs = reportSyncopeOperations.list(); + int withoutExecutions = 0; + for (final ReportTO reportTO : reportTOs) { + if (reportTO.getExecutions().isEmpty()) { + withoutExecutions++; + } + } + details.put("Total numbers", String.valueOf(reportTOs.size())); + details.put("Never executed", String.valueOf(withoutExecutions)); + reportResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + reportResultManager.genericError(ex.getMessage()); + } + } else { + reportResultManager.unnecessaryParameters(input.listParameters(), LIST_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportList.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportList.java index abeaf4e..1aced78 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportList.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportList.java @@ -34,9 +34,9 @@ public class ReportList extends AbstractReportCommand { public void list() { if (input.parameterNumber() == 0) { try { - reportResultManager.fromValueToView(reportSyncopeOperations.list()); + reportResultManager.printReports(reportSyncopeOperations.list()); } catch (final SyncopeClientException ex) { - reportResultManager.genericMessage(ex.getMessage()); + reportResultManager.genericError(ex.getMessage()); } } else { reportResultManager.unnecessaryParameters(input.listParameters(), LIST_HELP_MESSAGE); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java index acd5da0..bf21e65 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportRead.java @@ -51,7 +51,7 @@ public class ReportRead extends AbstractReportCommand { } } } - reportResultManager.fromValueToView(reportTOs); + reportResultManager.printReports(reportTOs); } else { reportResultManager.commandOptionError(READ_HELP_MESSAGE); } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java index bafdffe..c93de75 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/report/ReportResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.report; import java.util.List; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.report.AbstractReportletConf; import org.apache.syncope.common.lib.report.UserReportletConf; @@ -27,7 +28,7 @@ import org.apache.syncope.common.lib.to.ReportTO; public class ReportResultManager extends CommonsResultManager { - public void fromValueToView(final List<ReportTO> reportTOs) { + public void printReports(final List<ReportTO> reportTOs) { for (final ReportTO reportTO : reportTOs) { printReport(reportTO); } @@ -38,8 +39,6 @@ public class ReportResultManager extends CommonsResultManager { System.out.println(" name: " + reportTO.getName()); System.out.println(" cron expression: " + reportTO.getCronExpression()); System.out.println(" latest execution status: " + reportTO.getLatestExecStatus()); - System.out.println(" last execution: " + reportTO.getLastExec()); - System.out.println(" next execution: " + reportTO.getNextExec()); System.out.println(" start date: " + reportTO.getStartDate()); System.out.println(" end date: " + reportTO.getEndDate()); System.out.println(" CONF:"); @@ -73,4 +72,8 @@ public class ReportResultManager extends CommonsResultManager { System.out.println(" report id: " + reportExecTO.getReport()); } } + + public void printDetails(final Map<String, String> details) { + printDetails("reports details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java index 185cd99..f2f8145 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceCommand.java @@ -31,6 +31,7 @@ public class ResourceCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: resource [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n" + " --read \n" + " Syntax: --read {CONNECTOR-ID} {CONNECTOR-ID} [...]\n" @@ -44,6 +45,9 @@ public class ResourceCommand extends AbstractCommand { } switch (ResourceOptions.fromName(input.getOption())) { + case DETAILS: + new ResourceDetails(input).details(); + break; case LIST: new ResourceList(input).list(); break; @@ -69,6 +73,7 @@ public class ResourceCommand extends AbstractCommand { private enum ResourceOptions { HELP("--help"), + DETAILS("--details"), LIST("--list"), READ("--read"), DELETE("--delete"); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java new file mode 100644 index 0000000..25d3de7 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceDetails.java @@ -0,0 +1,52 @@ +/* + * 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.resource; + +import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.ResourceTO; + +public class ResourceDetails extends AbstractResourceCommand { + + private static final String DETAILS_HELP_MESSAGE = "resource --details"; + + private final Input input; + + public ResourceDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final List<ResourceTO> resourceTOs = resourceSyncopeOperations.list(); + details.put("Total numbers", String.valueOf(resourceTOs.size())); + resourceResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + resourceResultManager.genericError(ex.getMessage()); + } + } else { + resourceResultManager.unnecessaryParameters(input.listParameters(), DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java index 488f574..3ce923d 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/resource/ResourceResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.resource; import java.util.List; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.to.MappingItemTO; import org.apache.syncope.common.lib.to.MappingTO; @@ -53,6 +54,9 @@ public class ResourceResultManager extends CommonsResultManager { System.out.println(" delete trace level: " + resourceTO.getDeleteTraceLevel()); System.out.println(" update trace level: " + resourceTO.getUpdateTraceLevel()); System.out.println(" sync trace level: " + resourceTO.getSyncTraceLevel()); + System.out.println(" enforce mandatory condition: " + resourceTO.isEnforceMandatoryCondition()); + System.out.println(" override capabilities: " + resourceTO.isOverrideCapabilities()); + System.out.println(" random password if not provided: " + resourceTO.isRandomPwdIfNotProvided()); System.out.println(""); } @@ -89,4 +93,8 @@ public class ResourceResultManager extends CommonsResultManager { System.out.println(""); } } + + public void printDetails(final Map<String, String> details) { + printDetails("resources details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java index 63c9f09..1142a49 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleCommand.java @@ -31,6 +31,7 @@ public class RoleCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: role [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list \n" + " --read \n" + " Syntax: --read {ROLE-ID} {ROLE-ID} [...]" @@ -44,6 +45,9 @@ public class RoleCommand extends AbstractCommand { } switch (RoleOptions.fromName(input.getOption())) { + case DETAILS: + new RoleDetails(input).details(); + break; case LIST: new RoleList(input).list(); break; @@ -69,6 +73,7 @@ public class RoleCommand extends AbstractCommand { private enum RoleOptions { HELP("--help"), + DETAILS("--details"), LIST("--list"), READ("--read"), DELETE("--delete"); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java new file mode 100644 index 0000000..879d449 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleDetails.java @@ -0,0 +1,59 @@ +/* + * 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.role; + +import java.util.List; +import java.util.Map; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.RoleTO; + +public class RoleDetails extends AbstractRoleCommand { + + private static final String DETAILS_HELP_MESSAGE = "role --details"; + + private final Input input; + + public RoleDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final List<RoleTO> roleTOs = roleSyncopeOperations.list(); + int withoutEntitlements = 0; + for (final RoleTO roleTO : roleTOs) { + if (roleTO.getEntitlements() == null || roleTO.getEntitlements().isEmpty()) { + withoutEntitlements++; + } + } + details.put("Total number", String.valueOf(roleTOs.size())); + details.put("Without entitlements", String.valueOf(withoutEntitlements)); + roleResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + roleResultManager.genericError(ex.getMessage()); + } + } else { + roleResultManager.unnecessaryParameters(input.listParameters(), DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java index a672d53..aa3117c 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/role/RoleResultManager.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.cli.commands.role; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.common.lib.to.RoleTO; @@ -54,4 +55,8 @@ public class RoleResultManager extends CommonsResultManager { System.out.println(" - " + entitlement); } } + + public void printDetails(final Map<String, String> details) { + printDetails("Roles details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java index c0d3976..e58c358 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaCommand.java @@ -31,6 +31,7 @@ public class SchemaCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: schema [options]\n" + " Options:\n" + " --help \n" + + " --details \n" + " --list-all\n" + " --list-plain\n" + " --list-derived\n" @@ -47,6 +48,9 @@ public class SchemaCommand extends AbstractCommand { } switch (Options.fromName(input.getOption())) { + case DETAILS: + new SchemaDetails(input).details(); + break; case LIST: new SchemaList(input).list(); break; @@ -84,6 +88,7 @@ public class SchemaCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST("--list"), LIST_ALL("--list-all"), LIST_PLAIN("--list-plain"), http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java new file mode 100644 index 0000000..7a76836 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaDetails.java @@ -0,0 +1,58 @@ +/* + * 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.schema; + +import java.util.Map; +import javax.xml.ws.WebServiceException; +import org.apache.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.common.lib.SyncopeClientException; + +public class SchemaDetails extends AbstractSchemaCommand { + + private static final String DETAILS_HELP_MESSAGE = "schema --details"; + + private final Input input; + + public SchemaDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final int plainSchemaSize = schemaSyncopeOperations.listPlain().size(); + final int derivedSchemaSize = schemaSyncopeOperations.listDerived().size(); + final int virtualSchemaSize = schemaSyncopeOperations.listVirtual().size(); + details.put("total number", String.valueOf(plainSchemaSize + + derivedSchemaSize + + virtualSchemaSize)); + details.put("plain schema", String.valueOf(plainSchemaSize)); + details.put("derived schema", String.valueOf(derivedSchemaSize)); + details.put("virtual schema", String.valueOf(virtualSchemaSize)); + schemaResultManager.printDetails(details); + } catch (final SyncopeClientException | WebServiceException ex) { + schemaResultManager.genericError(ex.getMessage()); + } + } else { + schemaResultManager.unnecessaryParameters(input.listParameters(), DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java index 5963eb8..4618375 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/schema/SchemaResultManager.java @@ -20,6 +20,7 @@ package org.apache.syncope.client.cli.commands.schema; import java.util.Arrays; import java.util.LinkedList; +import java.util.Map; import org.apache.syncope.client.cli.commands.CommonsResultManager; import org.apache.syncope.client.cli.view.Table; import org.apache.syncope.common.lib.to.AbstractSchemaTO; @@ -93,4 +94,8 @@ public class SchemaResultManager extends CommonsResultManager { } tableBuilder.build().print(); } + + public void printDetails(final Map<String, String> details) { + printDetails("Schemas details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java index f95d69f..e7b5ce5 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskCommand.java @@ -31,6 +31,7 @@ public class TaskCommand extends AbstractCommand { private static final String HELP_MESSAGE = "Usage: task [options]\n" + " Options:\n" + " --help \n" + + " --details\n" + " --list-task \n" + " Syntax: --list-task {TASK-TYPE} \n" + " Task type: NOTIFICATION / PROPAGATION / PUSH / SCHEDULED / SYNCHRONIZATION\n" @@ -55,6 +56,9 @@ public class TaskCommand extends AbstractCommand { } switch (Options.fromName(input.getOption())) { + case DETAILS: + new TaskDetails(input).details(); + break; case LIST_TASK: new TaskList(input).list(); break; @@ -95,6 +99,7 @@ public class TaskCommand extends AbstractCommand { private enum Options { HELP("--help"), + DETAILS("--details"), LIST_TASK("--list-task"), LIST_RUNNING_JOBS("--list-running-jobs"), LIST_SCHEDULED_JOBS("--list-scheduled-jobs"), http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java new file mode 100644 index 0000000..0eba187 --- /dev/null +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskDetails.java @@ -0,0 +1,137 @@ +/* + * 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.commons.collections4.map.LinkedMap; +import org.apache.syncope.client.cli.Input; +import org.apache.syncope.client.cli.util.CommandUtils; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AbstractTaskTO; +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.SyncTaskTO; +import org.apache.syncope.common.lib.to.TaskExecTO; +import org.apache.syncope.common.lib.types.TaskType; + +public class TaskDetails extends AbstractTaskCommand { + + private static final String DETAILS_HELP_MESSAGE = "task --details"; + + private final Input input; + + public TaskDetails(final Input input) { + this.input = input; + } + + public void details() { + if (input.parameterNumber() == 0) { + try { + final Map<String, String> details = new LinkedMap<>(); + final List<AbstractTaskTO> notificationTaskTOs = taskSyncopeOperations.list(TaskType.NOTIFICATION); + final List<AbstractTaskTO> propagationTaskTOs = taskSyncopeOperations.list(TaskType.PROPAGATION); + final List<AbstractTaskTO> pushTaskTOs = taskSyncopeOperations.list(TaskType.PUSH); + final List<AbstractTaskTO> scheduledTaskTOs = taskSyncopeOperations.list(TaskType.SCHEDULED); + final List<AbstractTaskTO> syncTaskTOs = taskSyncopeOperations.list(TaskType.SYNCHRONIZATION); + final List<TaskExecTO> runningTOs = taskSyncopeOperations.listRunningJobs(); + final List<TaskExecTO> scheduledTOs = taskSyncopeOperations.listScheduledJobs(); + final int notificationTaskSize = notificationTaskTOs.size(); + int notificationNotExecuted = 0; + final int propagationTaskSize = propagationTaskTOs.size(); + int propagationNotExecuted = 0; + final int pushTaskSize = pushTaskTOs.size(); + int pushNotExecuted = 0; + final int scheduledTaskSize = scheduledTaskTOs.size(); + int scheduledNotExecuted = 0; + final int syncTaskSize = syncTaskTOs.size(); + int syncNotExecuted = 0; + int syncFull = 0; + final int runningJobsSize = runningTOs.size(); + final int scheduledJobsSize = scheduledTOs.size(); + + for (final AbstractTaskTO notificationTaskTO : notificationTaskTOs) { + if (!((NotificationTaskTO) notificationTaskTO).isExecuted()) { + notificationNotExecuted++; + } + } + + for (final AbstractTaskTO propagationTaskTO : propagationTaskTOs) { + if (((PropagationTaskTO) propagationTaskTO).getExecutions() == null + || ((PropagationTaskTO) propagationTaskTO).getExecutions().isEmpty()) { + propagationNotExecuted++; + } + } + + for (final AbstractTaskTO pushTaskTO : pushTaskTOs) { + if (((PushTaskTO) pushTaskTO).getExecutions() == null + || ((PushTaskTO) pushTaskTO).getExecutions().isEmpty()) { + pushNotExecuted++; + } + } + + for (final AbstractTaskTO scheduledTaskTO : scheduledTaskTOs) { + if (((SchedTaskTO) scheduledTaskTO).getExecutions() == null + || ((SchedTaskTO) scheduledTaskTO).getExecutions().isEmpty()) { + scheduledNotExecuted++; + } + } + + for (final AbstractTaskTO syncTaskTO : syncTaskTOs) { + if (((SyncTaskTO) syncTaskTO).getExecutions() == null + || ((SyncTaskTO) syncTaskTO).getExecutions().isEmpty()) { + syncNotExecuted++; + } + if (((SyncTaskTO) syncTaskTO).isFullReconciliation()) { + syncFull++; + } + } + + details.put("total number", String.valueOf(notificationTaskSize + + propagationTaskSize + + pushTaskSize + + scheduledTaskSize + + syncTaskSize)); + details.put("notification tasks", String.valueOf(notificationTaskSize)); + details.put("notification tasks not executed", String.valueOf(notificationNotExecuted)); + details.put("propagation tasks", String.valueOf(propagationTaskSize)); + details.put("propagation tasks not executed", String.valueOf(propagationNotExecuted)); + details.put("push tasks", String.valueOf(pushTaskSize)); + details.put("push tasks not executed", String.valueOf(pushNotExecuted)); + details.put("scheduled tasks", String.valueOf(scheduledTaskSize)); + details.put("scheduled tasks not executed", String.valueOf(scheduledNotExecuted)); + details.put("synchronization tasks", String.valueOf(syncTaskSize)); + details.put("synchronization tasks not executed", String.valueOf(syncNotExecuted)); + details.put("synchronization tasks with full reconciliation", String.valueOf(syncFull)); + details.put("running jobs", String.valueOf(runningJobsSize)); + details.put("scheduled jobs", String.valueOf(scheduledJobsSize)); + taskResultManager.printDetails(details); + } catch (final SyncopeClientException ex) { + taskResultManager.genericError(ex.getMessage()); + } catch (final IllegalArgumentException ex) { + taskResultManager.typeNotValidError( + "task", input.firstParameter(), CommandUtils.fromEnumToArray(TaskType.class)); + } + } else { + taskResultManager.commandOptionError(DETAILS_HELP_MESSAGE); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java index e01141a..2ac538e 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskList.java @@ -24,7 +24,6 @@ import org.apache.syncope.client.cli.util.CommandUtils; import org.apache.syncope.common.lib.SyncopeClientException; import org.apache.syncope.common.lib.to.AbstractTaskTO; import org.apache.syncope.common.lib.types.TaskType; -import org.apache.syncope.common.rest.api.beans.TaskQuery; public class TaskList extends AbstractTaskCommand { @@ -42,7 +41,7 @@ public class TaskList extends AbstractTaskCommand { try { final TaskType taskType = TaskType.valueOf(input.firstParameter()); final LinkedList<AbstractTaskTO> taskTOs = new LinkedList<>(); - for (final AbstractTaskTO taskTO : taskSyncopeOperations.list(taskType, new TaskQuery()).getResult()) { + for (final AbstractTaskTO taskTO : taskSyncopeOperations.list(taskType)) { taskTOs.add(taskTO); } taskResultManager.fromList(taskType, taskTOs); http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java index ad8b658..8611305 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskResultManager.java @@ -144,7 +144,6 @@ public class TaskResultManager extends CommonsResultManager { System.out.println(" matching rule: " + pushTaskTO.getMatchingRule()); System.out.println(" not matching rule: " + pushTaskTO.getUnmatchingRule()); printTaskExecTO(pushTaskTO.getExecutions()); - System.out.println(""); } @@ -176,19 +175,12 @@ public class TaskResultManager extends CommonsResultManager { System.out.println(" description: " + syncTaskTO.getDescription()); System.out.println(" is full reconciliation: " + syncTaskTO.isFullReconciliation()); - System.out.println(" is perform create: " + syncTaskTO.isPerformCreate()); - System.out.println(" is perform delete: " + syncTaskTO.isPerformDelete()); - System.out.println(" is perform update: " + syncTaskTO.isPerformUpdate()); - System.out.println(" is sync status: " + syncTaskTO.isSyncStatus()); - System.out.println(" templates:"); - for (Map.Entry<String, AnyTO> entrySet : syncTaskTO.getTemplates().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()); - - } + System.out.println(" perform create: " + syncTaskTO.isPerformCreate()); + System.out.println(" perform delete: " + syncTaskTO.isPerformDelete()); + System.out.println(" perform update: " + syncTaskTO.isPerformUpdate()); + System.out.println(" sync status: " + syncTaskTO.isSyncStatus()); + System.out.println(" TEMPLATES:"); + printTemplates(syncTaskTO.getTemplates()); System.out.println(" start date: " + syncTaskTO.getStartDate()); System.out.println(" end date: " + syncTaskTO.getEndDate()); System.out.println(" next execution: " + syncTaskTO.getNextExec()); @@ -204,6 +196,17 @@ public class TaskResultManager extends CommonsResultManager { 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 printTaskExecTO(final List<TaskExecTO> taskExecTOs) { for (final TaskExecTO taskExecTO : taskExecTOs) { System.out.println(" EXECUTIONS: "); @@ -219,4 +222,8 @@ public class TaskResultManager extends CommonsResultManager { System.out.println(""); } } + + public void printDetails(final Map<String, String> details) { + printDetails("tasks details", details); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java index 6b819e9..756efa6 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/task/TaskSyncopeOperations.java @@ -21,7 +21,6 @@ package org.apache.syncope.client.cli.commands.task; import java.util.List; import org.apache.syncope.client.cli.SyncopeServices; import org.apache.syncope.common.lib.to.AbstractTaskTO; -import org.apache.syncope.common.lib.to.PagedResult; import org.apache.syncope.common.lib.to.TaskExecTO; import org.apache.syncope.common.lib.types.JobStatusType; import org.apache.syncope.common.lib.types.TaskType; @@ -48,8 +47,8 @@ public class TaskSyncopeOperations { taskService.read(Long.valueOf(taskId)); } - public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType type, final TaskQuery query) { - return taskService.list(type, query); + public List<AbstractTaskTO> list(final TaskType type) { + return taskService.list(type, new TaskQuery()).getResult(); } public TaskExecTO readExecution(final String executionId) { http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java index f34d1d0..3595508 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCommand.java @@ -32,7 +32,7 @@ public class UserCommand extends AbstractCommand { + " Options:\n" + " --help \n" + " --list \n" - + " --count \n" + + " --details \n" + " --get-user-key\n" + " Syntax: --get-user-key {USER-ID} {USER-ID} [...]\n" + " --get-username\n" @@ -55,8 +55,8 @@ public class UserCommand extends AbstractCommand { } switch (UserOptions.fromName(input.getOption())) { - case COUNT: - new UserCount(input).count(); + case DETAILS: + new UserDetails(input).details(); break; case LIST: new UserList(input).list(); @@ -98,7 +98,7 @@ public class UserCommand extends AbstractCommand { private enum UserOptions { HELP("--help"), - COUNT("--count"), + DETAILS("--details"), LIST("--list"), GET_BY_KEY("--get-user-key"), GET_BY_USERNAME("--get-username"),
