@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Volume volume = (Volume)state.getResource(); List<Snapshot> snapshots = null; if (VolumeConstants.PROCESS_RESTORE_FROM_BACKUP.equalsIgnoreCase(process.getName())) { snapshots = objectManager.children(volume, Snapshot.class); } else if (VolumeConstants.PROCESS_REVERT.equalsIgnoreCase(process.getName())) { Snapshot snapshot = objectManager.loadResource(Snapshot.class, state.getData().get("snapshotId").toString()); Map<Object, Object> criteria = new HashMap<Object, Object>(); criteria.put(SNAPSHOT.VOLUME_ID, volume.getId()); criteria.put(SNAPSHOT.REMOVED, null); criteria.put(SNAPSHOT.ID, new Condition(ConditionType.GT, snapshot.getId())); snapshots = objectManager.find(Snapshot.class, criteria); } else { throw new IllegalStateException("Unknown process: " + process.getName()); } for (Snapshot s : snapshots) { if (s.getRemoved() == null) { objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, s, null); } } return null; }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Snapshot from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setVolumeId(from.getVolumeId()); }