use of org.eclipse.winery.model.ids.definitions.ServiceTemplateId in project winery by eclipse.
the class MinHostsTest method test5Pony3FieldProvider.
@Test
public void test5Pony3FieldProvider() throws Exception {
ServiceTemplateId id = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "TargetAllocationMinHostsTest5_-w1-wip1", false);
TopologyWrapper topology = new TopologyWrapper(repository.getElement(id).getTopologyTemplate());
ModelUtilities.setTargetLabel(topology.getTopology().getNodeTemplate("shetland_pony_3"), "FieldProvider");
Criteria minHosts = new MinHosts(null, Integer.MAX_VALUE);
List<TopologyWrapper> topologies = minHosts.allocate(topology);
assertEquals(1, topologies.size());
TTopologyTemplate allocated = topologies.get(0).getTopology();
assertEquals(6, allocated.getNodeTemplates().size());
assertEquals(4, allocated.getRelationshipTemplates().size());
assertEquals("LargeStallProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony")).get());
assertEquals("LargeStallProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony_2")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony_3")).get());
assertEquals(2, allocated.getNodeTemplates().stream().map(ModelUtilities::getTargetLabel).collect(Collectors.toSet()).size());
}
use of org.eclipse.winery.model.ids.definitions.ServiceTemplateId in project winery by eclipse.
the class MinHostsTest method test5Original.
@Test
public void test5Original() throws Exception {
ServiceTemplateId id = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "TargetAllocationMinHostsTest5_-w1-wip1", false);
TopologyWrapper topology = new TopologyWrapper(repository.getElement(id).getTopologyTemplate());
Criteria minHosts = new MinHosts(null, Integer.MAX_VALUE);
List<TopologyWrapper> topologies = minHosts.allocate(topology);
assertEquals(1, topologies.size());
TTopologyTemplate allocated = topologies.get(0).getTopology();
assertEquals(6, allocated.getNodeTemplates().size());
assertEquals(5, allocated.getRelationshipTemplates().size());
assertEquals("LargeStallProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony")).get());
assertEquals("LargeStallProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony_2")).get());
assertEquals("LargeStallProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated.getNodeTemplate("shetland_pony_3")).get());
assertEquals(1, allocated.getNodeTemplates().stream().map(ModelUtilities::getTargetLabel).collect(Collectors.toSet()).size());
}
use of org.eclipse.winery.model.ids.definitions.ServiceTemplateId in project winery by eclipse.
the class MinHostsTest method testOneTopLevelTwoPossibilitiesNoTargetLabel.
@Test
public void testOneTopLevelTwoPossibilitiesNoTargetLabel() throws Exception {
ServiceTemplateId id = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "TargetAllocationMinHostsTest1", false);
TopologyWrapper topology = new TopologyWrapper(repository.getElement(id).getTopologyTemplate());
Criteria minHosts = new MinHosts(null, Integer.MAX_VALUE);
List<String> ntIdsWithoutTargetLabel = topology.getTopLevelNTs().stream().filter(nt -> !ModelUtilities.getTargetLabel(nt).isPresent()).map(HasId::getId).collect(Collectors.toList());
List<TopologyWrapper> topologies = minHosts.allocate(topology);
assertEquals(2, topologies.size());
TTopologyTemplate topology1 = topologies.get(0).getTopology();
TTopologyTemplate topology2 = topologies.get(1).getTopology();
assertEquals(9, topology1.getNodeTemplateOrRelationshipTemplate().size());
assertEquals(9, topology2.getNodeTemplateOrRelationshipTemplate().size());
List<String> types1 = new ArrayList<>();
for (TNodeTemplate nodeTemplate : topology1.getNodeTemplates()) {
types1.add(nodeTemplate.getType().getLocalPart());
}
assertEquals(6, types1.size());
assertTrue(types1.contains("shetland_pony"));
assertTrue(types1.contains("pasture"));
for (TNodeTemplate nodeTemplate : topologies.get(0).getTopLevelNTs()) {
if (ntIdsWithoutTargetLabel.contains(nodeTemplate.getId())) {
assertEquals("pasture", topologies.get(0).getHostedOnSuccessor(nodeTemplate).getType().getLocalPart());
}
}
List<String> types2 = new ArrayList<>();
for (TNodeTemplate nodeTemplate : topology2.getNodeTemplates()) {
types2.add(nodeTemplate.getType().getLocalPart());
}
assertEquals(6, types2.size());
assertTrue(types2.contains("shetland_pony"));
assertTrue(types2.contains("field_-w1-wip1"));
for (TNodeTemplate nodeTemplate : topologies.get(1).getTopLevelNTs()) {
if (ntIdsWithoutTargetLabel.contains(nodeTemplate.getId())) {
assertEquals("field_-w1-wip1", topologies.get(1).getHostedOnSuccessor(nodeTemplate).getType().getLocalPart());
}
}
}
use of org.eclipse.winery.model.ids.definitions.ServiceTemplateId in project winery by eclipse.
the class MinHostsTest method test5PonyPastureProviderPony2FieldProvider.
@Test
public void test5PonyPastureProviderPony2FieldProvider() throws Exception {
ServiceTemplateId id = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "TargetAllocationMinHostsTest5_-w1-wip1", false);
TopologyWrapper topology = new TopologyWrapper(repository.getElement(id).getTopologyTemplate());
ModelUtilities.setTargetLabel(topology.getTopology().getNodeTemplate("shetland_pony"), "PastureProvider");
ModelUtilities.setTargetLabel(topology.getTopology().getNodeTemplate("shetland_pony_2"), "FieldProvider");
Criteria minHosts = new MinHosts(null, Integer.MAX_VALUE);
List<TopologyWrapper> topologies = minHosts.allocate(topology);
assertEquals(2, topologies.size());
TTopologyTemplate allocated1 = topologies.get(0).getTopology();
assertEquals(6, allocated1.getNodeTemplates().size());
assertEquals(3, allocated1.getRelationshipTemplates().size());
TTopologyTemplate allocated2 = topologies.get(1).getTopology();
assertEquals(6, allocated2.getNodeTemplates().size());
assertEquals(3, allocated2.getRelationshipTemplates().size());
assertEquals("PastureProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated1.getNodeTemplate("shetland_pony")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated1.getNodeTemplate("shetland_pony_2")).get());
assertEquals(2, allocated1.getNodeTemplates().stream().map(ModelUtilities::getTargetLabel).collect(Collectors.toSet()).size());
assertEquals("PastureProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated2.getNodeTemplate("shetland_pony")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(allocated2.getNodeTemplate("shetland_pony_2")).get());
assertEquals(2, allocated2.getNodeTemplates().stream().map(ModelUtilities::getTargetLabel).collect(Collectors.toSet()).size());
// one topology has shetland_pony_3 on pastureprovider, one on fieldprovider
TNodeTemplate pony3Allocated1 = allocated1.getNodeTemplate("shetland_pony_3");
TNodeTemplate pony3Allocated2 = allocated2.getNodeTemplate("shetland_pony_3");
boolean pony3Provider = (ModelUtilities.getTargetLabel(pony3Allocated1).get().equalsIgnoreCase("PastureProvider") && ModelUtilities.getTargetLabel(pony3Allocated2).get().equalsIgnoreCase("FieldProvider")) || (ModelUtilities.getTargetLabel(pony3Allocated1).get().equalsIgnoreCase("FieldProvider") && ModelUtilities.getTargetLabel(pony3Allocated2).get().equalsIgnoreCase("PastureProvider"));
assertTrue(pony3Provider);
}
use of org.eclipse.winery.model.ids.definitions.ServiceTemplateId in project winery by eclipse.
the class TopologyMappingsWrapperTest method removeNotNeededSuccessors.
@Test
public void removeNotNeededSuccessors() {
ServiceTemplateId policiesIO = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "TargetAllocationMinHostsTest1", false);
TopologyWrapper topology = new TopologyWrapper(repository.getElement(policiesIO).getTopologyTemplate());
assertEquals(9, topology.getNodeTemplates().size());
topology.removeNotNeededSuccessors(topology.getTopology().getNodeTemplate("shetland_pony"));
assertEquals(7, topology.getNodeTemplates().size());
assertEquals(4, topology.getRelationshipTemplates().size());
}
Aggregations