/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package util; import static util.BourneUtil.getCatalogClient; import java.net.URI; import java.util.Date; import java.util.List; import com.emc.storageos.db.client.model.uimodels.OrderStatus; import com.emc.storageos.model.RelatedResourceRep; import com.emc.vipr.client.ViPRCatalogClient2; import com.emc.vipr.client.exceptions.ViPRHttpException; import com.emc.vipr.model.catalog.ExecutionLogRestRep; import com.emc.vipr.model.catalog.ExecutionStateRestRep; import com.emc.vipr.model.catalog.OrderCount; import com.emc.vipr.model.catalog.OrderJobInfo; import com.emc.vipr.model.catalog.OrderLogRestRep; import com.emc.vipr.model.catalog.OrderRestRep; import com.google.common.collect.Lists; public class OrderUtils { public static OrderRestRep getOrder(RelatedResourceRep resource) { if (resource != null) { return getOrder(resource.getId()); } return null; } public static OrderRestRep getOrder(URI id) { ViPRCatalogClient2 catalog = getCatalogClient(); OrderRestRep order = null; try { order = catalog.orders().get(id); } catch (ViPRHttpException e) { if (e.getHttpCode() == 404) { order = null; } else { throw e; } } return order; } public static List<OrderRestRep> getOrders(URI tenantId) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getByTenant(tenantId); } public static List<OrderRestRep> getUserOrders(Date startDate, Date endDate, String maxCount, boolean ordersOnly) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getUserOrders(dateToLongStr(startDate), dateToLongStr(endDate), maxCount, ordersOnly); } public static OrderCount getUserOrdersCount(Date startDate, Date endDate) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getUserOrdersCount(dateToLongStr(startDate), dateToLongStr(endDate)); } public static OrderCount getOrdersCount(Date startDate, Date endDate, URI tenantId) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getOrdersCount(dateToLongStr(startDate), dateToLongStr(endDate), tenantId); } public static void deleteOrders(Date startDate, Date endDate, URI tenantId) { ViPRCatalogClient2 catalog = getCatalogClient(); catalog.orders().deleteOrders(dateToLongStr(startDate), dateToLongStr(endDate), tenantId, null); } public static void deactivateOrders(List<URI> ids) { ViPRCatalogClient2 catalog = getCatalogClient(); for (URI id : ids) { catalog.orders().deactivate(id); } } public static OrderJobInfo queryOrderJob(String jobType) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().queryOrderJob(jobType); } public static List<OrderRestRep> getScheduledOrders() { return getScheduledOrders(null); } public static List<OrderRestRep> getScheduledOrders(URI tenantId) { ViPRCatalogClient2 catalog = getCatalogClient(); List<OrderRestRep> scheduledOrders = catalog.orders().search().byStatus(OrderStatus.SCHEDULED.name(), tenantId).run(); return scheduledOrders; } public static List<OrderRestRep> getErrorOrders(URI tenantId) { ViPRCatalogClient2 catalog = getCatalogClient(); List<OrderRestRep> scheduledOrders = catalog.orders().search().byStatus(OrderStatus.ERROR.name(), tenantId).run(); return scheduledOrders; } public static List<OrderRestRep> getScheduledOrdersByExecutionWindow(URI executionWindowId) { return getScheduledOrdersByExecutionWindow(executionWindowId, null); } public static List<OrderRestRep> getScheduledOrdersByExecutionWindow(URI executionWindowId, URI tenantId) { List<OrderRestRep> scheduledOrders = getScheduledOrders(tenantId); List<OrderRestRep> scheduledOrdersInWindow = Lists.newArrayList(); for (OrderRestRep scheduledOrder : scheduledOrders) { if (scheduledOrder.getExecutionWindow() != null && executionWindowId.equals(scheduledOrder.getExecutionWindow().getId())) { scheduledOrdersInWindow.add(scheduledOrder); } } return scheduledOrdersInWindow; } public static List<OrderRestRep> findByTimeRange(Date startDate, Date endDate, String tenant, String maxCount) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().search().byTimeRange(dateToLongStr(startDate), dateToLongStr(endDate), URI.create(tenant), maxCount).run(); } public static void cancelOrder(URI orderId) { ViPRCatalogClient2 catalog = getCatalogClient(); catalog.orders().cancelOrder(orderId); } public static ExecutionStateRestRep getExecutionState(URI orderId) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getExecutionState(orderId); } public static List<ExecutionLogRestRep> getExecutionLogs(URI orderId) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getExecutionLogs(orderId); } public static List<OrderLogRestRep> getOrderLogs(URI orderId) { ViPRCatalogClient2 catalog = getCatalogClient(); return catalog.orders().getLogs(orderId); } public static String dateToLongStr(Date date) { String time = null; if (date != null) { time = Long.toString(date.getTime()); } return time; } }