public Aggregate getOrCreateAggregate(String name, AggregateType aggType) { String aggId = Aggregate.getId(name); for (Aggregate aggregate : _aggregates) { if (aggregate.getId().equals(aggId)) { return aggregate; } } Aggregate aggregate = new Aggregate(name, aggType); getAggregates().add(aggregate); return aggregate; }
@Test public void serialization() { Aggregate aggregate = new Aggregate("test", AggregateType.REGION); Map<String, String> properties = new HashMap<>(); properties.put("key", "value"); aggregate.setProperties(properties); JsonNode jsonNode = BatfishObjectMapper.mapper().valueToTree(aggregate); assertThat(jsonNode.get("id").asText(), equalTo(Aggregate.getId("test"))); assertThat(jsonNode.get("name").asText(), equalTo("test")); assertThat(jsonNode.get("type").asText(), equalTo("REGION")); assertThat(jsonNode.get("properties").get("key").asText(), equalTo("value")); } }
@Test public void constructorProperties() throws IOException { String aggStr = "{\"name\" : \"aggName\", \"properties\" : { \"key\": \"value\"}}"; Aggregate node = BatfishObjectMapper.mapper().readValue(aggStr, Aggregate.class); assertThat(node.getId(), equalTo(Aggregate.getId("aggName"))); assertThat(node.getName(), equalTo("aggName")); assertThat(node.getProperties().size(), equalTo(1)); assertThat(node.getProperties().get("key"), equalTo("value")); }
Aggregate subnetAggregate = pojoTopology.getOrCreateAggregate(subnetId, AggregateType.SUBNET); subnetAggregate.getContents().add(pojoNode.getId()); vpcAggregate.getContents().add(subnetAggregate.getId()); } else if (configuration.getVendorFamily().getAws().getVpcId() != null) { String vpcId = configuration.getVendorFamily().getAws().getVpcId(); Aggregate vpcAggregate = pojoTopology.getOrCreateAggregate(vpcId, AggregateType.VNET); vpcAggregate.getContents().add(pojoNode.getId()); regionAggregate.getContents().add(vpcAggregate.getId()); } else if (configuration.getVendorFamily().getAws().getRegion() != null) { String region = configuration.getVendorFamily().getAws().getRegion(); Aggregate regionAggregate = pojoTopology.getOrCreateAggregate(region, AggregateType.REGION); regionAggregate.getContents().add(pojoNode.getId()); awsAggregate.getContents().add(regionAggregate.getId()); } else { Aggregate awsAggregate = pojoTopology.getOrCreateAggregate("aws", AggregateType.CLOUD); awsAggregate.getContents().add(pojoNode.getId());
@Test public void constructorBasic() throws IOException { String aggStr = "{\"name\" : \"test\"}"; Aggregate aggregate = BatfishObjectMapper.mapper().readValue(aggStr, Aggregate.class); assertThat(aggregate.getId(), equalTo(Aggregate.getId("test"))); assertThat(aggregate.getName(), equalTo("test")); }
public Aggregate(String name, AggregateType type) { super(getId(name)); _name = name; _type = type; _contents = new HashSet<>(); }
@Test public void serialization() { Topology topo = new Topology("testrig"); topo.getAggregates().add(new Aggregate("cloud")); topo.getInterfaces().add(new Interface("node", "name")); topo.getLinks().add(new Link("src", "dst")); topo.getNodes().add(new Node("node")); Map<String, String> properties = new HashMap<>(); properties.put("key", "value"); topo.setProperties(properties); JsonNode jsonNode = BatfishObjectMapper.mapper().valueToTree(topo); assertThat(jsonNode.get("id").asText(), equalTo(Topology.getId("testrig"))); assertThat(jsonNode.get("aggregates").get(0).get("name").asText(), equalTo("cloud")); assertThat(jsonNode.get("interfaces").get(0).get("nodeId").asText(), equalTo("node")); assertThat(jsonNode.get("interfaces").get(0).get("name").asText(), equalTo("name")); assertThat(jsonNode.get("links").get(0).get("srcId").asText(), equalTo("src")); assertThat(jsonNode.get("links").get(0).get("dstId").asText(), equalTo("dst")); assertThat(jsonNode.get("nodes").get(0).get("name").asText(), equalTo("node")); assertThat(jsonNode.get("properties").get("key").asText(), equalTo("value")); } }
@Test public void constructor() throws IOException { String str = "{\"testrigName\" : \"testrig\"," + " \"nodes\" : [{\"name\": \"node\"}], " + " \"links\" : [{\"srcId\" : \"src\", \"dstId\" : \"dst\"}]," + " \"interfaces\" : [{\"nodeId\": \"node\", \"name\" : \"node\"}]," + " \"aggregates\" : [{\"name\": \"cloud\", \"contents\" : [\"id1\"]}]}"; Topology topo = BatfishObjectMapper.mapper().readValue(str, Topology.class); assertThat(topo.getId(), equalTo(Topology.getId("testrig"))); assertThat(topo.getTestrigName(), equalTo("testrig")); assertThat(topo.getAggregates().size(), equalTo(1)); assertThat( topo.getOrCreateAggregate("cloud", AggregateType.CLOUD).getContents().size(), equalTo(1)); assertThat(topo.getInterfaces().size(), equalTo(1)); assertThat(topo.getLinks().size(), equalTo(1)); assertThat(topo.getNodes().size(), equalTo(1)); }