private String getTopologyTestRunEventLog(Topology topology) { return topologyTestRunResultDir + File.separator + "topology-test-run-event-topology-" + topology.getId() + "-" + UUID.randomUUID().toString() + ".log"; }
private List<QueryParam> queryParam(Topology topology) { List<QueryParam> queryParams = new ArrayList<>(); queryParams.add(new QueryParam(TopologyComponent.TOPOLOGYID, topology.getId().toString())); queryParams.add(new QueryParam(TopologyComponent.VERSIONID, topology.getVersionId().toString())); return queryParams; } }
@Override public boolean enableSampling(Topology topology, int pct, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); return client.enableSampling(topologyId, pct, asUser); }
@GET @Path("/topologies/{topologyId}/deploymentstate") @Timed public Response topologyDeploymentState(@PathParam("topologyId") Long topologyId) throws Exception { return Optional.ofNullable(catalogService.getTopology(topologyId)) .flatMap(t -> catalogService.getTopologyState(t.getId())) .map(s -> WSUtils.respondEntity(s, OK)) .orElseThrow(() -> EntityNotFoundException.byId(topologyId.toString())); }
/** * Returns the list of components to be re-configured for a given topology. * * @param topology the topology * @return the collection of components that have the reconfigure flag set or empty if no such component exists */ public Map<String, Set<Long>> getComponentsToReconfigure(Topology topology) { Map<String, Set<Long>> components = new HashMap<>(); List<QueryParam> qps = QueryParam.params( TopologyComponent.TOPOLOGYID, String.valueOf(topology.getId()), TopologyComponent.VERSIONID, String.valueOf(topology.getVersionId()), TopologyComponent.RECONFIGURE, String.valueOf(true)); components.put(ComponentTypes.PROCESSOR, listTopologyProcessors(qps).stream().map(TopologyComponent::getId).collect(Collectors.toSet())); components.put(ComponentTypes.SINK, listTopologySinks(qps).stream().map(TopologyComponent::getId).collect(Collectors.toSet())); components.put(ComponentTypes.RULE, listRules(qps).stream().map(TopologyRule::getId).collect(Collectors.toSet())); components.put(ComponentTypes.BRANCH, listBranchRules(qps).stream().map(TopologyBranchRule::getId).collect(Collectors.toSet())); components.put(ComponentTypes.WINDOW, listWindows(qps).stream().map(TopologyWindow::getId).collect(Collectors.toSet())); return components; }
public void setReconfigureOnAllComponentsInTopology(Topology topology) { List<TopologyComponent> topologyComponents = new ArrayList<>(); List<com.hortonworks.registries.common.QueryParam> queryParams = new ArrayList<>(); queryParams.add(new com.hortonworks.registries.common.QueryParam("topologyId", String.valueOf(topology.getId()))); queryParams.add(new com.hortonworks.registries.common.QueryParam("versionId", String.valueOf(topology.getVersionId()))); topologyComponents.addAll(listTopologySources(queryParams)); topologyComponents.addAll(listTopologyProcessors(queryParams)); topologyComponents.addAll(listTopologySinks(queryParams)); for (TopologyComponent topologyComponent : topologyComponents) { setReconfigureOnTopologyComponent(topologyComponent); } }
@Override public boolean disableSampling(Topology topology, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); return client.disableSampling(topologyId, asUser); }
@Override public void setCurrentAction(String description) { com.hortonworks.streamline.streams.catalog.topology.state.TopologyState catalogState = new com.hortonworks.streamline.streams.catalog.topology.state.TopologyState(); catalogState.setName(getStateName()); catalogState.setTopologyId(topology.getId()); catalogState.setDescription(description); LOG.debug("Topology id: {}, state: {}", topology.getId(), catalogState); topologyActionsService.getCatalogService().addOrUpdateTopologyState(topology.getId(), catalogState); } }
private TopologyContext getTopologyContext(Topology topology, String asUser) { TopologyState state = catalogService .getTopologyState(topology.getId()) .map(s -> stateFactory.getTopologyState(s.getName())) .orElse(TOPOLOGY_STATE_INITIAL); return new TopologyContext(topology, this, state, asUser); }
@Override public SamplingStatus getSamplingStatus(Topology topology, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); if (topologyId == null) { return null; } return buildSamplingStatus(client.getSamplingStatus(topologyId, asUser)); }
public static TopologyLayout getTopologyLayout(Topology topology) throws IOException { return new TopologyLayout(topology.getId(), topology.getName(), topology.getConfig(), null); }
public static TopologyLayout getTopologyLayout(Topology topology, TopologyDag topologyDag) throws IOException { return new TopologyLayout(topology.getId(), topology.getName(), topology.getConfig(), topologyDag); }
@POST @Path("/topologies") @Timed public Response addTopology(Topology topology, @Context SecurityContext securityContext) { SecurityUtil.checkRole(authorizer, securityContext, Roles.ROLE_TOPOLOGY_ADMIN); if (StringUtils.isEmpty(topology.getName())) { throw BadRequestException.missingParameter(Topology.NAME); } if (StringUtils.isEmpty(topology.getConfig())) { throw BadRequestException.missingParameter(Topology.CONFIG); } Topology createdTopology = catalogService.addTopology(topology); SecurityUtil.addAcl(authorizer, securityContext, NAMESPACE, createdTopology.getId(), EnumSet.allOf(Permission.class)); return WSUtils.respondEntity(createdTopology, CREATED); }
@Override public boolean enableSampling(Topology topology, TopologyComponent component, int pct, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); String stormComponentId = StormTopologyUtil.generateStormComponentId(component.getId(), component.getName()); return client.enableSampling(topologyId, stormComponentId, pct, asUser); }
@Override public boolean disableSampling(Topology topology, TopologyComponent component, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); String stormComponentId = StormTopologyUtil.generateStormComponentId(component.getId(), component.getName()); return client.disableSampling(topologyId, stormComponentId, asUser); }
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; }
/** * Clones the given version of the topology and all its dependencies to a new 'CURRENT' version. * The ids of the topology and its dependencies are retained. */ public Topology cloneTopologyVersion(Long topologyId, Long versionId) { Topology topology = getTopology(topologyId, versionId); if (topology != null) { try { topology = addTopology(new Topology(topology)); copyTopologyDependencies(topologyId, versionId, topology.getVersionId()); } catch (Exception ex) { LOG.error("Got exception while copying topology dependencies", ex); removeTopology(topology.getId(), topology.getVersionId(), true); throw new RuntimeException(ex); } } return topology; }
@Override public SamplingStatus getSamplingStatus(Topology topology, TopologyComponent component, String asUser) { String topologyId = StormTopologyUtil.findStormTopologyId(client, topology.getId(), asUser); if (topologyId == null) { return null; } String stormComponentId = StormTopologyUtil.generateStormComponentId(component.getId(), component.getName()); return buildSamplingStatus(client.getSamplingStatus(topologyId, stormComponentId, asUser)); }
private TopologyData doExportTopology(Topology topology) throws Exception { TopologyDag dag = topologyDagBuilder.getDag(topology); topology.setTopologyDag(dag); TopologyData topologyData = new TopologyData(); TopologyExportVisitor exportVisitor = new TopologyExportVisitor(topology.getId(), topologyData, this); topologyData.setTopologyName(topology.getName()); topologyData.setConfig(topology.getConfig()); TopologyDag topologyDag = topology.getTopologyDag(); if (topologyDag != null) { topologyDag.traverse(exportVisitor); } topologyData.setMetadata(getTopologyEditorMetadata(topology.getId())); return topologyData; }
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; }