public class org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest extends org.apache.zookeeper.ZKTestCase
{
private static final org.slf4j.Logger LOG;
private static final java.lang.String SNAPSHOT_TEST_PATH;
private static final int NODE_COUNT;
private final java.lang.String hostPort;
private final int jettyAdminPort;
private org.apache.zookeeper.server.ServerCnxnFactory cnxnFactory;
private org.apache.zookeeper.server.admin.JettyAdminServer adminServer;
private org.apache.zookeeper.server.ZooKeeperServer zks;
private org.apache.zookeeper.ZooKeeper zk;
static java.io.File dataDir;
static java.io.File logDir;
public void <init>()
{
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
specialinvoke v.<org.apache.zookeeper.ZKTestCase: void <init>()>();
v = staticinvoke <org.apache.zookeeper.PortAssignment: int unique()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("127.0.0.1:\u0001");
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String hostPort> = v;
v = staticinvoke <org.apache.zookeeper.PortAssignment: int unique()>();
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort> = v;
return;
}
public void setup() throws java.lang.Exception
{
java.lang.String[] v;
org.apache.zookeeper.server.ServerCnxnFactory v, v;
int v, v, v;
org.apache.zookeeper.server.admin.JettyAdminServer v, v, v;
java.lang.String v, v, v, v, v;
boolean v;
org.apache.zookeeper.ZooKeeper v, v, v, v;
java.io.File v, v;
org.apache.zookeeper.server.ZooKeeperServer v, v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.4lw.commands.whitelist", "*");
v = new org.apache.zookeeper.server.ZooKeeperServer;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File dataDir>;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File logDir>;
specialinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void <init>(java.io.File,java.io.File,int)>(v, v, 3000);
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ZooKeeperServer zks> = v;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String hostPort>;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(":");
v = v[1];
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
v = (int) -1;
v = staticinvoke <org.apache.zookeeper.server.ServerCnxnFactory: org.apache.zookeeper.server.ServerCnxnFactory createFactory(int,int)>(v, v);
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ServerCnxnFactory cnxnFactory> = v;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ServerCnxnFactory cnxnFactory>;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ZooKeeperServer zks>;
virtualinvoke v.<org.apache.zookeeper.server.ServerCnxnFactory: void startup(org.apache.zookeeper.server.ZooKeeperServer)>(v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String hostPort>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: boolean waitForServerUp(java.lang.String,long)>(v, 120000L);
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.enableServer", "true");
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.serverPort", v);
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.rateLimiterIntervalInMS", "0");
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.snapshot.enabled", "true");
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.serializeLastProcessedZxid.enabled", "true");
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.restore.enabled", "true");
v = new org.apache.zookeeper.server.admin.JettyAdminServer;
specialinvoke v.<org.apache.zookeeper.server.admin.JettyAdminServer: void <init>()>();
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.admin.JettyAdminServer adminServer> = v;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.admin.JettyAdminServer adminServer>;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ZooKeeperServer zks>;
virtualinvoke v.<org.apache.zookeeper.server.admin.JettyAdminServer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.admin.JettyAdminServer adminServer>;
virtualinvoke v.<org.apache.zookeeper.server.admin.JettyAdminServer: void start()>();
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String hostPort>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: org.apache.zookeeper.ZooKeeper createZKClient(java.lang.String)>(v);
v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk> = v;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void setupRootACLForDigest(org.apache.zookeeper.ZooKeeper)>(v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void addAuthInfoForDigest(org.apache.zookeeper.ZooKeeper)>(v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
specialinvoke v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void createData(org.apache.zookeeper.ZooKeeper,java.lang.String,long)>(v, "/snapshot_test", 10L);
return;
}
public void tearDown() throws java.lang.Exception
{
org.apache.zookeeper.ZooKeeper v, v, v;
org.apache.zookeeper.server.ServerCnxnFactory v, v;
org.apache.zookeeper.server.ZooKeeperServer v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
org.apache.zookeeper.server.admin.JettyAdminServer v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.4lw.commands.whitelist");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.admin.enableServer");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.admin.serverPort");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.admin.rateLimiterIntervalInMS");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.admin.snapshot.enabled");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.serializeLastProcessedZxid.enabled");
staticinvoke <java.lang.System: java.lang.String clearProperty(java.lang.String)>("zookeeper.admin.restore.enabled");
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void resetRootACL(org.apache.zookeeper.ZooKeeper)>(v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void close()>();
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.admin.JettyAdminServer adminServer>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.admin.JettyAdminServer adminServer>;
virtualinvoke v.<org.apache.zookeeper.server.admin.JettyAdminServer: void shutdown()>();
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ServerCnxnFactory cnxnFactory>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ServerCnxnFactory cnxnFactory>;
virtualinvoke v.<org.apache.zookeeper.server.ServerCnxnFactory: void shutdown()>();
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ZooKeeperServer zks>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.server.ZooKeeperServer zks>;
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void shutdown()>();
label:
return;
}
public void testSnapshotAndRestoreCommand_streaming() throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.zookeeper.ZooKeeper v;
java.io.File v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
org.apache.zookeeper.server.ServerMetrics v;
int v, v, v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
virtualinvoke v.<org.apache.zookeeper.server.ServerMetrics: void resetAll()>();
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File dataDir>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File takeSnapshotAndValidate(int,java.io.File)>(v, v);
specialinvoke v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void validateSnapshotMetrics()>();
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void performRestoreAndValidate(int,java.io.File)>(v, v);
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String hostPort>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: org.apache.zookeeper.ZooKeeper createZKClient(java.lang.String)>(v);
label:
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void addAuthInfoForDigest(org.apache.zookeeper.ZooKeeper)>(v);
specialinvoke v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void createData(org.apache.zookeeper.ZooKeeper,java.lang.String,long)>(v, "/snapshot_test", 11L);
v = virtualinvoke v.<org.apache.zookeeper.ZooKeeper: int getAllChildrenNumber(java.lang.String)>("/snapshot_test");
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(21, v);
label:
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
specialinvoke v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void validateRestoreMetrics()>();
return;
catch java.lang.Throwable from label to label with label;
}
public void testClientRequest_restoreInProgress() throws java.lang.Exception
{
org.apache.zookeeper.ZooKeeper v;
java.util.concurrent.atomic.AtomicBoolean v, v;
java.lang.Runnable v, v;
java.io.File v, v;
java.util.concurrent.CountDownLatch v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
java.util.concurrent.ExecutorService v;
boolean v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File dataDir>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File takeSnapshotAndValidate(int,java.io.File)>(v, v);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int)>(2);
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(2);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest$lambda_testClientRequest_restoreInProgress_0__171: java.lang.Runnable bootstrap$(org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest,java.util.concurrent.atomic.AtomicBoolean,java.util.concurrent.CountDownLatch)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest$lambda_testClientRequest_restoreInProgress_1__172: java.lang.Runnable bootstrap$(org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest,java.io.File,java.util.concurrent.atomic.AtomicBoolean,java.util.concurrent.CountDownLatch)>(v, v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.apache.zookeeper.ZooKeeper zk>;
v = virtualinvoke v.<org.apache.zookeeper.ZooKeeper: int getAllChildrenNumber(java.lang.String)>("/restore_test");
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(50, v);
label:
return;
}
public void testRestores() throws java.lang.Exception
{
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v, v;
java.io.File v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File dataDir>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.io.File takeSnapshotAndValidate(int,java.io.File)>(v, v);
v = 0;
label:
if v >= 3 goto label;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void performRestoreAndValidate(int,java.io.File)>(v, v);
v = v + 1;
goto label;
label:
return;
}
public void testSnapshotCommand_nonStreaming() throws java.lang.Exception
{
java.net.HttpURLConnection v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendSnapshotRequest(boolean,int)>(0, v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(200, v);
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void validateResponseHeaders(java.net.HttpURLConnection)>(v);
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void displayResponsePayload(java.net.HttpURLConnection)>(v);
return;
}
public void testSnapshotCommand_disabled() throws java.lang.Exception
{
java.lang.Throwable v;
java.net.HttpURLConnection v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.snapshot.enabled", "false");
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendSnapshotRequest(boolean,int)>(1, v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(503, v);
label:
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.snapshot.enabled", "true");
goto label;
label:
v := @caughtexception;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.snapshot.enabled", "true");
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void testSnapshotCommand_serializeLastZxidDisabled() throws java.lang.Exception
{
java.lang.Throwable v;
java.net.HttpURLConnection v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(0);
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendSnapshotRequest(boolean,int)>(1, v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(500, v);
label:
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(1);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(1);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void testRestoreCommand_disabled() throws java.lang.Exception
{
java.lang.Throwable v;
java.net.HttpURLConnection v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.restore.enabled", "false");
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendRestoreRequest(int)>(v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(503, v);
label:
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.restore.enabled", "true");
goto label;
label:
v := @caughtexception;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("zookeeper.admin.restore.enabled", "true");
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void testRestoreCommand_serializeLastZxidDisabled() throws java.lang.Exception
{
java.lang.Throwable v;
java.net.HttpURLConnection v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
int v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(0);
label:
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendRestoreRequest(int)>(v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(500, v);
label:
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(1);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.zookeeper.server.ZooKeeperServer: void setSerializeLastProcessedZxidEnabled(boolean)>(1);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void testRestoreCommand_invalidSnapshotData() throws java.lang.Exception
{
java.io.OutputStream v;
java.lang.Throwable v, v;
java.net.HttpURLConnection v;
byte[] v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
java.io.ByteArrayInputStream v;
int v, v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = v.<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: int jettyAdminPort>;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendRestoreRequest(int)>(v);
v = new java.io.ByteArrayInputStream;
v = "Invalid snapshot data";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
label:
v = virtualinvoke v.<java.net.HttpURLConnection: java.io.OutputStream getOutputStream()>();
label:
staticinvoke <org.apache.zookeeper.common.IOUtils: void copyBytes(java.io.InputStream,java.io.OutputStream,int,boolean)>(v, v, 1024, 1);
label:
if v == null goto label;
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(500, v);
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void createData(org.apache.zookeeper.ZooKeeper, java.lang.String, long) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.zookeeper.CreateMode v, v;
org.apache.zookeeper.ZooKeeper v;
byte[] v, v;
java.lang.Object[] v;
long v;
java.util.ArrayList v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
byte v;
int v;
java.lang.String v, v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v := @parameter: long;
label:
v = newarray (byte)[0];
v = <org.apache.zookeeper.ZooDefs$Ids: java.util.ArrayList OPEN_ACL_UNSAFE>;
v = <org.apache.zookeeper.CreateMode: org.apache.zookeeper.CreateMode PERSISTENT>;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: java.lang.String create(java.lang.String,byte[],java.util.List,org.apache.zookeeper.CreateMode)>(v, v, v, v);
label:
goto label;
label:
v := @caughtexception;
label:
v = 0;
label:
v = v cmp v;
if v >= 0 goto label;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = "n_";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%s/%s", v);
v = newarray (byte)[0];
v = <org.apache.zookeeper.ZooDefs$Ids: java.util.ArrayList OPEN_ACL_UNSAFE>;
v = <org.apache.zookeeper.CreateMode: org.apache.zookeeper.CreateMode EPHEMERAL_SEQUENTIAL>;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: java.lang.String create(java.lang.String,byte[],java.util.List,org.apache.zookeeper.CreateMode)>(v, v, v, v);
v = v + 1;
goto label;
label:
return;
catch org.apache.zookeeper.KeeperException$NodeExistsException from label to label with label;
}
private static java.net.HttpURLConnection sendSnapshotRequest(boolean, int) throws java.lang.Exception
{
java.lang.Object[] v;
org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema v;
java.net.URL v;
java.lang.Integer v;
java.net.URLConnection v;
int v;
java.lang.String v, v, v;
boolean v;
v := @parameter: boolean;
v := @parameter: int;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String buildQueryStringForSnapshotCommand(boolean)>(v);
v = new java.net.URL;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("http://localhost:%d/commands/snapshot", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001?\u0001");
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
v = <org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema: org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema DIGEST>;
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void addAuthHeader(java.net.HttpURLConnection,org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema,boolean)>(v, v, 1);
virtualinvoke v.<java.net.HttpURLConnection: void setRequestMethod(java.lang.String)>("GET");
return v;
}
private static java.net.HttpURLConnection sendRestoreRequest(int) throws java.lang.Exception
{
java.lang.Object[] v;
org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema v;
java.net.URL v;
java.net.URLConnection v;
int v;
java.lang.String v;
java.lang.Integer v;
v := @parameter: int;
v = new java.net.URL;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("http://localhost:%d/commands/restore", v);
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
virtualinvoke v.<java.net.HttpURLConnection: void setDoOutput(boolean)>(1);
v = <org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema: org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema DIGEST>;
staticinvoke <org.apache.zookeeper.server.admin.CommandAuthTest: void addAuthHeader(java.net.HttpURLConnection,org.apache.zookeeper.server.admin.CommandAuthTest$AuthSchema,boolean)>(v, v, 1);
virtualinvoke v.<java.net.HttpURLConnection: void setRequestMethod(java.lang.String)>("POST");
return v;
}
private static java.lang.String buildQueryStringForSnapshotCommand(boolean) throws java.lang.Exception
{
java.util.HashMap v;
java.lang.String v, v;
boolean v;
v := @parameter: boolean;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("streaming", v);
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.lang.String getParamsString(java.util.Map)>(v);
return v;
}
private static java.lang.String getParamsString(java.util.Map) throws java.io.UnsupportedEncodingException
{
java.util.Iterator v;
java.util.Set v;
java.util.Map v;
int v, v, v;
java.lang.Object v, v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v;
boolean v;
v := @parameter: java.util.Map;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = staticinvoke <java.net.URLEncoder: java.lang.String encode(java.lang.String,java.lang.String)>(v, "UTF-8");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("=");
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <java.net.URLEncoder: java.lang.String encode(java.lang.String,java.lang.String)>(v, "UTF-8");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&");
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
goto label;
label:
v = v;
label:
return v;
}
private static void validateResponseHeaders(java.net.HttpURLConnection)
{
java.net.HttpURLConnection v;
org.slf4j.Logger v, v;
int v;
java.lang.String v, v, v, v, v;
boolean v;
v := @parameter: java.net.HttpURLConnection;
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getHeaderField(java.lang.String)>("last_zxid");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Header:{}, Value:{}", "last_zxid", v);
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getHeaderField(java.lang.String)>("last_zxid");
staticinvoke <org.junit.jupiter.api.Assertions: void assertNotNull(java.lang.Object)>(v);
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getHeaderField(java.lang.String)>("snapshot_size");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Header:{}, Value:{}", "snapshot_size", v);
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getHeaderField(java.lang.String)>("snapshot_size");
staticinvoke <org.junit.jupiter.api.Assertions: void assertNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getHeaderField(java.lang.String)>("snapshot_size");
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
return;
}
private static void displayResponsePayload(java.net.HttpURLConnection) throws java.io.IOException
{
java.lang.Throwable v;
java.net.HttpURLConnection v;
org.slf4j.Logger v;
java.io.InputStreamReader v;
java.lang.StringBuilder v;
java.io.BufferedReader v;
java.lang.String v;
java.io.InputStream v;
v := @parameter: java.net.HttpURLConnection;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
v = virtualinvoke v.<java.net.HttpURLConnection: java.io.InputStream getInputStream()>();
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream)>(v);
specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
label:
v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Response payload: {}", v);
label:
virtualinvoke v.<java.io.BufferedReader: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void validateSnapshotMetrics()
{
long v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
byte v;
java.util.Map v;
java.lang.Object v, v, v;
boolean v;
double v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = staticinvoke <org.apache.zookeeper.metrics.MetricsUtils: java.util.Map currentServerMetrics()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("snapshot_error_count");
v = virtualinvoke v.<java.lang.Long: long longValue()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(long,long)>(0L, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("snapshot_rate_limited_count");
v = virtualinvoke v.<java.lang.Long: long longValue()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(long,long)>(0L, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("avg_snapshottime");
v = virtualinvoke v.<java.lang.Double: double doubleValue()>();
v = v cmpl 0.0;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
return;
}
private void validateRestoreMetrics()
{
long v, v;
org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest v;
byte v;
java.util.Map v;
java.lang.Object v, v, v;
boolean v;
double v;
v := @this: org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest;
v = staticinvoke <org.apache.zookeeper.metrics.MetricsUtils: java.util.Map currentServerMetrics()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("restore_error_count");
v = virtualinvoke v.<java.lang.Long: long longValue()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(long,long)>(0L, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("restore_rate_limited_count");
v = virtualinvoke v.<java.lang.Long: long longValue()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(long,long)>(0L, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("avg_restore_time");
v = virtualinvoke v.<java.lang.Double: double doubleValue()>();
v = v cmpl 0.0;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
return;
}
public static java.io.File takeSnapshotAndValidate(int, java.io.File) throws java.lang.Exception
{
java.lang.Throwable v, v;
java.net.HttpURLConnection v;
java.io.FileOutputStream v;
long v, v;
java.io.File v, v;
byte v;
int v, v;
java.lang.String v;
java.nio.file.Path v;
boolean v;
java.io.InputStream v;
v := @parameter: int;
v := @parameter: java.io.File;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendSnapshotRequest(boolean,int)>(1, v);
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(200, v);
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void validateResponseHeaders(java.net.HttpURLConnection)>(v);
v = new java.io.File;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/snapshot.\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.net.HttpURLConnection: java.io.InputStream getInputStream()>();
label:
v = new java.io.FileOutputStream;
specialinvoke v.<java.io.FileOutputStream: void <init>(java.io.File)>(v);
label:
staticinvoke <org.apache.zookeeper.common.IOUtils: void copyBytes(java.io.InputStream,java.io.OutputStream,int,boolean)>(v, v, 1024, 1);
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = staticinvoke <java.nio.file.Files: long size(java.nio.file.Path)>(v);
v = v cmp 0L;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
label:
virtualinvoke v.<java.io.FileOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public static void performRestoreAndValidate(int, java.io.File) throws java.lang.Exception
{
java.io.OutputStream v;
java.lang.Throwable v, v;
java.net.HttpURLConnection v;
java.util.zip.CheckedInputStream v;
java.io.File v;
int v, v;
v := @parameter: int;
v := @parameter: java.io.File;
v = staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: java.net.HttpURLConnection sendRestoreRequest(int)>(v);
v = staticinvoke <org.apache.zookeeper.server.persistence.SnapStream: java.util.zip.CheckedInputStream getInputStream(java.io.File)>(v);
label:
v = virtualinvoke v.<java.net.HttpURLConnection: java.io.OutputStream getOutputStream()>();
label:
staticinvoke <org.apache.zookeeper.common.IOUtils: void copyBytes(java.io.InputStream,java.io.OutputStream,int,boolean)>(v, v, 1024, 1);
label:
if v == null goto label;
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
if v == null goto label;
virtualinvoke v.<java.util.zip.CheckedInputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(200, v);
staticinvoke <org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: void displayResponsePayload(java.net.HttpURLConnection)>(v);
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/admin/SnapshotAndRestoreCommandTest;");
<org.apache.zookeeper.server.admin.SnapshotAndRestoreCommandTest: org.slf4j.Logger LOG> = v;
return;
}
}