private Topology addOrUpdateTopology(Long topologyId, Long versionId, Topology topology) { topology.setId(topologyId); topology.setVersionId(versionId); long timestamp = System.currentTimeMillis(); topology.setVersionTimestamp(timestamp); validateTopology(topology); this.dao.addOrUpdate(topology); updateVersionTimestamp(versionId, timestamp); return topology; }
private Topology removeOnlyTopologyEntity(Long topologyId, Long versionId) { Topology topologyForDelete = new Topology(); topologyForDelete.setId(topologyId); topologyForDelete.setVersionId(versionId); return dao.remove(topologyForDelete.getStorableKey()); }
public Topology removeTopology(Long topologyId, Long versionId, boolean recurse) { Topology topology = new Topology(); topology.setId(topologyId); topology.setVersionId(versionId); if (recurse) { try { removeTopologyDependencies(topology.getId(), topology.getVersionId()); } catch (Exception ex) { LOG.error("Got exception while removing topology dependencies", ex); throw new RuntimeException(ex); } } Topology removedTopology = dao.remove(topology.getStorableKey()); removeTopologyVersionInfo(versionId); return removedTopology; }
public Topology addTopology(Topology topology) { validateTopology(topology); boolean storedPlaceholderVersionTopology = false; if (topology.getId() == null) { topology.setId(this.dao.nextId(TOPOLOGY_NAMESPACE)); topology.setVersionId(PLACEHOLDER_ID); this.dao.add(topology); LOG.debug("Added topology {} with placeholder version", topology); storedPlaceholderVersionTopology = true; } long timestamp = System.currentTimeMillis(); topology.setVersionTimestamp(timestamp); TopologyVersion versionInfo = addCurrentTopologyVersionInfo(topology.getId(), timestamp); LOG.debug("Added version info {}", versionInfo); if (storedPlaceholderVersionTopology) { // remove topology with placeholder version first // WARN: don't use removeTopology since it also removes PLACEHOLDER topology version info! removeOnlyTopologyEntity(topology.getId(), topology.getVersionId()); } // put actual version id topology.setVersionId(versionInfo.getId()); this.dao.addOrUpdate(topology); LOG.debug("Added topology {}", topology); return topology; }
public Topology getTopology(Long topologyId, Long versionId) { Topology topology = new Topology(); topology.setId(topologyId); topology.setVersionId(versionId); Topology result = this.dao.get(topology.getStorableKey()); if (result != null) { result.setVersionTimestamp(getVersionTimestamp(versionId)); } return result; }
public Topology(Topology other) { if (other != null) { setId(other.getId()); setVersionId(other.getVersionId()); setName(other.getName()); setDescription(other.getDescription()); setConfig(other.getConfig()); setNamespaceId(other.getNamespaceId()); setVersionTimestamp(other.getVersionTimestamp()); } // this will be re-generated during deployment. topologyDag = null; }