mirror of https://github.com/apache/cloudstack.git
Refactored the names to look similar across the code
This commit is contained in:
parent
e08aac037b
commit
3f8a54bdee
|
|
@ -26,7 +26,7 @@ import com.cloud.utils.Pair;
|
|||
import org.apache.cloudstack.api.command.user.volume.AssignVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ChangeOfferingForVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckVolumeAndRepairCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckAndRepairVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
|
||||
|
|
@ -181,5 +181,5 @@ public interface VolumeApiService {
|
|||
|
||||
boolean stateTransitTo(Volume vol, Volume.Event event) throws NoTransitionException;
|
||||
|
||||
Pair<String, String> checkAndRepairVolume(CheckVolumeAndRepairCmd cmd) throws ResourceAllocationException;
|
||||
Pair<String, String> checkAndRepairVolume(CheckAndRepairVolumeCmd cmd) throws ResourceAllocationException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,15 +36,15 @@ import com.cloud.user.Account;
|
|||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.StringUtils;
|
||||
|
||||
@APICommand(name = "checkVolumeAndRepair", description = "Check the volume and repair if needed, this is currently supported for KVM only", responseObject = VolumeResponse.class, entityType = {Volume.class},
|
||||
@APICommand(name = "checkVolume", description = "Check the volume for any errors or leaks and also repairs when repair parameter is passed, this is currently supported for KVM only", responseObject = VolumeResponse.class, entityType = {Volume.class},
|
||||
since = "4.18.1",
|
||||
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User},
|
||||
requestHasSensitiveInfo = false,
|
||||
responseHasSensitiveInfo = true)
|
||||
public class CheckVolumeAndRepairCmd extends BaseCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(CheckVolumeAndRepairCmd.class.getName());
|
||||
public class CheckAndRepairVolumeCmd extends BaseCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(CheckAndRepairVolumeCmd.class.getName());
|
||||
|
||||
private static final String s_name = "checkvolumeandrepairresponse";
|
||||
private static final String s_name = "checkandrepairvolumeresponse";
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//////////////// API parameters /////////////////////
|
||||
|
|
@ -21,21 +21,21 @@ package com.cloud.agent.api.storage;
|
|||
|
||||
import com.cloud.agent.api.Answer;
|
||||
|
||||
public class CheckVolumeAndRepairAnswer extends Answer {
|
||||
public class CheckAndRepairVolumeAnswer extends Answer {
|
||||
private String volumeCheckExecutionResult;
|
||||
private String volumeRepairExecutionResult;
|
||||
|
||||
protected CheckVolumeAndRepairAnswer() {
|
||||
protected CheckAndRepairVolumeAnswer() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CheckVolumeAndRepairAnswer(CheckVolumeAndRepairCommand cmd, boolean result, String details, String volumeCheckExecutionResult, String volumeRepairedExecutionResult) {
|
||||
public CheckAndRepairVolumeAnswer(CheckAndRepairVolumeCommand cmd, boolean result, String details, String volumeCheckExecutionResult, String volumeRepairedExecutionResult) {
|
||||
super(cmd, result, details);
|
||||
this.volumeCheckExecutionResult = volumeCheckExecutionResult;
|
||||
this.volumeRepairExecutionResult = volumeRepairedExecutionResult;
|
||||
}
|
||||
|
||||
public CheckVolumeAndRepairAnswer(CheckVolumeAndRepairCommand cmd, boolean result, String details) {
|
||||
public CheckAndRepairVolumeAnswer(CheckAndRepairVolumeCommand cmd, boolean result, String details) {
|
||||
super(cmd, result, details);
|
||||
}
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ import com.cloud.agent.api.to.StorageFilerTO;
|
|||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class CheckVolumeAndRepairCommand extends Command {
|
||||
public class CheckAndRepairVolumeCommand extends Command {
|
||||
private String path;
|
||||
private StorageFilerTO pool;
|
||||
private String repair;
|
||||
|
|
@ -33,7 +33,7 @@ public class CheckVolumeAndRepairCommand extends Command {
|
|||
private byte[] passphrase;
|
||||
private String encryptFormat;
|
||||
|
||||
public CheckVolumeAndRepairCommand(String path, StorageFilerTO pool, String repair, byte[] passphrase, String encryptFormat) {
|
||||
public CheckAndRepairVolumeCommand(String path, StorageFilerTO pool, String repair, byte[] passphrase, String encryptFormat) {
|
||||
this.path = path;
|
||||
this.pool = pool;
|
||||
this.repair = repair;
|
||||
|
|
@ -19,7 +19,7 @@ package com.cloud.vm;
|
|||
|
||||
public class VmWorkCheckAndRepairVolume extends VmWork {
|
||||
|
||||
private static final long serialVersionUID = 341816293003023823L;
|
||||
private static final long serialVersionUID = 341816293003023824L;
|
||||
|
||||
private Long volumeId;
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import javax.inject.Inject;
|
|||
|
||||
import org.apache.cloudstack.annotation.AnnotationService;
|
||||
import org.apache.cloudstack.annotation.dao.AnnotationDao;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckVolumeAndRepairCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckAndRepairVolumeCmd;
|
||||
import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
|
||||
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
|
||||
|
|
@ -88,8 +88,8 @@ import org.springframework.stereotype.Component;
|
|||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.ModifyTargetsCommand;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairAnswer;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairCommand;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeAnswer;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeCommand;
|
||||
import com.cloud.agent.api.storage.ListVolumeAnswer;
|
||||
import com.cloud.agent.api.storage.ListVolumeCommand;
|
||||
import com.cloud.agent.api.storage.ResizeVolumeCommand;
|
||||
|
|
@ -2768,9 +2768,9 @@ public class VolumeServiceImpl implements VolumeService {
|
|||
@Override
|
||||
public void checkAndRepairVolumeBasedOnConfig(DataObject dataObject, Host host) {
|
||||
if (HypervisorType.KVM.equals(host.getHypervisorType()) && DataObjectType.VOLUME.equals(dataObject.getType())) {
|
||||
if (com.cloud.storage.VolumeApiServiceImpl.AllowVolumeCheckAndRepair.value()) {
|
||||
if (com.cloud.storage.VolumeApiServiceImpl.AllowCheckAndRepairVolume.value()) {
|
||||
s_logger.info(String.format("Trying to check and repair the volume %d", dataObject.getId()));
|
||||
String repair = CheckVolumeAndRepairCmd.RepairValues.leaks.name();
|
||||
String repair = CheckAndRepairVolumeCmd.RepairValues.leaks.name();
|
||||
CheckAndRepairVolumePayload payload = new CheckAndRepairVolumePayload(repair);
|
||||
VolumeInfo volumeInfo = volFactory.getVolume(dataObject.getId());
|
||||
volumeInfo.addPayload(payload);
|
||||
|
|
@ -2784,11 +2784,11 @@ public class VolumeServiceImpl implements VolumeService {
|
|||
Long poolId = volume.getPoolId();
|
||||
StoragePool pool = _storageMgr.getStoragePool(poolId);
|
||||
CheckAndRepairVolumePayload payload = (CheckAndRepairVolumePayload) volume.getpayload();
|
||||
CheckVolumeAndRepairCommand command = new CheckVolumeAndRepairCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
CheckAndRepairVolumeCommand command = new CheckAndRepairVolumeCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
volume.getPassphrase(), volume.getEncryptFormat());
|
||||
|
||||
try {
|
||||
CheckVolumeAndRepairAnswer answer = (CheckVolumeAndRepairAnswer) _storageMgr.sendToPool(pool, null, command);
|
||||
CheckAndRepairVolumeAnswer answer = (CheckAndRepairVolumeAnswer) _storageMgr.sendToPool(pool, null, command);
|
||||
if (answer != null && answer.getResult()) {
|
||||
s_logger.debug("Check volume response result: " + answer.getDetails());
|
||||
payload.setVolumeCheckExecutionResult(answer.getVolumeCheckExecutionResult());
|
||||
|
|
@ -2797,7 +2797,8 @@ public class VolumeServiceImpl implements VolumeService {
|
|||
}
|
||||
return new Pair<>(answer.getVolumeCheckExecutionResult(), answer.getVolumeRepairExecutionResult());
|
||||
} else {
|
||||
s_logger.debug("Failed to check and repair the volume with error " + answer.getDetails());
|
||||
String errMsg = (answer == null) ? null : answer.getDetails();
|
||||
s_logger.debug("Failed to check and repair the volume with error " + errMsg);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
package org.apache.cloudstack.storage.volume;
|
||||
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairAnswer;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairCommand;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeAnswer;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeCommand;
|
||||
import com.cloud.agent.api.to.StorageFilerTO;
|
||||
import com.cloud.exception.StorageUnavailableException;
|
||||
import com.cloud.storage.CheckAndRepairVolumePayload;
|
||||
|
|
@ -251,10 +251,10 @@ public class VolumeServiceTest extends TestCase{
|
|||
" \"fragmented-clusters\": 96135\n" +
|
||||
"}";
|
||||
|
||||
CheckVolumeAndRepairCommand command = new CheckVolumeAndRepairCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
CheckAndRepairVolumeCommand command = new CheckAndRepairVolumeCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
volume.getPassphrase(), volume.getEncryptFormat());
|
||||
|
||||
CheckVolumeAndRepairAnswer answer = new CheckVolumeAndRepairAnswer(command, true, checkResult);
|
||||
CheckAndRepairVolumeAnswer answer = new CheckAndRepairVolumeAnswer(command, true, checkResult);
|
||||
answer.setVolumeCheckExecutionResult(checkResult);
|
||||
Mockito.when(storageManagerMock.sendToPool(pool, null, command)).thenReturn(answer);
|
||||
|
||||
|
|
@ -276,10 +276,10 @@ public class VolumeServiceTest extends TestCase{
|
|||
Mockito.when(volume.getPassphrase()).thenReturn(new byte[] {3, 1, 2, 3});
|
||||
Mockito.when(volume.getEncryptFormat()).thenReturn("LUKS");
|
||||
|
||||
CheckVolumeAndRepairCommand command = new CheckVolumeAndRepairCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
CheckAndRepairVolumeCommand command = new CheckAndRepairVolumeCommand(volume.getPath(), new StorageFilerTO(pool), payload.getRepair(),
|
||||
volume.getPassphrase(), volume.getEncryptFormat());
|
||||
|
||||
CheckVolumeAndRepairAnswer answer = new CheckVolumeAndRepairAnswer(command, false, "Unable to execute qemu command");
|
||||
CheckAndRepairVolumeAnswer answer = new CheckAndRepairVolumeAnswer(command, false, "Unable to execute qemu command");
|
||||
Mockito.when(storageManagerMock.sendToPool(pool, null, command)).thenReturn(answer);
|
||||
|
||||
Pair<String, String> result = volumeServiceImplSpy.checkAndRepairVolume(volume);
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@
|
|||
package com.cloud.hypervisor.kvm.resource.wrapper;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairCommand;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairAnswer;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeCommand;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeAnswer;
|
||||
import com.cloud.agent.api.to.StorageFilerTO;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
|
||||
import com.cloud.hypervisor.kvm.storage.KVMPhysicalDisk;
|
||||
|
|
@ -48,13 +48,13 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@ResourceWrapper(handles = CheckVolumeAndRepairCommand.class)
|
||||
public class LibvirtCheckVolumeAndRepairCommandWrapper extends CommandWrapper<CheckVolumeAndRepairCommand, Answer, LibvirtComputingResource> {
|
||||
@ResourceWrapper(handles = CheckAndRepairVolumeCommand.class)
|
||||
public class LibvirtCheckAndRepairVolumeCommandWrapper extends CommandWrapper<CheckAndRepairVolumeCommand, Answer, LibvirtComputingResource> {
|
||||
|
||||
private static final Logger s_logger = Logger.getLogger(LibvirtCheckVolumeAndRepairCommandWrapper.class);
|
||||
private static final Logger s_logger = Logger.getLogger(LibvirtCheckAndRepairVolumeCommandWrapper.class);
|
||||
|
||||
@Override
|
||||
public Answer execute(CheckVolumeAndRepairCommand command, LibvirtComputingResource serverResource) {
|
||||
public Answer execute(CheckAndRepairVolumeCommand command, LibvirtComputingResource serverResource) {
|
||||
final String volumeId = command.getPath();
|
||||
final String repair = command.getRepair();
|
||||
final StorageFilerTO spool = command.getPool();
|
||||
|
|
@ -66,9 +66,9 @@ public class LibvirtCheckVolumeAndRepairCommandWrapper extends CommandWrapper<Ch
|
|||
QemuObject.EncryptFormat encryptFormat = QemuObject.EncryptFormat.enumValue(command.getEncryptFormat());
|
||||
byte[] passphrase = command.getPassphrase();
|
||||
try {
|
||||
String checkVolumeResult = checkVolumeAndRepair(vol, repair, encryptFormat, passphrase, serverResource);
|
||||
String checkVolumeResult = checkAndRepairVolume(vol, repair, encryptFormat, passphrase, serverResource);
|
||||
s_logger.info(String.format("Check Volume result for the volume %s is %s", vol.getName(), checkVolumeResult));
|
||||
CheckVolumeAndRepairAnswer answer = new CheckVolumeAndRepairAnswer(command, true, checkVolumeResult);
|
||||
CheckAndRepairVolumeAnswer answer = new CheckAndRepairVolumeAnswer(command, true, checkVolumeResult);
|
||||
answer.setVolumeCheckExecutionResult(checkVolumeResult);
|
||||
|
||||
int leaks = 0;
|
||||
|
|
@ -85,7 +85,7 @@ public class LibvirtCheckVolumeAndRepairCommandWrapper extends CommandWrapper<Ch
|
|||
s_logger.info(msg);
|
||||
String jsonStringFormat = String.format("{ \"message\": \"%s\" }", msg);
|
||||
String finalResult = (checkVolumeResult != null ? checkVolumeResult.concat(",") : "") + jsonStringFormat;
|
||||
answer = new CheckVolumeAndRepairAnswer(command, true, finalResult);
|
||||
answer = new CheckAndRepairVolumeAnswer(command, true, finalResult);
|
||||
answer.setVolumeRepairExecutionResult(jsonStringFormat);
|
||||
answer.setVolumeCheckExecutionResult(checkVolumeResult);
|
||||
|
||||
|
|
@ -94,17 +94,17 @@ public class LibvirtCheckVolumeAndRepairCommandWrapper extends CommandWrapper<Ch
|
|||
}
|
||||
|
||||
if (StringUtils.isNotEmpty(repair)) {
|
||||
String repairVolumeResult = checkVolumeAndRepair(vol, repair, encryptFormat, passphrase, serverResource);
|
||||
String repairVolumeResult = checkAndRepairVolume(vol, repair, encryptFormat, passphrase, serverResource);
|
||||
String finalResult = (checkVolumeResult != null ? checkVolumeResult.concat(",") : "") + repairVolumeResult;
|
||||
s_logger.info(String.format("Repair Volume result for the volume %s is %s", vol.getName(), repairVolumeResult));
|
||||
|
||||
answer = new CheckVolumeAndRepairAnswer(command, true, finalResult);
|
||||
answer = new CheckAndRepairVolumeAnswer(command, true, finalResult);
|
||||
answer.setVolumeRepairExecutionResult(repairVolumeResult);
|
||||
answer.setVolumeCheckExecutionResult(checkVolumeResult);
|
||||
}
|
||||
return answer;
|
||||
} catch (Exception e) {
|
||||
return new CheckVolumeAndRepairAnswer(command, false, e.toString());
|
||||
return new CheckAndRepairVolumeAnswer(command, false, e.toString());
|
||||
} finally {
|
||||
if (passphrase != null) {
|
||||
Arrays.fill(passphrase, (byte) 0);
|
||||
|
|
@ -112,7 +112,7 @@ public class LibvirtCheckVolumeAndRepairCommandWrapper extends CommandWrapper<Ch
|
|||
}
|
||||
}
|
||||
|
||||
protected String checkVolumeAndRepair(final KVMPhysicalDisk vol, final String repair, final QemuObject.EncryptFormat encryptFormat, byte[] passphrase, final LibvirtComputingResource libvirtComputingResource) throws CloudRuntimeException {
|
||||
protected String checkAndRepairVolume(final KVMPhysicalDisk vol, final String repair, final QemuObject.EncryptFormat encryptFormat, byte[] passphrase, final LibvirtComputingResource libvirtComputingResource) throws CloudRuntimeException {
|
||||
List<QemuObject> passphraseObjects = new ArrayList<>();
|
||||
QemuImageOptions imgOptions = null;
|
||||
if (ArrayUtils.isEmpty(passphrase)) {
|
||||
|
|
@ -14,8 +14,8 @@
|
|||
|
||||
package com.cloud.hypervisor.kvm.resource.wrapper;
|
||||
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairAnswer;
|
||||
import com.cloud.agent.api.storage.CheckVolumeAndRepairCommand;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeAnswer;
|
||||
import com.cloud.agent.api.storage.CheckAndRepairVolumeCommand;
|
||||
import com.cloud.agent.api.to.StorageFilerTO;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
|
||||
import com.cloud.hypervisor.kvm.storage.KVMPhysicalDisk;
|
||||
|
|
@ -37,16 +37,16 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
|
|||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
@RunWith(PowerMockRunner.class)
|
||||
public class LibvirtCheckVolumeAndRepairCommandWrapperTest {
|
||||
public class LibvirtCheckAndRepairVolumeCommandWrapperTest {
|
||||
|
||||
@Spy
|
||||
LibvirtCheckVolumeAndRepairCommandWrapper libvirtCheckVolumeAndRepairCommandWrapperSpy = Mockito.spy(LibvirtCheckVolumeAndRepairCommandWrapper.class);
|
||||
LibvirtCheckAndRepairVolumeCommandWrapper libvirtCheckAndRepairVolumeCommandWrapperSpy = Mockito.spy(LibvirtCheckAndRepairVolumeCommandWrapper.class);
|
||||
|
||||
@Mock
|
||||
LibvirtComputingResource libvirtComputingResourceMock;
|
||||
|
||||
@Mock
|
||||
CheckVolumeAndRepairCommand checkVolumeAndRepairCommand;
|
||||
CheckAndRepairVolumeCommand checkAndRepairVolumeCommand;
|
||||
|
||||
@Mock
|
||||
QemuImg qemuImgMock;
|
||||
|
|
@ -57,10 +57,10 @@ public class LibvirtCheckVolumeAndRepairCommandWrapperTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(LibvirtCheckVolumeAndRepairCommandWrapper.class)
|
||||
@PrepareForTest(LibvirtCheckAndRepairVolumeCommandWrapper.class)
|
||||
public void testCheckAndRepairVolume() throws Exception {
|
||||
|
||||
CheckVolumeAndRepairCommand cmd = Mockito.mock(CheckVolumeAndRepairCommand.class);
|
||||
CheckAndRepairVolumeCommand cmd = Mockito.mock(CheckAndRepairVolumeCommand.class);
|
||||
Mockito.when(cmd.getPath()).thenReturn("cbac516a-0f1f-4559-921c-1a7c6c408ccf");
|
||||
Mockito.when(cmd.getRepair()).thenReturn(null);
|
||||
StorageFilerTO spool = Mockito.mock(StorageFilerTO.class);
|
||||
|
|
@ -94,7 +94,7 @@ public class LibvirtCheckVolumeAndRepairCommandWrapperTest {
|
|||
PowerMockito.whenNew(QemuImg.class).withArguments(Mockito.anyInt()).thenReturn(qemuImgMock);
|
||||
Mockito.when(qemuImgMock.checkAndRepair(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(checkResult);
|
||||
|
||||
CheckVolumeAndRepairAnswer result = (CheckVolumeAndRepairAnswer) libvirtCheckVolumeAndRepairCommandWrapperSpy.execute(cmd, libvirtComputingResourceMock);
|
||||
CheckAndRepairVolumeAnswer result = (CheckAndRepairVolumeAnswer) libvirtCheckAndRepairVolumeCommandWrapperSpy.execute(cmd, libvirtComputingResourceMock);
|
||||
|
||||
Assert.assertEquals(checkResult, result.getVolumeCheckExecutionResult());
|
||||
}
|
||||
|
|
@ -553,7 +553,7 @@ import org.apache.cloudstack.api.command.user.volume.AddResourceDetailCmd;
|
|||
import org.apache.cloudstack.api.command.user.volume.AssignVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ChangeOfferingForVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckVolumeAndRepairCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckAndRepairVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DeleteVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DestroyVolumeCmd;
|
||||
|
|
@ -3707,7 +3707,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
|||
cmdList.add(ListVMGroupsCmd.class);
|
||||
cmdList.add(UpdateVMGroupCmd.class);
|
||||
cmdList.add(AttachVolumeCmd.class);
|
||||
cmdList.add(CheckVolumeAndRepairCmd.class);
|
||||
cmdList.add(CheckAndRepairVolumeCmd.class);
|
||||
cmdList.add(CreateVolumeCmd.class);
|
||||
cmdList.add(DeleteVolumeCmd.class);
|
||||
cmdList.add(UpdateVolumeCmd.class);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import org.apache.cloudstack.api.ServerApiException;
|
|||
import org.apache.cloudstack.api.command.user.volume.AssignVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ChangeOfferingForVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckVolumeAndRepairCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckAndRepairVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
|
||||
|
|
@ -381,7 +381,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
public static ConfigKey<Long> storageTagRuleExecutionTimeout = new ConfigKey<>("Advanced", Long.class, "storage.tag.rule.execution.timeout", "2000", "The maximum runtime,"
|
||||
+ " in milliseconds, to execute a storage tag rule; if it is reached, a timeout will happen.", true);
|
||||
|
||||
public static final ConfigKey<Boolean> AllowVolumeCheckAndRepair = new ConfigKey<Boolean>("Advanced", Boolean.class, "volume.check.and.repair.before.use", "false",
|
||||
public static final ConfigKey<Boolean> AllowCheckAndRepairVolume = new ConfigKey<Boolean>("Advanced", Boolean.class, "volume.check.and.repair.leaks.before.use", "false",
|
||||
"To check and repair the volume if it has any leaks before performing volume attach or VM start operations", true);
|
||||
|
||||
private final StateMachine2<Volume.State, Volume.Event, Volume> _volStateMachine;
|
||||
|
|
@ -1824,7 +1824,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_CHECK, eventDescription = "checking volume and repair if needed", async = true)
|
||||
public Pair<String, String> checkAndRepairVolume(CheckVolumeAndRepairCmd cmd) throws ResourceAllocationException {
|
||||
public Pair<String, String> checkAndRepairVolume(CheckAndRepairVolumeCmd cmd) throws ResourceAllocationException {
|
||||
long volumeId = cmd.getId();
|
||||
String repair = cmd.getRepair();
|
||||
|
||||
|
|
@ -1841,13 +1841,13 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
VmWorkJobVO placeHolder = null;
|
||||
placeHolder = createPlaceHolderWork(vmId);
|
||||
try {
|
||||
Pair<String, String> result = orchestrateCheckVolumeAndRepair(volumeId, repair);
|
||||
Pair<String, String> result = orchestrateCheckAndRepairVolume(volumeId, repair);
|
||||
return result;
|
||||
} finally {
|
||||
_workJobDao.expunge(placeHolder.getId());
|
||||
}
|
||||
} else {
|
||||
Outcome<Pair> outcome = checkVolumeAndRepairThroughJobQueue(vmId, volumeId, repair);
|
||||
Outcome<Pair> outcome = checkAndRepairVolumeThroughJobQueue(vmId, volumeId, repair);
|
||||
|
||||
try {
|
||||
outcome.get();
|
||||
|
|
@ -1914,7 +1914,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
}
|
||||
}
|
||||
|
||||
private Pair<String, String> orchestrateCheckVolumeAndRepair(Long volumeId, String repair) {
|
||||
private Pair<String, String> orchestrateCheckAndRepairVolume(Long volumeId, String repair) {
|
||||
|
||||
VolumeInfo volume = volFactory.getVolume(volumeId);
|
||||
|
||||
|
|
@ -1932,7 +1932,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
return volService.checkAndRepairVolume(volume);
|
||||
}
|
||||
|
||||
public Outcome<Pair> checkVolumeAndRepairThroughJobQueue(final Long vmId, final Long volumeId, String repair) {
|
||||
public Outcome<Pair> checkAndRepairVolumeThroughJobQueue(final Long vmId, final Long volumeId, String repair) {
|
||||
|
||||
final CallContext context = CallContext.current();
|
||||
final User callingUser = context.getCallingUser();
|
||||
|
|
@ -5003,9 +5003,9 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
}
|
||||
|
||||
@ReflectionUse
|
||||
private Pair<JobInfo.Status, String> orchestrateCheckVolumeAndRepair(VmWorkCheckAndRepairVolume work) throws Exception {
|
||||
private Pair<JobInfo.Status, String> orchestrateCheckAndRepairVolume(VmWorkCheckAndRepairVolume work) throws Exception {
|
||||
Account account = _accountDao.findById(work.getAccountId());
|
||||
Pair<String, String> result = orchestrateCheckVolumeAndRepair(work.getVolumeId(), work.getRepair());
|
||||
Pair<String, String> result = orchestrateCheckAndRepairVolume(work.getVolumeId(), work.getRepair());
|
||||
return new Pair<JobInfo.Status, String>(JobInfo.Status.SUCCEEDED, _jobMgr.marshallResultObject(result));
|
||||
}
|
||||
|
||||
|
|
@ -5046,7 +5046,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||
MatchStoragePoolTagsWithDiskOffering,
|
||||
UseHttpsToUpload,
|
||||
WaitDetachDevice,
|
||||
AllowVolumeCheckAndRepair
|
||||
AllowCheckAndRepairVolume
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import java.util.concurrent.ExecutionException;
|
|||
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckVolumeAndRepairCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CheckAndRepairVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
|
||||
|
|
@ -1766,7 +1766,7 @@ public class VolumeApiServiceImplTest {
|
|||
@Test
|
||||
public void testCheckAndRepairVolume() throws ResourceAllocationException {
|
||||
|
||||
CheckVolumeAndRepairCmd cmd = mock(CheckVolumeAndRepairCmd.class);
|
||||
CheckAndRepairVolumeCmd cmd = mock(CheckAndRepairVolumeCmd.class);
|
||||
when(cmd.getId()).thenReturn(1L);
|
||||
when(cmd.getRepair()).thenReturn(null);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue