@Override void handle(SyncVolumeSizeOnPrimaryStorageMsg msg, final ReturnValueCompletion<SyncVolumeSizeOnPrimaryStorageReply> completion) { String hostUuid = primaryStorageFactory.getConnectedHostForOperation(getSelfInventory()).get(0).getUuid(); final GetVolumeSizeCmd cmd = new GetVolumeSizeCmd(); cmd.installPath = msg.getInstallPath(); cmd.volumeUuid = msg.getVolumeUuid(); cmd.mountPoint = self.getMountPath(); new KvmCommandSender(hostUuid).send(cmd, GET_VOLUME_SIZE_PATH, new KvmCommandFailureChecker() { @Override public ErrorCode getError(KvmResponseWrapper wrapper) { GetVolumeSizeRsp rsp = wrapper.getResponse(GetVolumeSizeRsp.class); return rsp.success ? null : operr("operation error, because:%s", rsp.error); } }, new ReturnValueCompletion<KvmResponseWrapper>(completion) { @Override public void success(KvmResponseWrapper returnValue) { SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); GetVolumeSizeRsp rsp = returnValue.getResponse(GetVolumeSizeRsp.class); reply.setActualSize(rsp.actualSize); reply.setSize(rsp.size); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override public void handle(PrimaryStorageInventory inv, SyncVolumeSizeOnPrimaryStorageMsg msg, final ReturnValueCompletion<SyncVolumeSizeOnPrimaryStorageReply> completion) { final HostInventory host = nfsFactory.getConnectedHostForOperation(inv).get(0); KvmCommandSender sender = new KvmCommandSender(host.getUuid()); GetVolumeActualSizeCmd cmd = new GetVolumeActualSizeCmd(); cmd.setUuid(inv.getUuid()); cmd.installPath = msg.getInstallPath(); cmd.volumeUuid = msg.getVolumeUuid(); sender.send(cmd, GET_VOLUME_SIZE_PATH, new KvmCommandFailureChecker() { @Override public ErrorCode getError(KvmResponseWrapper wrapper) { GetVolumeActualSizeRsp rsp = wrapper.getResponse(GetVolumeActualSizeRsp.class); return rsp.isSuccess() ? null : operr("operation error, because:%s", rsp.getError()); } }, new ReturnValueCompletion<KvmResponseWrapper>(completion) { @Override public void success(KvmResponseWrapper returnValue) { SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); GetVolumeActualSizeRsp rsp = returnValue.getResponse(GetVolumeActualSizeRsp.class); reply.setSize(rsp.size); reply.setActualSize(rsp.actualSize); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
final SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); GetVolumeSizeCmd cmd = new GetVolumeSizeCmd(); cmd.installPath = msg.getInstallPath(); cmd.volumeUuid = msg.getVolumeUuid(); cmd.storagePath = Q.New(PrimaryStorageVO.class)