re base code
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / main / GetConsumersMenu.java
1 package org.openecomp.sdc.asdctool.main;
2
3 import fj.data.Either;
4 import org.openecomp.sdc.asdctool.cli.CLIToolData;
5 import org.openecomp.sdc.asdctool.cli.SpringCLITool;
6 import org.openecomp.sdc.asdctool.configuration.GetConsumersConfiguration;
7 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
8 import org.openecomp.sdc.be.model.operations.impl.ConsumerOperation;
9 import org.openecomp.sdc.be.resources.data.ConsumerData;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12
13 import java.util.List;
14
15 public class GetConsumersMenu extends SpringCLITool {
16
17     private static final Logger LOGGER = LoggerFactory.getLogger(GetConsumersMenu.class);
18
19     public static void main(String[] args) {
20         GetConsumersMenu getConsumersMenu = new GetConsumersMenu();
21         CLIToolData cliToolData = getConsumersMenu.init(args);
22         ConsumerOperation consumersService = cliToolData.getSpringApplicationContext().getBean(ConsumerOperation.class);
23         printConsumers(getConsumersMenu, consumersService);
24     }
25
26     private static void printConsumers(GetConsumersMenu getConsumersMenu, ConsumerOperation consumersService) {
27         Either<List<ConsumerData>, StorageOperationStatus> allConsumers = consumersService.getAll();
28         allConsumers.left().foreachDoEffect(getConsumersMenu::printConsumers);
29         allConsumers.right().foreachDoEffect(getConsumersMenu::printErr);
30     }
31
32     private void printConsumers(List<ConsumerData> consumers) {
33         System.out.println("SDC consumers: ");
34         consumers.forEach(consumer -> {
35             System.out.println("#########################");
36             System.out.println(consumer);
37         });
38         System.exit(0);
39     }
40
41     private void printErr(StorageOperationStatus err) {
42         String errMsg = String.format("failed to fetch consumers. reason: %s", err);
43         LOGGER.error(errMsg);
44         System.err.print(errMsg);
45         System.exit(1);
46     }
47
48     @Override
49     protected String commandName() {
50         return "get-consumers";
51     }
52
53     @Override
54     protected Class<?> getSpringConfigurationClass() {
55         return GetConsumersConfiguration.class;
56     }
57 }