private DeferredResult<Void> queryExistingContainerStates(String containerHostLink) { QueryTask queryTask = QueryUtil.buildPropertyQuery(ContainerState.class, ContainerState.FIELD_NAME_PARENT_LINK, containerHostLink); DeferredResult<Void> df = new DeferredResult<>(); new ServiceDocumentQuery<ContainerState>(host, ContainerState.class) .query(queryTask, processContainerStatesQueryResults(df)); return df; }
@Before public void setUp() throws Throwable { query = new ServiceDocumentQuery<>(host, ContainerDescription.class); descs = new ArrayList<>(); waitForServiceAvailability(ContainerDescriptionService.FACTORY_LINK); }
public SubscriptionManager(ServiceHost host, String uniqueSubscriptionId, String subscribeForServiceLink, Class<T> type, boolean useSubscriptionPollingStrategy) { AssertUtil.assertNotNull(host, "serviceHost"); AssertUtil.assertNotEmpty(subscribeForServiceLink, "subscribeForServiceLink"); AssertUtil.assertNotNull(type, "type"); AssertUtil.assertNotNull(uniqueSubscriptionId, "uniqueSubscriptionId"); this.host = host; this.type = type; this.uniqueSubscriptionId = uniqueSubscriptionId; this.subscribeForServiceLink = subscribeForServiceLink; this.subscribeForNotifications = useSubscriptionPollingStrategy ? !SUBSCRIPTION_POLLING_STRATEGY : true; this.documentQuery = new ServiceDocumentQuery<T>(host, type); }
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 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 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); } }); }
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); } }); }
public DockerDriverBase(ServiceHost serviceHost, DriverRegistry driverRegistry, ClosureDockerClientFactory dockerClientFactory) { this.serviceHost = serviceHost; this.driverRegistry = driverRegistry; this.dockerClientFactory = dockerClientFactory; this.trustCertificates = new AtomicReference<>(); this.subscriptionManager = new SubscriptionManager<>(serviceHost, serviceHost.getId() + getDockerImage(), SSL_TRUST_CONFIG_SUBSCRIBE_FOR_LINK, ConfigurationService.ConfigurationState.class, true); this.sslTrustQuery = new ServiceDocumentQuery<SslTrustCertificateState>(serviceHost, SslTrustCertificateState.class); queryHandler = new ClosureSslTrustQueryCompletionHandler(); subscribeForSslTrustCertNotifications(); loadSslTrustCertServices(); }
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); } }); } }
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); } }); }
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 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 queryExistingContainerStates(ContainerListCallback body) { String containerHostLink = body.containerHostLink; QueryTask queryTask = QueryUtil.buildPropertyQuery(ContainerState.class, ContainerState.FIELD_NAME_PARENT_LINK, containerHostLink); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(queryTask, processContainerStatesQueryResults(body)); }
@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); } }); }
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<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 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 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; }
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; }
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(); } }