{
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
null, new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
assertEquals(200, cres.getStatus());
ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
ShortInfo info = getBackupInfo(list);
assertNotNull(info);
assertEquals(info.getRepositoryName(), "db6");
id = info.getBackupId();
}
// Getting default RepositoryEntry
RepositoryEntry defREntry;
{
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
assertEquals(200, cres.getStatus());
defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
}
// Getting default WorkspaceEntry
WorkspaceEntry defWEntry;
{
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
assertEquals(200, cres.getStatus());
defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
}
ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
// Check the repository /db6backup.
try
{
repositoryService.getRepository("db6backup");
fail("The repository /db6backup should be not exists.");
}
catch (Exception e)
{
// ok
}
// Restore
{
// Create JSON to WorkspaceEntry
JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
JsonValue json = generatorImpl.createJsonObject(rEntry);
// Execute restore
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
headers.putSingle("Content-Type", "application/json; charset=UTF-8");
ContainerRequestUserRole creq =
new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id), new URI(""),
new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
assertEquals(200, cres.getStatus());
}
waitRepositoryRestore("db6backup");
// Get restore info
{
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
+ "db6backup"), new URI(""), null, new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
assertEquals(200, cres.getStatus());
DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
assertNotNull(info);
assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
assertNotNull(info.getStartedTime());
assertNotNull(info.getFinishedTime());
assertEquals(ShortInfo.RESTORE, info.getType().intValue());
assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
assertEquals("db6backup", info.getRepositoryName());
assertNotNull(info.getBackupConfig());
assertNotNull(repositoryService.getRepository("db6backup"));
Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
assertNotNull(sessin_ws);
assertNotNull(sessin_ws.getRootNode());
}
// Get restores info
{
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
+ HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORES_REPOSITORY), new URI(""), null,
new InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
ContainerResponse cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);