@Override protected void handle(final SyncVolumeSizeOnPrimaryStorageMsg msg) { LocalStorageHypervisorFactory f = getHypervisorBackendFactoryByResourceUuid(msg.getVolumeUuid(), VolumeVO.class.getSimpleName()); LocalStorageHypervisorBackend bkd = f.getHypervisorBackend(self); String huuid = getHostUuidByResourceUuid(msg.getVolumeUuid()); bkd.handle(msg, huuid, new ReturnValueCompletion<SyncVolumeSizeOnPrimaryStorageReply>(msg) { @Override public void success(SyncVolumeSizeOnPrimaryStorageReply returnValue) { bus.reply(msg, returnValue); } @Override public void fail(ErrorCode errorCode) { SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); reply.setError(errorCode); bus.reply(msg, reply); } }); }
@Override protected void handle(final SyncVolumeSizeOnPrimaryStorageMsg msg) { final SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); final VolumeVO vol = dbf.findByUuid(msg.getVolumeUuid(), VolumeVO.class); String installPath = vol.getInstallPath(); GetVolumeSizeCmd cmd = new GetVolumeSizeCmd(); cmd.fsId = getSelf().getFsid(); cmd.uuid = self.getUuid(); cmd.volumeUuid = msg.getVolumeUuid(); cmd.installPath = installPath; httpCall(GET_VOLUME_SIZE_PATH, cmd, GetVolumeSizeRsp.class, new ReturnValueCompletion<GetVolumeSizeRsp>(msg) { @Override public void success(GetVolumeSizeRsp rsp) { // current ceph has no way to get actual size long asize = rsp.actualSize == null ? vol.getActualSize() : rsp.actualSize; reply.setActualSize(asize); reply.setSize(rsp.size); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); }
@Override protected void handle(final SyncVolumeSizeOnPrimaryStorageMsg msg) { final SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); final VolumeVO vol = dbf.findByUuid(msg.getVolumeUuid(), VolumeVO.class); String installPath = vol.getInstallPath(); GetVolumeSizeCmd cmd = new GetVolumeSizeCmd(); cmd.fsId = getSelf().getFsid(); cmd.uuid = self.getUuid(); cmd.volumeUuid = msg.getVolumeUuid(); cmd.installPath = installPath; httpCall(GET_VOLUME_SIZE_PATH, cmd, GetVolumeSizeRsp.class, new ReturnValueCompletion<GetVolumeSizeRsp>(msg) { @Override public void success(GetVolumeSizeRsp rsp) { // current fusionstor has no way to get actual size long asize = rsp.actualSize == null ? vol.getActualSize() : rsp.actualSize; reply.setActualSize(asize); reply.setSize(rsp.size); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); }
@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); } }); }
@Override protected void handle(final SyncVolumeSizeOnPrimaryStorageMsg msg) { SimpleQuery<VolumeVO> q = dbf.createQuery(VolumeVO.class); q.select(VolumeVO_.format); q.add(VolumeVO_.uuid, Op.EQ, msg.getVolumeUuid()); String format = q.findValue(); HypervisorType type = VolumeFormat.getMasterHypervisorTypeByVolumeFormat(format); HypervisorFactory f = getHypervisorFactoryByHypervisorType(type.toString()); HypervisorBackend bkd = f.getHypervisorBackend(self); bkd.handle(msg, new ReturnValueCompletion<SyncVolumeSizeOnPrimaryStorageReply>(msg) { @Override public void success(SyncVolumeSizeOnPrimaryStorageReply returnValue) { bus.reply(msg, returnValue); } @Override public void fail(ErrorCode errorCode) { SyncVolumeSizeOnPrimaryStorageReply reply = new SyncVolumeSizeOnPrimaryStorageReply(); reply.setError(errorCode); bus.reply(msg, reply); } }); }
GetVolumeSizeCmd cmd = new GetVolumeSizeCmd(); cmd.installPath = msg.getInstallPath(); cmd.volumeUuid = msg.getVolumeUuid(); cmd.storagePath = Q.New(PrimaryStorageVO.class) .eq(PrimaryStorageVO_.uuid, msg.getPrimaryStorageUuid())