You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2021/04/15 06:06:24 UTC
[kudu] 01/02: [kudu-test-utils] enhance signature of
KuduTestHarness methods
This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 5443c570639a010e91636a370384e47695846a33
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Wed Apr 14 08:37:12 2021 -0700
[kudu-test-utils] enhance signature of KuduTestHarness methods
This patch enhances signature of some methods in the KuduTestHarness
class to return host and port of shut down processes and adds a few
new methods to allow to start those processes back later on. The new
functionality is necessary for a follow-up changelist.
Change-Id: I329a5035ba767abe1128cf0b2b6300116ffb205b
Reviewed-on: http://gerrit.cloudera.org:8080/17320
Tested-by: Kudu Jenkins
Reviewed-by: Andrew Wong <aw...@cloudera.com>
---
.../java/org/apache/kudu/test/KuduTestHarness.java | 65 ++++++++++++++++------
1 file changed, 49 insertions(+), 16 deletions(-)
diff --git a/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java b/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
index 0abb3f4..82017cd 100644
--- a/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
+++ b/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
@@ -201,37 +201,42 @@ public class KuduTestHarness extends ExternalResource {
}
/**
- * Helper method to kill a tablet server that serves the given tablet's
- * leader. The currently running test case will be failed if the tablet has no
- * leader after some retries, or if the tablet server was already killed.
- *
+ * Helper method to kill a tablet server that hosts the given tablet's leader
+ * replica.
* This method is thread-safe.
+ *
* @param tablet a RemoteTablet which will get its leader killed
- * @throws Exception
+ * @return the host and port of the tablet server which hosted the tablet's
+ * leader replica
+ * @throws Exception if no leader replica found after a few retries,
+ * or if the tablet server isn't running
*/
- public void killTabletLeader(RemoteTablet tablet) throws Exception {
- killTabletLeader(new LocatedTablet(tablet));
+ public HostAndPort killTabletLeader(RemoteTablet tablet) throws Exception {
+ return killTabletLeader(new LocatedTablet(tablet));
}
/**
- * Helper method to kill a tablet server that serves the given tablet's
- * leader. The currently running test case will be failed if the tablet has no
- * leader after some retries, or if the tablet server was already killed.
+ * Helper method to kill a tablet server that serves the given tablet's leader
+ * replica.
*
* This method is thread-safe.
* @param tablet a LocatedTablet which will get its leader killed
- * @throws Exception
+ * @return the host and port of the tablet server which hosted the tablet's
+ * leader replica
+ * @throws Exception if no leader replica found or if the tablet server isn't
+ * running
*/
- public void killTabletLeader(LocatedTablet tablet) throws Exception {
+ public HostAndPort killTabletLeader(LocatedTablet tablet) throws Exception {
HostAndPort hp = findLeaderTabletServer(tablet);
miniCluster.killTabletServer(hp);
+ return hp;
}
/**
* Finds the RPC port of the given tablet's leader tserver.
* @param tablet a LocatedTablet
* @return the host and port of the given tablet's leader tserver
- * @throws Exception if we are unable to find the leader tserver
+ * @throws Exception if unable to find a tablet server with leader replica
*/
public HostAndPort findLeaderTabletServer(LocatedTablet tablet)
throws Exception {
@@ -254,6 +259,17 @@ public class KuduTestHarness extends ExternalResource {
}
/**
+ * Start tablet server which has previously been registered at the specified
+ * host and port.
+ *
+ * @param hp host and port of the tablet server to start back
+ * @throws Exception
+ */
+ public void startTabletServer(HostAndPort hp) throws Exception {
+ miniCluster.startTabletServer(hp);
+ }
+
+ /**
* Find the host and port of the leader master.
* @return the host and port of the leader master
* @throws Exception if we are unable to find the leader master
@@ -266,11 +282,13 @@ public class KuduTestHarness extends ExternalResource {
* Helper method to easily kill the leader master.
*
* This method is thread-safe.
+ * @return the host and port of the detected leader master
* @throws Exception if there is an error finding or killing the leader master.
*/
- public void killLeaderMasterServer() throws Exception {
+ public HostAndPort killLeaderMasterServer() throws Exception {
HostAndPort hp = findLeaderMasterServer();
miniCluster.killMasterServer(hp);
+ return hp;
}
/**
@@ -296,22 +314,37 @@ public class KuduTestHarness extends ExternalResource {
/**
* Kills a tablet server that serves the given tablet's leader and restarts it.
* @param tablet a RemoteTablet which will get its leader killed and restarted
+ * @return the host and port of the restarted tablet server
* @throws Exception
*/
- public void restartTabletServer(RemoteTablet tablet) throws Exception {
+ public HostAndPort restartTabletServer(RemoteTablet tablet) throws Exception {
HostAndPort hp = findLeaderTabletServer(new LocatedTablet(tablet));
miniCluster.killTabletServer(hp);
miniCluster.startTabletServer(hp);
+ return hp;
}
/**
* Kills and restarts the leader master.
+ * @return the host and port of the restarted master
* @throws Exception
*/
- public void restartLeaderMaster() throws Exception {
+ public HostAndPort restartLeaderMaster() throws Exception {
HostAndPort hp = findLeaderMasterServer();
miniCluster.killMasterServer(hp);
miniCluster.startMasterServer(hp);
+ return hp;
+ }
+
+ /**
+ * Start master which has previously been registered at the specified
+ * host and port.
+ *
+ * @param hp host and port of the master to start back
+ * @throws Exception
+ */
+ public void startMaster(HostAndPort hp) throws Exception {
+ miniCluster.startMasterServer(hp);
}
/**