@Override public void accept(ServiceDocumentQueryElementResult<SslTrustCertificateState> result) { if (result.hasException()) { Utils.logWarning("Exception during ssl trust cert loading: %s", (result.getException() instanceof CancellationException) ? result.getException().getClass().getName() : Utils.toString(result.getException())); } else if (result.hasResult()) { SslTrustCertificateState sslTrustCert = result.getResult(); trustedCerts.add(sslTrustCert.certificate); } else { StringBuilder sb = new StringBuilder(); for (String certificate : trustedCerts) { sb.append('\n').append(certificate); } trustCertificates.set(ClosureUtils.compress((sb.toString()))); } }
private void queryContainersByHost(AdapterRequest state, Consumer<List<ContainerState>> callback) { String parentLink = state.resourceReference.getPath(); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerContainerToHostState.class, MockDockerContainerToHostState.FIELD_NAME_PARENT_LINK, parentLink); QueryUtil.addExpandOption(q); List<ContainerState> containerStates = new ArrayList<>(); new ServiceDocumentQuery<>(getHost(), MockDockerContainerToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { containerStates.add(buildContainer(r.getResult())); } else { callback.accept(containerStates); } }); }
private void queryVolumesByHost(AdapterRequest state, Consumer<List<ContainerVolumeState>> callback) { String hostLink = state.resourceReference.getPath(); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerVolumeToHostState.class, MockDockerVolumeToHostState.FIELD_NAME_HOST_LINK, hostLink); QueryUtil.addExpandOption(q); List<ContainerVolumeState> volumeStates = new ArrayList< >(); new ServiceDocumentQuery<>(getHost(), MockDockerVolumeToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { volumeStates.add(buildContainerVolume(r.getResult())); } else { callback.accept(volumeStates); } }); }
@SuppressWarnings("unchecked") @Override public void handlePost(Operation post) { logInfo("Population of favorite images for specific tenants triggered."); List<String> tenantLinks = post.getBody(List.class); List<FavoriteImage> globalFavorites = new LinkedList<>(); QueryTask queryTask = QueryUtil.buildQuery(FavoriteImage.class, true, QueryUtil.addTenantClause(null)); QueryUtil.addExpandOption(queryTask); new ServiceDocumentQuery<>(getHost(), FavoriteImage.class) .query(queryTask, r -> { if (r.hasException()) { post.fail(r.getException()); } else if (r.hasResult()) { globalFavorites.add(r.getResult()); } else { createFavoriteImagesBasedOnFlagStatus(post, tenantLinks, globalFavorites); } }); }
public <T extends ServiceDocument> List<T> getDocumentsOfType(Class<T> type) throws Throwable { TestContext ctx = testCreate(1); QueryTask query = QueryUtil.addExpandOption(QueryUtil.buildQuery(type, true)); List<T> result = new LinkedList<>(); new ServiceDocumentQuery<>( host, type) .query(query, (r) -> { if (r.hasException()) { ctx.failIteration(r.getException()); return; } else if (r.hasResult()) { result.add(r.getResult()); } else { ctx.completeIteration(); } }); ctx.await(); return result; }
public List<String> getDocumentLinksOfType(Class<? extends ServiceDocument> type) throws Throwable { TestContext ctx = testCreate(1); QueryTask query = QueryUtil.buildQuery(type, true); List<String> result = new LinkedList<>(); new ServiceDocumentQuery<>( host, type).query(query, (r) -> { if (r.hasException()) { ctx.failIteration(r.getException()); return; } else if (r.hasResult()) { result.add(r.getDocumentSelfLink()); } else { ctx.completeIteration(); } }); ctx.await(); return result; }
private void verifyCompositesRemoved() throws Throwable { QueryTask q = QueryUtil.buildQuery(CompositeComponent.class, false); ServiceDocumentQuery<?> query = new ServiceDocumentQuery<>(host, CompositeComponent.class); TestContext ctx = testCreate(1); query.query(q, (r) -> { if (r.hasException()) { host.log(Level.SEVERE, "Exception during search for CompositeComponents", r.getException().getMessage()); ctx.failIteration(r.getException()); } else if (r.hasResult()) { ctx.failIteration(new IllegalStateException("CompositeComponents found!")); } else { ctx.completeIteration(); } }); ctx.await(); } }
private List<CompositeKubernetesRemovalTaskState> queryCompositeKubernetesRemovalTask() { QueryTask q = QueryUtil.buildQuery(CompositeKubernetesRemovalTaskState.class, false); q.querySpec.options = EnumSet.of(QueryOption.EXPAND_CONTENT); ServiceDocumentQuery<CompositeKubernetesRemovalTaskState> query = new ServiceDocumentQuery<>( host, CompositeKubernetesRemovalTaskState.class); List<CompositeKubernetesRemovalTaskState> result = new ArrayList<>(); TestContext ctx = testCreate(1); query.query(q, (r) -> { if (r.hasException()) { ctx.failIteration(r.getException()); } else if (r.hasResult()) { result.add(r.getResult()); } else { ctx.completeIteration(); } }); ctx.await(); return result; } }
private DeferredResult<Void> loadSubscriptions() { DeferredResult<Void> res = new DeferredResult<>(); QueryTask q = QueryUtil.buildQuery(ExtensibilitySubscription.class, false); QueryUtil.addExpandOption(q); new ServiceDocumentQuery<>(getHost(), ExtensibilitySubscription.class) .query(q, (r) -> { if (r.hasException()) { logSevere("Exception while initializing LifecycleExtensibilityManager. " + "Error: [%s]", r.getException().getMessage()); res.fail(r.getException()); } else if (r.hasResult()) { ExtensibilitySubscription state = r.getResult(); addExtensibilitySubscription(state); } else { logInfo("Loaded %d extensibility states", subscriptions.size()); res.complete(null); } }); return res; }
private List<CompositionSubTaskState> queryCompositionSubTasks() { QueryTask q = QueryUtil.buildQuery(CompositionSubTaskState.class, false); q.querySpec.options = EnumSet.of(QueryOption.EXPAND_CONTENT); ServiceDocumentQuery<CompositionSubTaskState> query = new ServiceDocumentQuery<>(host, CompositionSubTaskState.class); List<CompositionSubTaskState> result = new ArrayList<>(); TestContext ctx = testCreate(1); query.query(q, (r) -> { if (r.hasException()) { ctx.failIteration(r.getException()); } else if (r.hasResult()) { result.add(r.getResult()); } else { ctx.completeIteration(); } }); ctx.await(); return result; }
public static <R extends MultiTenantDocument> void getDocuments(Class<R> type, Consumer<List<MultiTenantDocument>> consumer, ServiceHost host, Operation post) { QueryTask queryTask = QueryUtil.buildQuery(type, true); QueryUtil.addExpandOption(queryTask); List<MultiTenantDocument> documents = new ArrayList<>(); new ServiceDocumentQuery<R>(host, type) .query(queryTask, (r) -> { if (r.hasException()) { host.log(Level.SEVERE, "Failed to query for project states"); post.fail(r.getException()); } else if (r.hasResult()) { documents.add((MultiTenantDocument) r.getResult()); } else { host.log(Level.INFO, "projects found: %d", documents.size()); consumer.accept(documents); } }); } }
protected Set<ContainerState> getExistingContainersInAdapter() { host.testStart(1); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerContainerToHostState.class); QueryUtil.addExpandOption(q); Set<ContainerState> containerStates = new HashSet<>(); new ServiceDocumentQuery<>(host, MockDockerContainerToHostState.class).query(q, (r) -> { if (r.hasException()) { host.failIteration(r.getException()); } else if (r.hasResult()) { containerStates.add(buildContainer(r.getResult())); } else { host.completeIteration(); } }); host.testWait(); return containerStates; }
@Override public void handleStart(Operation post) { QueryTask queryTask = QueryUtil.buildQuery(ProjectState.class, true); QueryUtil.addExpandOption(queryTask); List<ProjectState> projects = new ArrayList<ProjectState>(); new ServiceDocumentQuery<ProjectState>(getHost(), ProjectState.class) .query(queryTask, (r) -> { if (r.hasException()) { post.fail(r.getException()); } else if (r.hasResult()) { projects.add(r.getResult()); } else { getHost().log(Level.INFO, "projects found: %d", projects.size()); processProjects(projects, post); } }); }
@Override public void accept(ServiceDocumentQueryElementResult<SslTrustCertificateState> result) { if (result.hasException()) { Utils.logWarning("Exception during ssl trust cert loading: %s", (result.getException() instanceof CancellationException) ? result.getException().getClass().getName() : Utils.toString(result.getException())); } else if (result.hasResult()) { SslTrustCertificateState sslTrustCert = result.getResult(); self.host.log(Level.FINE, "Adding certificate %s", sslTrustCert.fingerprint); if (ServiceDocument.isDeleted(sslTrustCert)) { deleteCertificate(sslTrustCert.getAlias()); } else { loadCertificate(sslTrustCert); } } }
private Consumer<ServiceDocumentQuery.ServiceDocumentQueryElementResult<ContainerNetworkState>> processNetworkStatesQueryResults( NetworkListCallback body) { List<ContainerNetworkState> existingNetworkStates = new ArrayList<>(); return (r) -> { if (r.hasException()) { logSevere("Failed to query for existing ContainerNetworkState instances: %s", r.getException() instanceof CancellationException ? r.getException().getMessage() : Utils.toString(r.getException())); unlockCurrentDataCollectionForHost(body.containerHostLink); } else if (r.hasResult()) { existingNetworkStates.add(r.getResult()); } else { updateContainerNetworkStates(body, existingNetworkStates, body.containerHostLink); } }; }
private void queryNetworksByHost(AdapterRequest state, Consumer<List<ContainerNetworkState>> callback) { String hostLink = state.resourceReference.getPath(); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerNetworkToHostState.class, MockDockerNetworkToHostState.FIELD_NAME_HOST_LINK, hostLink); QueryUtil.addExpandOption(q); List<ContainerNetworkState> networkStates = new ArrayList< >(); new ServiceDocumentQuery<>(getHost(), MockDockerNetworkToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { networkStates.add(buildContainerNetwork(r.getResult())); } else { callback.accept(networkStates); } }); }
private void removeVolumeByReference(MockAdapterRequest state) { String volumeName = Service.getId(state.resourceReference.getPath()); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerVolumeToHostState.class, MockDockerVolumeToHostState.FIELD_NAME_NAME, volumeName); List<String> mockVolumeToHostLinks = new ArrayList<>(); new ServiceDocumentQuery<>(getHost(), MockDockerVolumeToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { mockVolumeToHostLinks.add(r.getDocumentSelfLink()); } else { removeMockVolumeFromHost(state, mockVolumeToHostLinks); } }); }
private void queryResourceNamePrefixes(ResourceNamePrefixTaskState state, boolean globalSearch) { // match on group property: QueryTask q = QueryUtil.buildQuery(ResourceNamePrefixState.class, true); q.tenantLinks = state.tenantLinks; List<String> documentLinks = new ArrayList<>(); new ServiceDocumentQuery<>(getHost(), ResourceNamePrefixState.class) .query(q, (r) -> { if (r.hasException()) { failTask("Cannot retrieve prefixes", r.getException()); } else if (r.hasResult()) { documentLinks.add(r.getDocumentSelfLink()); } else { selectResourceNamePrefix(state, documentLinks.iterator(), globalSearch); } }); }
private void removeContainerByReference(MockAdapterRequest state) { String containerName = Service.getId(state.resourceReference.getPath()); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerContainerToHostState.class, MockDockerContainerToHostState.FIELD_NAME_NAME, containerName); List<String> mockContainerToHostLinks = new ArrayList<>(); new ServiceDocumentQuery<>(getHost(), MockDockerContainerToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { mockContainerToHostLinks.add(r.getDocumentSelfLink()); } else { removeMockContainerFromHost(state, mockContainerToHostLinks); } }); }
private void removeNetworkByReference(MockAdapterRequest state) { String networkName = Service.getId(state.resourceReference.getPath()); QueryTask q = QueryUtil.buildPropertyQuery(MockDockerNetworkToHostState.class, MockDockerNetworkToHostState.FIELD_NAME_NAME, networkName); List<String> mockNetworkToHostLinks = new ArrayList<>(); new ServiceDocumentQuery<>(getHost(), MockDockerNetworkToHostState.class).query(q, (r) -> { if (r.hasException()) { patchTaskStage(state, r.getException()); } else if (r.hasResult()) { mockNetworkToHostLinks.add(r.getDocumentSelfLink()); } else { removeMockNetworkFromHost(state, mockNetworkToHostLinks); } }); }