@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Volume volume = (Volume)state.getResource(); if (volume.getImageId() != null || StringUtils.isEmpty(volume.getName())) { return null; } Map<Object, Object> data = new HashMap<>(); String externalId = volume.getExternalId(); if (StringUtils.isEmpty(externalId)) { externalId = volume.getName(); } data.put("externalId", VolumeUtils.externalId(externalId)); return new HandlerResult(data); } }
protected void activatePool(Volume volume, VolumeStoragePoolMap map, Map<String, Object> data) { Image image = getObjectManager().loadResource(Image.class, volume.getImageId()); activateImageInPool(volume, image, map.getStoragePoolId(), data); createThenActivate(map, data); }
if (restrictToUnmanagedPool || volume.getImageId() != null) { constraints.add(new UnmanagedStoragePoolKindConstraint(volume));
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Volume volume = (Volume)state.getResource(); deallocate(volume, state.getData()); boolean maps = false; boolean mounts = false; for (VolumeStoragePoolMap map : mapDao.findToRemove(VolumeStoragePoolMap.class, Volume.class, volume.getId())) { maps = true; deactivateThenScheduleRemove(map, null); } for (Mount mount : mapDao.findToRemove(Mount.class, Volume.class, volume.getId())) { mounts = true; deactivateThenRemove(mount, null); } Image image = objectManager.loadResource(Image.class, volume.getImageId()); if (image != null) { remove(image, null); } if (maps && !mounts && volume.getHostId() != null) { /* HostId != null means this volume was created from a host, but no mounts also means it won't be deleted, * so we delete. */ return super.handle(state, process); } return new HandlerResult(); }
setAttachedState(from.getAttachedState()); setInstanceId(from.getInstanceId()); setImageId(from.getImageId()); setZoneId(from.getZoneId()); setUri(from.getUri());