private void verifyFeedEntityEdges(String feedName, String tag, String group) { Vertex feedVertex = getEntityVertex(feedName, RelationshipType.FEED_ENTITY); // verify edge to cluster vertex verifyVertexForEdge( feedVertex, Direction.OUT, RelationshipLabel.FEED_CLUSTER_EDGE.getName(), CLUSTER_ENTITY_NAME, RelationshipType.CLUSTER_ENTITY.getName()); // verify edge to user vertex verifyVertexForEdge( feedVertex, Direction.OUT, RelationshipLabel.USER.getName(), FALCON_USER, RelationshipType.USER.getName()); // verify edge to tags vertex verifyVertexForEdge( feedVertex, Direction.OUT, "classified-as", tag, RelationshipType.TAGS.getName()); // verify edge to group vertex verifyVertexForEdge( feedVertex, Direction.OUT, RelationshipLabel.GROUPS.getName(), group, RelationshipType.GROUPS.getName()); }
private void verifyProcessEntityEdges() { Vertex processVertex = getEntityVertex(PROCESS_ENTITY_NAME, RelationshipType.PROCESS_ENTITY); // verify edge to cluster vertex verifyVertexForEdge( processVertex, Direction.OUT, RelationshipLabel.FEED_CLUSTER_EDGE.getName(), CLUSTER_ENTITY_NAME, RelationshipType.CLUSTER_ENTITY.getName()); // verify edge to user vertex verifyVertexForEdge( processVertex, Direction.OUT, RelationshipLabel.USER.getName(), FALCON_USER, RelationshipType.USER.getName()); // verify edge to tags vertex verifyVertexForEdge( processVertex, Direction.OUT, "classified-as", "Critical", RelationshipType.TAGS.getName()); // verify edges to inputs List<String> actual = new ArrayList<String>(); for (Edge edge : processVertex.getEdges(Direction.IN, RelationshipLabel.FEED_PROCESS_EDGE.getName())) { Vertex outVertex = edge.getVertex(Direction.OUT); Assert.assertEquals( RelationshipType.FEED_ENTITY.getName(), outVertex.getProperty(RelationshipProperty.TYPE.getName())); actual.add(outVertex.<String>getProperty(RelationshipProperty.NAME.getName())); } Assert.assertTrue( actual.containsAll(Arrays.asList("impression-feed", "clicks-feed")), "Actual does not contain expected: " + actual); actual.clear(); // verify edges to outputs for (Edge edge : processVertex.getEdges(Direction.OUT, RelationshipLabel.PROCESS_FEED_EDGE.getName())) { Vertex outVertex = edge.getVertex(Direction.IN); Assert.assertEquals( RelationshipType.FEED_ENTITY.getName(), outVertex.getProperty(RelationshipProperty.TYPE.getName())); actual.add(outVertex.<String>getProperty(RelationshipProperty.NAME.getName())); } Assert.assertTrue( actual.containsAll(Arrays.asList("imp-click-join1", "imp-click-join2")), "Actual does not contain expected: " + actual); }
private void verifyUpdatedEdges(Feed newFeed) { Vertex feedVertex = getEntityVertex(newFeed.getName(), RelationshipType.FEED_ENTITY); // groups Edge edge = feedVertex.getEdges(Direction.OUT, RelationshipLabel.GROUPS.getName()).iterator().next(); Assert.assertEquals(edge.getVertex(Direction.IN).getProperty("name"), "reporting"); // tags edge = feedVertex.getEdges(Direction.OUT, "classified-as").iterator().next(); Assert.assertEquals(edge.getVertex(Direction.IN).getProperty("name"), "Secured"); edge = feedVertex.getEdges(Direction.OUT, "source").iterator().next(); Assert.assertEquals(edge.getVertex(Direction.IN).getProperty("name"), "data-warehouse"); // new cluster List<String> actual = new ArrayList<String>(); for (Edge clusterEdge : feedVertex.getEdges(Direction.OUT, RelationshipLabel.FEED_CLUSTER_EDGE.getName())) { actual.add(clusterEdge.getVertex(Direction.IN).<String>getProperty("name")); } Assert.assertTrue( actual.containsAll(Arrays.asList("primary-cluster", "another-cluster")), "Actual does not contain expected: " + actual); }
public void updateFeedClusters( List<org.apache.falcon.entity.v0.feed.Cluster> oldClusters, List<org.apache.falcon.entity.v0.feed.Cluster> newClusters, Vertex feedEntityVertex) { if (areFeedClustersSame(oldClusters, newClusters)) { return; } // remove edges to old clusters for (org.apache.falcon.entity.v0.feed.Cluster oldCuster : oldClusters) { if (ClusterType.TARGET != oldCuster.getType()) { removeEdge( feedEntityVertex, oldCuster.getName(), RelationshipLabel.FEED_CLUSTER_EDGE.getName()); } } // add edges to new clusters for (org.apache.falcon.entity.v0.feed.Cluster newCluster : newClusters) { if (ClusterType.TARGET != newCluster.getType()) { addRelationToCluster( feedEntityVertex, newCluster.getName(), RelationshipLabel.FEED_CLUSTER_EDGE); } } }