private URI stringToUri(String endPoint) { try { return new URI(endPoint); } catch (URISyntaxException e) { throw new CloudOperationException("Unable to parse Loggregator endpoint " + endPoint); } }
private UUID getRequiredApplicationId(String applicationName) { UUID applicationId = getApplicationId(applicationName); if (applicationId == null) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Application '" + applicationName + "' not found."); } return applicationId; }
public CloudSpace getSpace(CloudControllerClient client, String spaceId) { return client.getSpaces() .stream() .filter(space -> isSameSpace(space, spaceId)) .findAny() .orElseThrow( () -> new CloudOperationException(HttpStatus.NOT_FOUND, MessageFormat.format("Space with ID {0} does not exist", spaceId))); }
@Override public CloudSpace getSpace(String spaceName, boolean required) { Map<String, Object> resource = findSpaceResource(spaceName); CloudSpace space = null; if (resource != null) { space = resourceMapper.mapResource(resource, CloudSpace.class); } if (space == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Space '" + spaceName + "' not found."); } return space; }
@Override public CloudApplication getApplication(UUID appGuid, boolean required) { Map<String, Object> resource = findApplicationResource(appGuid, true); CloudApplication application = null; if (resource != null) { application = mapCloudApplication(resource); } if (application == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Application '" + appGuid + "' not found."); } return application; }
@Override public CloudServiceInstance getServiceInstance(String serviceName, boolean required) { Map<String, Object> resource = doGetServiceInstance(serviceName, 1); CloudServiceInstance serviceInstance = null; if (resource != null) { serviceInstance = resourceMapper.mapResource(resource, CloudServiceInstance.class); } if (serviceInstance == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Service instance '" + serviceName + "' not found."); } return serviceInstance; }
@Override public CloudApplication getApplication(String appName, boolean required) { Map<String, Object> resource = findApplicationResource(appName, true); CloudApplication application = null; if (resource != null) { application = mapCloudApplication(resource); } if (application == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Application '" + appName + "' not found."); } return application; }
@Override public CloudServiceBroker getServiceBroker(String name, boolean required) { Map<String, Object> resource = findServiceBrokerResource(name); CloudServiceBroker serviceBroker = null; if (resource != null) { serviceBroker = resourceMapper.mapResource(resource, CloudServiceBroker.class); } if (serviceBroker == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Service broker '" + name + "' not found."); } return serviceBroker; }
@Override public CloudService getService(String serviceName, boolean required) { Map<String, Object> resource = doGetServiceInstance(serviceName, 0); CloudService service = null; if (resource != null) { service = resourceMapper.mapResource(resource, CloudService.class); } if (service == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Service '" + serviceName + "' not found."); } return service; }
@Override public CloudStack getStack(String name, boolean required) { Map<String, Object> resource = findStackResource(name); CloudStack stack = null; if (resource != null) { stack = resourceMapper.mapResource(resource, CloudStack.class); } if (stack == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Stack '" + name + "' not found."); } return stack; }
@Override public CloudSecurityGroup getSecurityGroup(String securityGroupName, boolean required) { Map<String, Object> resource = findSecurityGroupResource(securityGroupName); CloudSecurityGroup securityGroup = null; if (resource != null) { securityGroup = resourceMapper.mapResource(resource, CloudSecurityGroup.class); } if (securityGroup == null && required) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Security group named '" + securityGroupName + "' not found."); } return securityGroup; }
@SuppressWarnings("unchecked") @Override public CrashesInfo getCrashes(String appName) { UUID appId = getApplicationId(appName); if (appId == null) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Application '" + appName + "' not found."); } Map<String, Object> urlVars = new HashMap<String, Object>(); urlVars.put("guid", appId); String resp = getRestTemplate().getForObject(getUrl("/v2/apps/{guid}/crashes"), String.class, urlVars); Map<String, Object> respMap = JsonUtil.convertJsonToMap("{ \"crashes\" : " + resp + " }"); List<Map<String, Object>> attributes = (List<Map<String, Object>>) respMap.get("crashes"); return new CrashesInfo(attributes); }
@Override public void deleteRoute(String host, String domainName) { assertSpaceProvided("delete route for domain"); UUID domainGuid = getDomainGuid(domainName, true); Map<String, String> uriInfo = new HashMap<String, String>(); uriInfo.put("host", host); UUID routeGuid = getRouteGuid(uriInfo, domainGuid); if (routeGuid == null) { throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Host '" + host + "' not found for domain '" + domainName + "'."); } doDeleteRoute(routeGuid); }
protected CloudServicePlan findPlanForService(CloudControllerClient client, CloudService service, String newPlan) { List<CloudServiceOffering> offerings = getServiceOfferings(client, service); for (CloudServiceOffering offering : offerings) { for (CloudServicePlan plan : offering.getCloudServicePlans()) { if (plan.getName() .equals(newPlan)) { return plan; } } } throw new CloudOperationException(HttpStatus.NOT_FOUND, HttpStatus.NOT_FOUND.getReasonPhrase(), MessageFormat.format(Messages.NO_SERVICE_PLAN_FOUND, service.getName(), newPlan, service.getLabel())); }
@Override public void onClose(Session session, CloseReason closeReason) { if (closeReason.getCloseCode() == CloseReason.CloseCodes.NORMAL_CLOSURE || closeReason.getCloseCode() == CloseReason.CloseCodes.GOING_AWAY) { listener.onComplete(); } else { listener.onError(new CloudOperationException("Loggregrator connection closed unexpectedly " + closeReason)); } }
private void setUpServiceRequests() { Mockito.reset(getMockedRestTemplate()); for (Exchange exchange : input.expectedExchanges) { if (exchange.responseCode == 201) { continue; } HttpStatus httpStatusCode = HttpStatus.valueOf(exchange.responseCode); Mockito.when(getMockedRestTemplate().exchange(Matchers.eq(getControllerUrl() + CREATE_SERVICE_URL), Matchers.eq(HttpMethod.POST), Matchers.any(), Matchers.eq(String.class))) .thenThrow(new CloudOperationException(httpStatusCode)); } }
private CloudOperationException asCloudOperationException(HttpStatusCodeException exception) { String description = getDescriptionFromResponseBody(exception.getResponseBodyAsString()); return new CloudOperationException(exception.getStatusCode(), exception.getStatusText(), description); }
private SSLContext buildSslContext() { try { SSLContextBuilder contextBuilder = new SSLContextBuilder(). useTLS(). loadTrustMaterial(null, new TrustSelfSignedStrategy()); return contextBuilder.build(); } catch (GeneralSecurityException e) { throw new CloudOperationException(e); } } }
@Override public void deleteServiceKey(String serviceName, final String serviceKeyName) { List<ServiceKey> serviceKeys = getServiceKeys(serviceName); for (ServiceKey serviceKey : serviceKeys) { if (serviceKey.getName() .equals(serviceKeyName)) { getRestTemplate().delete(getUrl("/v2/service_keys/{guid}"), serviceKey.getMeta() .getGuid()); return; } } throw new CloudOperationException(HttpStatus.NOT_FOUND, "Not Found", "Service key '" + serviceKeyName + "' not found."); }
private OAuth2AccessToken createToken(String username, String password, String clientId, String clientSecret) { OAuth2ProtectedResourceDetails resource = getResourceDetails(username, password, clientId, clientSecret); AccessTokenRequest request = createAccessTokenRequest(username, password); ResourceOwnerPasswordAccessTokenProvider provider = createResourceOwnerPasswordAccessTokenProvider(); try { return provider.obtainAccessToken(resource, request); } catch (OAuth2AccessDeniedException oauthEx) { HttpStatus status = HttpStatus.valueOf(oauthEx.getHttpErrorCode()); throw new CloudOperationException(status, oauthEx.getMessage(), oauthEx.getSummary()); } }