Skip to content

Commit

Permalink
Wait for async to complete
Browse files Browse the repository at this point in the history
  • Loading branch information
timja committed Oct 28, 2022
1 parent b371aca commit 89fef0c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
13 changes: 13 additions & 0 deletions pom.xml
Expand Up @@ -42,6 +42,19 @@
<version>2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>4.2.0</version>
<scope>test</scope>
<exclusions>
<!-- JTH ships a newer version -->
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<repositories>
Expand Down
Expand Up @@ -31,12 +31,7 @@
import hudson.BulkChange;
import hudson.ExtensionList;
import hudson.Functions;
import hudson.model.Computer;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.Label;
import hudson.model.LoadStatistics;
import hudson.model.Node;
import hudson.model.*;
import hudson.model.queue.QueueTaskFuture;
import hudson.security.AuthorizationStrategy;
import hudson.slaves.NodeProvisioner;
Expand All @@ -56,12 +51,16 @@
import javax.annotation.Nonnull;
import java.io.ObjectStreamException;
import java.net.URL;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

import static java.util.concurrent.TimeUnit.SECONDS;
import static org.awaitility.Awaitility.await;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.containsString;
Expand Down Expand Up @@ -229,13 +228,13 @@ public void ui() throws Exception {

Id okId = new Id("MyCloud", "working-template", "future-agent");
provisioningListener.onStarted(okId);
slave = TrackedAgent.create(okId, j);
provisioningListener.onComplete(okId, slave);
slave.toComputer().waitUntilOnline();
Thread.sleep(500);
slave.toComputer().doDoDelete();
final Node agent = TrackedAgent.create(okId, j);
provisioningListener.onComplete(okId, agent);
agent.toComputer().waitUntilOnline();
Thread.sleep(1000L);
agent.toComputer().doDoDelete();

Thread.sleep(500);
await().atMost(10, SECONDS).until(() -> j.jenkins.getNode(agent.getNodeName()) == null);

// Then
ProvisioningActivity failedToProvision = cs.getActivityFor(failId);
Expand Down

0 comments on commit 89fef0c

Please sign in to comment.