@Override public JsonLabelInventory createTrash(TrashType type, StorageTrashSpec spec) { if (spec.getStorageUuid() == null || spec.getResourceUuid() == null) { throw new OperationFailureException(inerr("both resourceUuid and storageUuid must be set for createTrash")); } if (spec.getResourceType() == null) { spec.setResourceType(getResourceType(spec.getResourceUuid())); } if (spec.getStorageType() == null) { spec.setStorageType(getResourceType(spec.getStorageUuid())); } spec.setTrashType(type.toString()); return new JsonLabel().create(makeTrashKey(type), spec, spec.getStorageUuid()); }
protected void handle(final CheckInstallPathOnBSMsg msg) { CheckInstallPathOnBSReply reply = new CheckInstallPathOnBSReply(); Long trashId = trash.getTrashId(self.getUuid(), msg.getInstallPath()); if (trashId != null) { StorageTrashSpec spec = trash.getTrash(self.getUuid(), trashId); reply.setResourceUuid(spec.getResourceUuid()); reply.setTrashId(trashId); } bus.reply(msg, reply); }
protected void handle(final CheckInstallPathMsg msg) { CheckInstallPathReply reply = new CheckInstallPathReply(); Long trashId = trash.getTrashId(self.getUuid(), msg.getInstallPath()); if (trashId != null) { StorageTrashSpec spec = trash.getTrash(self.getUuid(), trashId); reply.setTrashId(trashId); reply.setResourceUuid(spec.getResourceUuid()); } bus.reply(msg, reply); }
@Override public void handle(Map data) { IncreasePrimaryStorageCapacityMsg imsg = new IncreasePrimaryStorageCapacityMsg(); imsg.setPrimaryStorageUuid(self.getUuid()); imsg.setDiskSize(spec.getSize()); bus.makeTargetServiceIdByResourceUuid(imsg, PrimaryStorageConstant.SERVICE_ID, self.getUuid()); bus.send(imsg); logger.info(String.format("Returned space[size:%s] to PS %s after volume migration", spec.getSize(), self.getUuid())); trash.removeFromDb(trashId); result.setSize(spec.getSize()); result.setResourceUuids(CollectionDSL.list(spec.getResourceUuid())); completion.success(result); } }).error(new FlowErrorHandler(completion) {
@Override public void run(MessageReply reply) { if (reply.isSuccess()) { logger.info(String.format("Deleted volume %s in Trash.", spec.getInstallPath())); IncreasePrimaryStorageCapacityMsg imsg = new IncreasePrimaryStorageCapacityMsg(); imsg.setPrimaryStorageUuid(self.getUuid()); imsg.setDiskSize(spec.getSize()); bus.makeTargetServiceIdByResourceUuid(imsg, PrimaryStorageConstant.SERVICE_ID, self.getUuid()); bus.send(imsg); trash.removeFromDb(trashId); logger.info(String.format("Returned space[size:%s] to PS %s after volume migration", spec.getSize(), self.getUuid())); result.setSize(spec.getSize()); result.setResourceUuids(CollectionDSL.list(spec.getResourceUuid())); completion.success(result); } else { logger.warn(String.format("Failed to delete volume %s in Trash.", spec.getInstallPath())); completion.fail(reply.getError()); } } });
@Override public void run(MessageReply reply) { if (reply.isSuccess()) { BackupStorageVO srcBS = dbf.findByUuid(self.getUuid(), BackupStorageVO.class); srcBS.setAvailableCapacity(srcBS.getAvailableCapacity() + spec.getSize()); dbf.update(srcBS); logger.info(String.format("Deleted image %s and returned space[size:%s] to BS[uuid:%s] after image migration", spec.getInstallPath(), spec.getSize(), self.getUuid())); trash.removeFromDb(spec.getTrashId()); result.setSize(spec.getSize()); result.setResourceUuids(CollectionDSL.list(spec.getResourceUuid())); completion.success(result); } else { logger.warn(String.format("Failed to delete image %s in image migration.", spec.getInstallPath())); completion.fail(reply.getError()); } } });