use of com.emc.storageos.security.authentication.StorageOSUser in project coprhd-controller by CoprHD.
the class ScheduledEventService method getScheduledEvent.
/**
* Get a scheduled event via its URI
* @param id target schedule event URI
* @return ScheduledEventRestRep
*/
@GET
@Path("/{id}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public ScheduledEventRestRep getScheduledEvent(@PathParam("id") String id) {
ScheduledEvent scheduledEvent = queryResource(uri(id));
StorageOSUser user = getUserFromContext();
verifyAuthorizedInTenantOrg(uri(scheduledEvent.getTenant()), user);
try {
log.info("Fetched a scheduledEvent {}:{}", scheduledEvent.getId(), ScheduleInfo.deserialize(org.apache.commons.codec.binary.Base64.decodeBase64(scheduledEvent.getScheduleInfo().getBytes(UTF_8))).toString());
} catch (Exception e) {
log.error("Failed to parse scheduledEvent.");
}
return map(scheduledEvent);
}
use of com.emc.storageos.security.authentication.StorageOSUser in project coprhd-controller by CoprHD.
the class UserPreferenceService method get.
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("")
public UserPreferencesRestRep get(@DefaultValue("") @QueryParam(SearchConstants.USER_NAME_PARAM) String username) {
StorageOSUser user = getUserFromContext();
if (StringUtils.isBlank(username)) {
username = user.getUserName();
}
verifyAuthorized(username, user);
UserPreferences userPreferences = userPreferenceManager.getPreferences(username);
return map(userPreferences);
}
use of com.emc.storageos.security.authentication.StorageOSUser in project coprhd-controller by CoprHD.
the class OrderService method deleteOrders.
/**
* @brief delete orders (that can be deleted) under given tenants within a time range
* @param startTimeStr the start time of the range (exclusive)
* @param endTimeStr the end time of the range (inclusive)
* @param tenantIDsStr A list of tenant IDs separated by ','
* @param statusStr Order status
* @return OK if a background job is submitted successfully
*/
@DELETE
@Path("")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@CheckPermission(roles = { Role.TENANT_ADMIN })
public Response deleteOrders(@DefaultValue("") @QueryParam(SearchConstants.START_TIME_PARAM) String startTimeStr, @DefaultValue("") @QueryParam(SearchConstants.END_TIME_PARAM) String endTimeStr, @DefaultValue("") @QueryParam(SearchConstants.TENANT_IDS_PARAM) String tenantIDsStr, @DefaultValue("") @QueryParam(SearchConstants.ORDER_STATUS_PARAM2) String statusStr) {
long startTimeInMS = getTime(startTimeStr, 0);
long endTimeInMS = getTime(endTimeStr, System.currentTimeMillis());
if (startTimeInMS > endTimeInMS) {
throw APIException.badRequests.endTimeBeforeStartTime(startTimeStr, endTimeStr);
}
if (tenantIDsStr.isEmpty()) {
throw APIException.badRequests.invalidParameterWithCause(SearchConstants.TENANT_IDS_PARAM, tenantIDsStr, new InvalidParameterException("tenant IDs should not be empty"));
}
OrderStatus orderStatus = getOrderStatus(statusStr, true);
if (isJobRunning()) {
throw APIException.badRequests.cannotExecuteOperationWhilePendingTask("Deleting/Downloading orders");
}
List<URI> tids = toIDs(SearchConstants.TENANT_IDS_PARAM, tenantIDsStr);
StorageOSUser user = getUserFromContext();
URI tid = URI.create(user.getTenantId());
URI uid = URI.create(user.getName());
OrderJobStatus status = new OrderJobStatus(OrderServiceJob.JobType.DELETE_ORDER, startTimeInMS, endTimeInMS, tids, tid, uid, orderStatus);
try {
saveJobInfo(status);
} catch (Exception e) {
log.error("Failed to save job info e=", e);
throw APIException.internalServerErrors.getLockFailed();
}
OrderServiceJob job = new OrderServiceJob(OrderServiceJob.JobType.DELETE_ORDER);
try {
queue.put(job);
} catch (Exception e) {
String errMsg = String.format("Failed to put the job into the queue %s", ORDER_SERVICE_QUEUE_NAME);
log.error("{} e=", errMsg, e);
APIException.internalServerErrors.genericApisvcError(errMsg, e);
}
String auditLogMsg = genDeletingOrdersMessage(startTimeStr, endTimeStr);
auditOpSuccess(OperationTypeEnum.DELETE_ORDER, auditLogMsg);
return Response.status(Response.Status.ACCEPTED).build();
}
use of com.emc.storageos.security.authentication.StorageOSUser in project coprhd-controller by CoprHD.
the class OrderService method getOrderCount.
/**
* @brief Get number of orders under given tenants within a time range
* @param startTimeStr start time
* @param endTimeStr end time
* @return number of orders within the time range of each tenant
* @throws DatabaseException when a DB error occurs
*/
@GET
@Path("/count")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@CheckPermission(roles = { Role.TENANT_ADMIN })
public OrderCount getOrderCount(@DefaultValue("") @QueryParam(SearchConstants.START_TIME_PARAM) String startTimeStr, @DefaultValue("") @QueryParam(SearchConstants.END_TIME_PARAM) String endTimeStr, @DefaultValue("") @QueryParam(SearchConstants.TENANT_IDS_PARAM) String tenantIDs) throws DatabaseException {
StorageOSUser user = getUserFromContext();
log.info("user={}", user.getName());
long startTimeInMS = getTime(startTimeStr, 0);
long endTimeInMS = getTime(endTimeStr, System.currentTimeMillis());
if (startTimeInMS > endTimeInMS) {
throw APIException.badRequests.endTimeBeforeStartTime(startTimeStr, endTimeStr);
}
List<URI> tids = toIDs(SearchConstants.TENANT_IDS_PARAM, tenantIDs);
Map<String, Long> countMap = orderManager.getOrderCount(tids, startTimeInMS, endTimeInMS);
OrderCount resp = new OrderCount(countMap);
return resp;
}
use of com.emc.storageos.security.authentication.StorageOSUser in project coprhd-controller by CoprHD.
the class OrderService method createOrder.
@POST
@Path("")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public OrderRestRep createOrder(OrderCreateParam createParam) {
StorageOSUser user = getUserFromContext();
URI tenantId = createParam.getTenantId();
if (tenantId != null) {
verifyAuthorizedInTenantOrg(tenantId, user);
} else {
tenantId = uri(user.getTenantId());
}
Order order = createNewOrder(user, tenantId, createParam);
orderManager.processOrder(order);
order = orderManager.getOrderById(order.getId());
List<OrderParameter> orderParameters = orderManager.getOrderParameters(order.getId());
auditOpSuccess(OperationTypeEnum.CREATE_ORDER, order.auditParameters());
return map(order, orderParameters);
}
Aggregations