mirror of https://github.com/apache/cloudstack.git
UT + correction bug
This commit is contained in:
parent
eb400da8ad
commit
0ea2ce5b52
|
|
@ -1,4 +1 @@
|
|||
mvn install -f "/opt/cloudstack/plugins/backup/backroll/pom.xml" -DskipTests
|
||||
mvn install -f "/opt/cloudstack/plugins/pom.xml" -DskipTests
|
||||
mvn install -f "/opt/cloudstack/client/pom.xml" -DskipTests
|
||||
mvn -pl :cloud-client-ui jetty:run
|
||||
mvn install -f "/opt/cloudstack/plugins/backup/backroll/pom.xml" -DskipTests && mvn install -f "/opt/cloudstack/plugins/pom.xml" -DskipTests && mvn install -f "/opt/cloudstack/client/pom.xml" -DskipTests && mvn -pl :cloud-client-ui jetty:run
|
||||
|
|
@ -146,7 +146,7 @@ public class BackrollBackupProvider extends AdapterBase implements BackupProvide
|
|||
try {
|
||||
isSuccess = getClient(vm.getDataCenterId()).restoreVMFromBackup(vm.getUuid(), getBackupName(backup));
|
||||
} catch (ParseException | BackrollApiException | IOException e) {
|
||||
throw new CloudRuntimeException("Failed to restore VM from Backrup");
|
||||
throw new CloudRuntimeException("Failed to restore VM from Backup");
|
||||
}
|
||||
return isSuccess;
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ public class BackrollBackupProvider extends AdapterBase implements BackupProvide
|
|||
|
||||
try {
|
||||
String urlToRequest = client.startBackupJob(vm.getUuid());
|
||||
|
||||
logger.info("BackrollProvider: urlToRequest: " + urlToRequest);
|
||||
String backupJob = urlToRequest.replace("/status/", "");
|
||||
if (!StringUtils.isEmpty(backupJob)) {
|
||||
BackupVO backup = new BackupVO();
|
||||
|
|
|
|||
|
|
@ -69,10 +69,10 @@ public class BackrollClient {
|
|||
}
|
||||
|
||||
public String startBackupJob(final String jobId) throws IOException, BackrollApiException {
|
||||
logger.info("Trying to start backup for Backroll job: {}", jobId);
|
||||
logger.info("startBackupJob : Trying to start backup for Backroll job: {}", jobId);
|
||||
String backupJob = "";
|
||||
BackrollTaskRequestResponse requestResponse = httpProvider.post(String.format("/tasks/singlebackup/%s", jobId), null, BackrollTaskRequestResponse.class);
|
||||
logger.info("BackupJob status link: {}", requestResponse.location);
|
||||
logger.info("startBackupJob : BackupJob status link: {}", requestResponse.location);
|
||||
backupJob = requestResponse.location.replace("/api/v1", "");
|
||||
return StringUtils.isEmpty(backupJob) ? null : backupJob;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,8 +136,9 @@ public class BackrollHttpClientProvider {
|
|||
logger.debug("Response received in POST request with body {} is: {} for URL {}.", xml, response.toString(), url);
|
||||
|
||||
String result = okBody(response);
|
||||
|
||||
T requestResponse = new ObjectMapper().readValue(result, classOfT);
|
||||
response.close();
|
||||
//response.close();
|
||||
|
||||
return requestResponse;
|
||||
} catch (ParseException | NotOkBodyException e) {
|
||||
|
|
@ -164,7 +165,7 @@ public class BackrollHttpClientProvider {
|
|||
|
||||
String result = okBody(response);
|
||||
T requestResponse = new ObjectMapper().readValue(result, classOfT);
|
||||
response.close();
|
||||
//response.close();
|
||||
|
||||
return requestResponse;
|
||||
} catch (NotOkBodyException e) {
|
||||
|
|
@ -190,7 +191,7 @@ public class BackrollHttpClientProvider {
|
|||
logger.debug("Response received in GET request is: {} for URL: {}.", response.toString(), url);
|
||||
|
||||
String result = okBody(response);
|
||||
response.close();
|
||||
//response.close();
|
||||
|
||||
return result;
|
||||
} catch (NotOkBodyException e) {
|
||||
|
|
@ -215,7 +216,7 @@ public class BackrollHttpClientProvider {
|
|||
|
||||
String result = okBody(response);
|
||||
T requestResponse = new ObjectMapper().readValue(result, classOfT);
|
||||
response.close();
|
||||
//response.close();
|
||||
|
||||
return requestResponse;
|
||||
} catch (NotOkBodyException e) {
|
||||
|
|
@ -235,7 +236,9 @@ public class BackrollHttpClientProvider {
|
|||
case HttpStatus.SC_ACCEPTED:
|
||||
HttpEntity bodyEntity = response.getEntity();
|
||||
try {
|
||||
logger.debug("bodyentity : {}", bodyEntity);
|
||||
result = EntityUtils.toString(bodyEntity);
|
||||
logger.debug("bodyentity : result {}", result);
|
||||
EntityUtils.consumeQuietly(bodyEntity);
|
||||
return result;
|
||||
} catch (ParseException | IOException e) {
|
||||
|
|
@ -290,6 +293,7 @@ public class BackrollHttpClientProvider {
|
|||
|
||||
String body = getWithoutParseResponse(url);
|
||||
if (!body.contains(TaskState.PENDING)) {
|
||||
logger.debug("waitGetWithoutParseResponse : result {}", body);
|
||||
return body;
|
||||
}
|
||||
|
||||
|
|
@ -301,7 +305,6 @@ public class BackrollHttpClientProvider {
|
|||
throw new BackrollApiException();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,14 +17,13 @@
|
|||
package org.apache.cloudstack.backup;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.cloudstack.backup.backroll.BackrollClient;
|
||||
|
|
@ -32,10 +31,9 @@ import org.apache.cloudstack.backup.backroll.utils.BackrollApiException;
|
|||
import org.apache.cloudstack.backup.backroll.model.BackrollTaskStatus;
|
||||
import org.apache.cloudstack.backup.backroll.model.BackrollVmBackup;
|
||||
import org.apache.cloudstack.backup.backroll.model.BackrollBackupMetrics;
|
||||
import org.apache.cloudstack.backup.backroll.model.BackrollOffering;
|
||||
import org.apache.cloudstack.backup.backroll.model.response.TaskState;
|
||||
import org.apache.cloudstack.backup.dao.BackupDao;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.ParseException;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
|
@ -46,14 +44,8 @@ import org.mockito.Spy;
|
|||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
|
||||
import net.bytebuddy.agent.VirtualMachine;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
import net.bytebuddy.agent.VirtualMachine;
|
||||
|
||||
import net.bytebuddy.agent.VirtualMachine;
|
||||
|
||||
public class BackrollBackupProviderTest {
|
||||
@Mock
|
||||
BackrollClient clientMock;
|
||||
|
|
@ -81,21 +73,119 @@ public class BackrollBackupProviderTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void listBackupOfferings_Test() {
|
||||
|
||||
public void listBackupOfferings_Test() throws BackrollApiException, IOException{
|
||||
Mockito.doReturn("dummyUrlToRequest").when(clientMock).getBackupOfferingUrl();
|
||||
Mockito.doReturn(Arrays.asList(new BackrollOffering("dummyName", "dummyId"))).when(clientMock).getBackupOfferings(Mockito.anyString());
|
||||
List<BackupOffering> results = backupProvider.listBackupOfferings(2L);
|
||||
assertTrue(results.size() == 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void takeBackup_Test() {
|
||||
// logger.info("Starting backup for VM ID {} on backroll provider", vm.getUuid());
|
||||
// final BackrollClient client = getClient(vm.getDataCenterId());
|
||||
|
||||
// try {
|
||||
// String urlToRequest = client.startBackupJob(vm.getUuid());
|
||||
|
||||
// String backupJob = urlToRequest.replace("/status/", "");
|
||||
// if (!StringUtils.isEmpty(backupJob)) {
|
||||
// BackupVO backup = new BackupVO();
|
||||
// backup.setVmId(vm.getId());
|
||||
// backup.setExternalId(backupJob);
|
||||
// backup.setType("INCREMENTAL");
|
||||
// backup.setDate(new DateTime().toDate());
|
||||
// backup.setSize(0L);
|
||||
// backup.setProtectedSize(0L);
|
||||
// backup.setStatus(Backup.Status.BackingUp);
|
||||
// backup.setBackupOfferingId(vm.getBackupOfferingId());
|
||||
// backup.setAccountId(vm.getAccountId());
|
||||
// backup.setDomainId(vm.getDomainId());
|
||||
// backup.setZoneId(vm.getDataCenterId());
|
||||
// Boolean result = backupDao.persist(backup) != null;
|
||||
// client.triggerTaskStatus(urlToRequest);
|
||||
// syncBackups(vm, null);
|
||||
// return result;
|
||||
// }
|
||||
// } catch (ParseException | BackrollApiException | IOException e) {
|
||||
// logger.debug(e.getMessage());
|
||||
// throw new CloudRuntimeException("Failed to take backup");
|
||||
// }
|
||||
// return false;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBackupMetrics_Test() {
|
||||
// final Map<VirtualMachine, Backup.Metric> metrics = new HashMap<>();
|
||||
// if (CollectionUtils.isEmpty(vms)) {
|
||||
// logger.warn("Unable to get VM Backup Metrics because the list of VMs is empty.");
|
||||
// return metrics;
|
||||
// }
|
||||
|
||||
// List<String> vmUuids = vms.stream().filter(Objects::nonNull).map(VirtualMachine::getUuid).collect(Collectors.toList());
|
||||
// logger.debug("Get Backup Metrics for VMs: {}.", String.join(", ", vmUuids));
|
||||
|
||||
// BackrollClient client = getClient(zoneId);
|
||||
// for (final VirtualMachine vm : vms) {
|
||||
// if (vm == null) {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// Metric metric;
|
||||
// try {
|
||||
// metric = client.getVirtualMachineMetrics(vm.getUuid());
|
||||
// } catch (BackrollApiException | IOException e) {
|
||||
// throw new CloudRuntimeException("Failed to retrieve backup metrics");
|
||||
// }
|
||||
// logger.debug("Metrics for VM [uuid: {}, name: {}] is [backup size: {}, data size: {}].", vm.getUuid(),
|
||||
// vm.getInstanceName(), metric.getBackupSize(), metric.getDataSize());
|
||||
// metrics.put(vm, metric);
|
||||
// }
|
||||
// return metrics;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void restoreVMFromBackup_Test() {
|
||||
public void restoreVMFromBackupTrue_Test() throws BackrollApiException, IOException {
|
||||
VMInstanceVO vmInstanceVO = new VMInstanceVO();
|
||||
vmInstanceVO.setDataCenterId(2l);
|
||||
|
||||
BackupVO backupVo = new BackupVO();
|
||||
backupVo.setExternalId("abc,defgh");
|
||||
|
||||
Mockito.doReturn(true).when(clientMock).restoreVMFromBackup(Mockito.anyString(), Mockito.anyString());
|
||||
|
||||
Boolean result = backupProvider.restoreVMFromBackup(vmInstanceVO, backupVo);
|
||||
|
||||
assertTrue(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void restoreVMFromBackupFalse_Test() throws BackrollApiException, IOException {
|
||||
VMInstanceVO vmInstanceVO = new VMInstanceVO();
|
||||
vmInstanceVO.setDataCenterId(2l);
|
||||
|
||||
BackupVO backupVo = new BackupVO();
|
||||
backupVo.setExternalId("abc,defgh");
|
||||
|
||||
Mockito.doReturn(false).when(clientMock).restoreVMFromBackup(Mockito.anyString(), Mockito.anyString());
|
||||
|
||||
try {
|
||||
backupProvider.restoreVMFromBackup(vmInstanceVO, backupVo);
|
||||
} catch (Exception e) {
|
||||
assertEquals(CloudRuntimeException.class, e.getClass());
|
||||
String expected = String.format("Failed to restore VM from Backup");
|
||||
assertEquals(expected , e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeVMFromBackupOffering_Test(){
|
||||
assertTrue(backupProvider.removeVMFromBackupOffering(new VMInstanceVO()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void willDeleteBackupsOnOfferingRemoval_Test(){
|
||||
assertTrue(backupProvider.willDeleteBackupsOnOfferingRemoval());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue