@Override public void rollback(FlowRollback trigger, Map data) { VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); if (spec.getVolumeSpecs().isEmpty()) { trigger.rollback(); return; } List<IncreasePrimaryStorageCapacityMsg> msgs = CollectionUtils.transformToList(spec.getVolumeSpecs(), new Function<IncreasePrimaryStorageCapacityMsg, VolumeSpec>() { @Override public IncreasePrimaryStorageCapacityMsg call(VolumeSpec arg) { if (arg.isVolumeCreated()) { // don't return capacity as it has been returned when the volume is deleted return null; } IncreasePrimaryStorageCapacityMsg msg = new IncreasePrimaryStorageCapacityMsg(); msg.setDiskSize(arg.getSize()); msg.setPrimaryStorageUuid(arg.getPrimaryStorageInventory().getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, arg.getPrimaryStorageInventory().getUrl()); return msg; } }); bus.send(msgs); trigger.rollback(); } }
@Override public void rollback(FlowRollback trigger, Map data) { VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); if (spec.getVolumeSpecs().isEmpty()) { trigger.rollback(); return; } List<IncreasePrimaryStorageCapacityMsg> msgs = CollectionUtils.transformToList(spec.getVolumeSpecs(), new Function<IncreasePrimaryStorageCapacityMsg, VolumeSpec>() { @Override public IncreasePrimaryStorageCapacityMsg call(VolumeSpec arg) { if (arg.isVolumeCreated()) { // don't return capacity as it has been returned when the volume is deleted return null; } IncreasePrimaryStorageCapacityMsg msg = new IncreasePrimaryStorageCapacityMsg(); msg.setDiskSize(arg.getSize()); msg.setPrimaryStorageUuid(arg.getPrimaryStorageInventory().getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, arg.getPrimaryStorageInventory().getUrl()); return msg; } }); bus.send(msgs); trigger.rollback(); } }
@Override public void rollback(FlowRollback chain, Map data) { final VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); for (VolumeSpec vspec : spec.getVolumeSpecs()) { if (vspec.isVolumeCreated()) { // don't return capacity as it has been returned when the volume is deleted continue; } IncreasePrimaryStorageCapacityMsg msg = new IncreasePrimaryStorageCapacityMsg(); msg.setDiskSize(vspec.getSize()); msg.setPrimaryStorageUuid(vspec.getPrimaryStorageInventory().getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, vspec.getPrimaryStorageInventory().getUuid()); bus.send(msg); } chain.rollback(); } }
@Override public void rollback(FlowRollback chain, Map data) { final VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); for (VolumeSpec vspec : spec.getVolumeSpecs()) { if (vspec.isVolumeCreated()) { // don't return capacity as it has been returned when the volume is deleted continue; } IncreasePrimaryStorageCapacityMsg msg = new IncreasePrimaryStorageCapacityMsg(); msg.setDiskSize(vspec.getSize()); msg.setPrimaryStorageUuid(vspec.getPrimaryStorageInventory().getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, vspec.getPrimaryStorageInventory().getUuid()); bus.send(msg); } chain.rollback(); } }
ErrorCode err = null; for (MessageReply r : replies) { VolumeSpec vspec = spec.getVolumeSpecs().get(replies.indexOf(r));
@Override public void preBeforeInstantiateVmResource(VmInstanceSpec spec) throws VmInstantiateResourceException { if (spec.getCurrentVmOperation() != VmInstanceConstant.VmOperation.ChangeImage || !spec.getVolumeSpecs().get(0).getPrimaryStorageInventory().getType().equals(CephConstants.CEPH_PRIMARY_STORAGE_TYPE)) { return; } //get old ready root volume VolumeVO oldRootVolume = Q.New(VolumeVO.class).eq(VolumeVO_.vmInstanceUuid, spec.getVmInventory().getUuid()) .eq(VolumeVO_.type, VolumeType.Root) .eq(VolumeVO_.status, VolumeStatus.Ready) .find(); //sync root pool tag if exist if (oldRootVolume != null && CephSystemTags.USE_CEPH_ROOT_POOL.hasTag(oldRootVolume.getUuid())) { String token = CephSystemTags.USE_CEPH_ROOT_POOL.getTokenByResourceUuid(oldRootVolume.getUuid(), CephSystemTags.USE_CEPH_ROOT_POOL_TOKEN); SystemTagCreator creator = CephSystemTags.USE_CEPH_ROOT_POOL.newSystemTagCreator(spec.getDestRootVolume().getUuid()); creator.setTagByTokens(map(e(CephSystemTags.USE_CEPH_ROOT_POOL_TOKEN, token))); creator.inherent = false; creator.ignoreIfExisting = true; creator.create(); } }
List<VolumeSpec> volumeSpecs = spec.getVolumeSpecs(); List<CreateVolumeMsg> msgs = new ArrayList<>(volumeSpecs.size()); for (VolumeSpec vspec : volumeSpecs) {
VolumeSpec vspec = spec.getVolumeSpecs().get(0); PrimaryStorageInventory pinv = vspec.getPrimaryStorageInventory(); psUuid = pinv.getUuid();
VolumeSpec rootVolumeSpec = spec.getVolumeSpecs().get(0); psUuid = rootVolumeSpec.getPrimaryStorageInventory().getUuid(); } else {