@Override public Object create(String type, ApiRequest request, ResourceManager next) { validateInfraAccess(request, "create"); return super.create(type, request, next); }
@Override public Object delete(String type, String id, ApiRequest request, ResourceManager next) { validateInfraAccess(request, "delete"); return super.delete(type, id, request, next); }
@Override public Object update(String type, String id, ApiRequest request, ResourceManager next) { validateInfraAccess(request, "update"); return super.update(type, id, request, next); }
public Object resourceAction(String type, ApiRequest request, ResourceManager next) { if ("remove".equalsIgnoreCase(request.getAction())) { validateSnapshotRemove(request); } return super.resourceAction(type, request, next); }
@Override public Object list(String type, ApiRequest request, ResourceManager next) { if (request.getConditions().containsKey(ResourceIdOutputFilter.RESOURCE_ID)) { Map<String, List<Condition>> conditions = request .getConditions(); List<Condition> conditionId = conditions.get(ResourceIdOutputFilter.RESOURCE_ID); for (int i = 0; i < conditionId.size(); i++) { conditionId.set(i, new Condition(conditionId.get(i).getConditionType(), idFormatter.parseId((String) conditionId.get(i).getValue()))); } } return super.list(type, request, next); } }
@Override public Object resourceAction(String type, ApiRequest request, ResourceManager next) { if (request.getAction().equals(ServiceConstants.ACTION_SERVICE_SET_SERVICE_LINKS)) { validateServices(Long.valueOf(request.getId()), request); } return super.resourceAction(type, request, next); }
@Override public Object list(String type, ApiRequest request, ResourceManager next) { if (!request.getConditions().containsKey(ALL)) { addAccountIdCondition(request); } else { if (!request.getConditions().get(ALL).isEmpty()) { for (Condition condition:request.getConditions().get(ALL)) { if (condition.getConditionType().equals(ConditionType.EQ) && !Boolean.parseBoolean(String.valueOf(condition.getValue()))) { addAccountIdCondition(request); } else { log.debug("Dont add account id condition."); } } } } return super.list(type, request, next); }
@Override public Object create(String type, ApiRequest request, ResourceManager next) { Map<?, ?> labels = DataUtils.getFieldFromRequest(request, InstanceConstants.FIELD_LABELS, Map.class); if (labels != null) { Object l = labels.get(SystemLabels.LABEL_VOLUME_CLEANUP_STRATEGY); if (l != null && !InstanceConstants.VOLUME_REMOVE_STRATEGIES.contains(l)) { throw new ClientVisibleException(ResponseCodes.BAD_REQUEST, ValidationErrorCodes.INVALID_OPTION, String.format( "%s is an invalid value for the %s label.", l.toString(), SystemLabels.LABEL_VOLUME_CLEANUP_STRATEGY), null); } } return super.create(type, request, next); }
@Override public Object delete(String type, String id, ApiRequest request, ResourceManager next) { validateIfCertificateInUse(id); return super.delete(type, id, request, next); }
@Override public Object update(String type, String id, ApiRequest request, ResourceManager next) { Object instance = objectManager.loadResource(type, id); if (instance == null || !(instance instanceof Instance)) { return super.update(type, id, request, next); } validateInfraAccess(instance, "update"); return super.update(type, id, request, next); }
@Override public Object resourceAction(String type, ApiRequest request, ResourceManager next) { if (ACTIONS.contains(request.getAction())) { validateInUse(type, request.getId(), request, next); } return super.resourceAction(type, request, next); }
@Override public Object create(String type, ApiRequest request, ResourceManager next) { Service service = request.proxyRequestObject(Service.class); validateSelectorOnlyService(request, service); return super.create(type, request, next); }
@Override public Object delete(String type, String id, ApiRequest request, ResourceManager next) { validateInUse(type, id, request, next); return super.delete(type, id, request, next); }
@Override public Object update(String type, String id, ApiRequest request, ResourceManager next) { long accountId = Long.valueOf(id); Account anAdminAccount = accountDao.getAdminAccountExclude(accountId); if (anAdminAccount == null) { Account accountToEdit = accountDao.getAccountById(accountId); Map<String, Object> requestObject = CollectionUtils.toMap(request.getRequestObject()); boolean hasAdmin = requestObject.containsKey("kind"); if (AccountConstants.ADMIN_KIND.equalsIgnoreCase(accountToEdit.getKind()) && hasAdmin && !AccountConstants.ADMIN_KIND.equalsIgnoreCase(String.valueOf(requestObject.get("kind")))) { throw new ClientVisibleException(ResponseCodes.METHOD_NOT_ALLOWED, AccountConstants.LAST_ADMIN_ACCOUNT, "Cannot change the last admin account to not be admin.", AccountConstants.ADMIN_REQUIRED_MESSAGE); } } return super.update(type, id, request, next); }
@Override public Object resourceAction(String type, ApiRequest request, ResourceManager next) { if (ACTIONS.contains(request.getAction())) { validateInUse(type, request.getId(), request, next); } return super.resourceAction(type, request, next); }
@Override public Object create(String type, ApiRequest request, ResourceManager next) { List<?> ports = DataUtils.getFieldFromRequest(request, InstanceConstants.FIELD_PORTS, List.class); if (ports != null) { for (Object port : ports) { if (port == null) { throw new ValidationErrorException(ValidationErrorCodes.MISSING_REQUIRED, InstanceConstants.FIELD_PORTS); } /* This will parse the PortSpec and throw an error */ new PortSpec(port.toString()); } } return super.create(type, request, next); }
@Override public Object delete(String type, String id, ApiRequest request, ResourceManager next) { validateSnapshotRemove(request); return super.delete(type, id, request, next); }
@Override public Object update(String type, String id, ApiRequest request, ResourceManager next) { String cert = DataUtils.getFieldFromRequest(request, "cert", String.class); Certificate certificate = request.proxyRequestObject(Certificate.class); setCertificateFields(cert, certificate); return super.update(type, id, request, next); }
@Override public Object resourceAction(String type, ApiRequest request, ResourceManager next) { if (request.getAction().equalsIgnoreCase("remove")) { validateIfCertificateInUse(request.getId()); } return super.resourceAction(type, request, next); } }
@Override public Object create(String type, ApiRequest request, ResourceManager next) { Stack env = request.proxyRequestObject(Stack.class); validateStackName(type, request, env.getName()); return super.create(type, request, next); }