@Override public void handleGet(Operation get) { try { URI registryAdapterUri = HostInitRegistryAdapterServiceConfig.registryAdapterReference; AssertUtil.assertNotNull(registryAdapterUri, "registryAdapterReference"); Map<String, String> queryParams = UriUtils.parseUriQueryParams(get.getUri()); String imageName = queryParams.get(SEARCH_QUERY_PROP_NAME); AssertUtil.assertNotNull(registryAdapterUri, SEARCH_QUERY_PROP_NAME); String rawTenantLinks = queryParams.get(TENANT_LINKS_PARAM_NAME); HashSet<String> tenantLinks = new HashSet<>(); if (rawTenantLinks != null && !rawTenantLinks.isEmpty()) { tenantLinks.addAll(Arrays.asList(rawTenantLinks.split(TENANT_LINKS_SEPARATOR))); } String projectHeader = OperationUtil.extractProjectFromHeader(get); if (projectHeader != null && !projectHeader.isEmpty()) { tenantLinks.add(projectHeader); } handleListTagsRequest(get, registryAdapterUri, imageName, tenantLinks); } catch (Exception x) { logSevere(x); get.fail(x); } }
String projectLink = OperationUtil.extractProjectFromHeader(get); if (projectLink == null || projectLink.isEmpty()) { return;
@Override public void handlePost(Operation post) { if (!post.hasBody()) { post.fail(new IllegalArgumentException("body is required")); return; } Map<String, String> queryParams = UriUtils.parseUriQueryParams(post.getUri()); String reverseParam = queryParams.remove(REVERSE_PARENT_LINKS_PARAM); boolean reverse = Boolean.TRUE.equals(Boolean.parseBoolean(reverseParam)); String projectLink = OperationUtil.extractProjectFromHeader(post); try { CompositeDescription cd = post.getBody(CompositeDescription.class); validateStateOnStart(cd); String requestURL = cd.documentSelfLink + ManagementUriParts.EXPAND_SUFFIX; cloneCompositeDescription(requestURL, reverse, null, projectLink, (cdClone) -> post.setBody(cdClone).complete()); } catch (Throwable e) { logSevere(e); post.fail(e); } }
String projectHeader = OperationUtil.extractProjectFromHeader(startOp); if (projectHeader != null) { projectLinks.add(projectHeader);
String projectLink = ConfigurationUtil.isEmbedded() ? null : extractProjectFromHeader(op);
UriUtils.URI_PARAM_ODATA_EXPAND_NO_DOLLAR_SIGN, ""); String projectLink = OperationUtil.extractProjectFromHeader(get);
private void executeClosuresQuery(Operation get, String query, Map<String, String> queryParams, Consumer<ServiceDocumentQueryElementResult<ClosureDescription>> resultConsumer) { String tenantLink = OperationUtil.extractProjectFromHeader(get); List<String> tenantLinks = null; if (tenantLink != null) {
String projectLink = OperationUtil.extractProjectFromHeader(op); if (projectLink != null && !projectLink.isEmpty()) { getDocument.addRequestHeader(OperationUtil.PROJECT_ADMIRAL_HEADER, projectLink);
tenantLink = OperationUtil.extractTenantFromProjectHeader(get); } else { tenantLink = OperationUtil.extractProjectFromHeader(get);
String projectLink = OperationUtil.extractProjectFromHeader(get); if (projectLink != null && projectLink.length() > 0) {
String resourcePoolLink = UriUtils.buildUriPath( ResourcePoolService.FACTORY_LINK, clusterId); String projectLink = OperationUtil.extractProjectFromHeader(delete); deleteHostsWithinOnePlacementZone(getHost(), resourcePoolLink, projectLink) .thenAccept(operation -> {
private void getSingleCluster(Operation get) { String clusterId = UriUtils.parseUriPathSegments(get.getUri(), CLUSTER_PATH_SEGMENT_TEMPLATE).get(CLUSTER_ID_PATH_SEGMENT); String pathPZId = UriUtils.buildUriPath( ElasticPlacementZoneConfigurationService.SELF_LINK, ResourcePoolService.FACTORY_LINK, clusterId); String projectLink = OperationUtil.extractProjectFromHeader(get); URI elasticPlacementZoneConfigurationUri = UriUtils.buildUri(getHost(), pathPZId, get.getUri().getQuery()); sendWithDeferredResult(Operation.createGet( UriUtils.buildExpandLinksQueryUri(elasticPlacementZoneConfigurationUri)) .setReferer(getUri()), ElasticPlacementZoneConfigurationState.class) .thenCompose(epzConfigState -> getInfoFromHostsWithinOnePlacementZone( projectLink, epzConfigState)) .thenAccept(clusterDto -> { if (clusterDto != null) { get.setBody(clusterDto); } }) .exceptionally(t -> { if (t != null && t.getCause() instanceof ServiceNotFoundException) { get.fail(Operation.STATUS_CODE_NOT_FOUND, t, null); } else { get.fail(t); } return null; }) .whenCompleteNotify(get); }
private void processKubernetesTemplate(String yamlContent, Operation post) { assertNotNullOrEmpty(yamlContent, "yamlContent"); String projectLink = ConfigurationUtil.isEmbedded() ? null : extractProjectFromHeader(post);
kubernetesDescription.type = KubernetesUtil.DEPLOYMENT_TYPE; String projectLink = OperationUtil.extractProjectFromHeader(post); kubernetesDescription.tenantLinks = new ArrayList<>(); kubernetesDescription.tenantLinks.add(projectLink);
private static DeferredResult<Void> handleClusterServiceOp(Service service, Operation op) { // In case of authn is not enabled do not check for authorization. if (!service.getHost().isAuthorizationEnabled()) { return DeferredResult.completed(null); } if (!(service instanceof ClusterService)) { return DeferredResult.completed(null); } String projectLink = OperationUtil.extractProjectFromHeader(op); return SecurityContextUtil.getSecurityContextForCurrentUser(service) .thenCompose(sc -> { if (sc.isCloudAdmin()) { return DeferredResult.completed(null); } else { if (op.getAction() == Action.GET && sc.isProjectAdmin(projectLink)) { return DeferredResult.completed(null); } if (isCreatePKSClusterRequest(op, sc, projectLink)) { return DeferredResult.completed(null); } } return DeferredResult.failed(new IllegalAccessError("forbidden")); }) .thenAccept(ignore -> { }); }
@Override public void handlePatch(Operation patch) { try { validateClusterPatch(patch); } catch (Throwable ex) { logWarning("Failed to verify cluster PATCH: %s", Utils.toString(ex)); patch.fail(ex); return; } String clusterId = UriUtils.parseUriPathSegments(patch.getUri(), CLUSTER_PATH_SEGMENT_TEMPLATE).get(CLUSTER_ID_PATH_SEGMENT); String projectLink = OperationUtil.extractProjectFromHeader(patch); ClusterDto patchDto = patch.getBody(ClusterDto.class); patchUnderlyingPlacementZone(clusterId, patchDto) .thenCompose(epzConfigState -> getInfoFromHostsWithinOnePlacementZone(projectLink, epzConfigState)) .thenAccept(clusterDto -> propagatePublicAddressIfNeeded(patchDto, clusterDto)) .thenAccept(clusterDto -> { if (clusterDto != null) { patch.setBody(clusterDto); } }) .whenCompleteNotify(patch); }
private static DeferredResult<Void> setProjectLinkAsTenantLink(Service service, Operation op) { String projectLink = OperationUtil.extractProjectFromHeader(op); ResourceState state = extractResourceState(service, op); if (state != null) { handleResourceState(state, projectLink, op); return DeferredResult.completed(null); } MultiTenantDocument multiTenantDocument = extractMultiTenantState(service, op); if (multiTenantDocument != null) { handleMultiTenantState(multiTenantDocument, projectLink, op); return DeferredResult.completed(null); } ContainerHostSpec hostSpec = extractContainerHostSpec(op); if (hostSpec != null) { handleContainerHostSpec(hostSpec, projectLink, op); return DeferredResult.completed(null); } RegistryHostSpec registrySpec = extractRegistryHostSpec(op); if (registrySpec != null) { handleRegistryHostSpec(registrySpec, projectLink, op); } return DeferredResult.completed(null); }
String resourcePoolLink = UriUtils.buildUriPath( ResourcePoolService.FACTORY_LINK, clusterId); String projectLink = OperationUtil.extractProjectFromHeader(get);