use of org.eclipse.winery.model.tosca.TTopologyTemplate in project winery by eclipse.
the class DriverInjectionTest method injectDriver.
@Test
public void injectDriver() throws Exception {
setRevisionTo("d8ee55deecf37f5052d27807df691a7b70ec50f2");
ServiceTemplateId id = new ServiceTemplateId("http://winery.opentosca.org/test/servicetemplates/ponyuniverse/daspecifier", "DASpecificationTest", false);
TTopologyTemplate topologyTemplate = this.repository.getElement(id).getTopologyTemplate();
TTopologyTemplate tTopologyTemplate = DriverInjection.injectDriver(topologyTemplate);
TNodeTemplate nodeTemplateWithAbstractDA = tTopologyTemplate.getNodeTemplate("shetland_pony");
List<TDeploymentArtifact> deploymentArtifacts = nodeTemplateWithAbstractDA.getDeploymentArtifacts();
List<String> deploymentArtifactNames = new ArrayList<>();
deploymentArtifacts.stream().forEach(da -> deploymentArtifactNames.add(da.getName()));
TRelationshipTemplate relationshipTemplate = tTopologyTemplate.getRelationshipTemplate("con_71");
assertEquals(2, deploymentArtifacts.size());
assertTrue(deploymentArtifactNames.contains("WesternEquipment_Pony"));
assertTrue(deploymentArtifactNames.contains("DressageEquipment_Pony"));
assertEquals("org.test.dressagedriver", ModelUtilities.getPropertiesKV(relationshipTemplate).get("Driver"));
}
use of org.eclipse.winery.model.tosca.TTopologyTemplate in project winery by eclipse.
the class DriverInjectionTest method setDriverProperty.
@Test
public void setDriverProperty() throws Exception {
setRevisionTo("d8ee55deecf37f5052d27807df691a7b70ec50f2");
ServiceTemplateId id = new ServiceTemplateId("http://winery.opentosca.org/test/servicetemplates/ponyuniverse/daspecifier", "DASpecificationTest", false);
TTopologyTemplate topologyTemplate = this.repository.getElement(id).getTopologyTemplate();
TRelationshipTemplate relationshipTemplate = topologyTemplate.getRelationshipTemplate("con_71");
TDeploymentArtifact deploymentArtifact = topologyTemplate.getNodeTemplate("dressageequipment").getDeploymentArtifacts().stream().filter(da -> da.getName().equalsIgnoreCase("DressageEquipment_Pony")).findFirst().get();
DriverInjection.setDriverProperty(relationshipTemplate, deploymentArtifact);
assertEquals("org.test.dressagedriver", ModelUtilities.getPropertiesKV(relationshipTemplate).get("Driver"));
}
use of org.eclipse.winery.model.tosca.TTopologyTemplate in project winery by eclipse.
the class SplittingTest method st1nt2IsTheNodeTemplateWhichPredecessorsHasNoPredecessors.
@Test
public void st1nt2IsTheNodeTemplateWhichPredecessorsHasNoPredecessors() throws Exception {
TTopologyTemplate topologyTemplate = new TTopologyTemplate();
TNodeTemplate nt1 = new TNodeTemplate();
TNodeTemplate nt2 = new TNodeTemplate();
TNodeTemplate nt3 = new TNodeTemplate();
nt1.setId("NT1");
nt2.setId("NT2");
nt3.setId("NT3");
TRelationshipTemplate rt = new TRelationshipTemplate();
TRelationshipTemplate.SourceOrTargetElement targetElement = new TRelationshipTemplate.SourceOrTargetElement();
targetElement.setRef(nt2);
rt.setTargetElement(targetElement);
TRelationshipTemplate.SourceOrTargetElement sourceElement = new TRelationshipTemplate.SourceOrTargetElement();
sourceElement.setRef(nt1);
rt.setSourceElement(sourceElement);
TRelationshipTemplate rt2 = new TRelationshipTemplate();
TRelationshipTemplate.SourceOrTargetElement targetElement1 = new TRelationshipTemplate.SourceOrTargetElement();
targetElement1.setRef(nt1);
rt2.setTargetElement(targetElement1);
TRelationshipTemplate.SourceOrTargetElement sourceElement1 = new TRelationshipTemplate.SourceOrTargetElement();
sourceElement1.setRef(nt3);
rt2.setSourceElement(sourceElement1);
List<TEntityTemplate> entityTemplates = topologyTemplate.getNodeTemplateOrRelationshipTemplate();
entityTemplates.add(nt1);
entityTemplates.add(nt2);
entityTemplates.add(nt3);
entityTemplates.add(rt);
List<TNodeTemplate> expectedNodeTemplates = new ArrayList<>();
expectedNodeTemplates.add(nt1);
assertEquals(expectedNodeTemplates, splitting.getNodeTemplatesWhichPredecessorsHasNoPredecessors(topologyTemplate));
}
use of org.eclipse.winery.model.tosca.TTopologyTemplate in project winery by eclipse.
the class SplittingTest method testmatchingofSplittingTopology.
@Test
public void testmatchingofSplittingTopology() throws Exception {
ServiceTemplateId serviceTemplateId = new ServiceTemplateId("http://opentosca.org/servicetemplates", "Abstract_PHPApp_MySQLDB_MotivatingScenario_Splitting-split", false);
Assertions.assertTrue(this.repository.exists(serviceTemplateId));
final TServiceTemplate serviceTemplate = repository.getElement(serviceTemplateId);
TTopologyTemplate topologyTemplateMatching = serviceTemplate.getTopologyTemplate();
List<String> expectedIds = Arrays.asList("PHP-5-WebApplication", "Java7", "MySQL-DB", "PHP-5-Module", "Apache-2.4", "Ubuntu-14.04-VM-OnPremiseIAAS", "OpenStack-Liberty-12-OnPremiseIAAS", "AmazonBeanstalk", "AmazonRDS");
List<TNodeTemplate> NodeTemplates = splitting.hostMatchingWithDefaultHostSelection(topologyTemplateMatching).getNodeTemplateOrRelationshipTemplate().stream().filter(t -> t instanceof TNodeTemplate).map(TNodeTemplate.class::cast).collect(Collectors.toList());
List<String> Ids = new ArrayList<>();
for (TNodeTemplate nodeTemplate : NodeTemplates) {
Ids.add(nodeTemplate.getId());
}
Assertions.assertEquals(expectedIds, Ids);
}
use of org.eclipse.winery.model.tosca.TTopologyTemplate in project winery by eclipse.
the class MinExternalConnectionsTest method filter.
@Test
public void filter() throws Exception {
ServiceTemplateId id = new ServiceTemplateId("http://www.winery.opentosca.org/test/targetallocation/servicetemplates", "MinExternalConnectionsTest1", false);
TTopologyTemplate twoExternal = repository.getElement(id).getTopologyTemplate();
ModelUtilities.setTargetLabel(twoExternal.getNodeTemplate("shetland_pony_2"), "PastureProvider");
ModelUtilities.setTargetLabel(twoExternal.getNodeTemplate("shetland_pony_3"), "PastureProvider");
TTopologyTemplate oneExternal = AllocationUtils.deepCopy(twoExternal);
ModelUtilities.setTargetLabel(oneExternal.getNodeTemplate("shetland_pony_2"), "FieldProvider");
ModelUtilities.setTargetLabel(oneExternal.getNodeTemplate("shetland_pony_3"), "FieldProvider");
List<TopologyWrapper> topologies = new ArrayList<>();
topologies.add(new TopologyWrapper(twoExternal));
topologies.add(new TopologyWrapper(oneExternal));
Criteria minExternalConnections = new MinExternalConnections(null, Integer.MAX_VALUE);
List<TopologyWrapper> filtered = minExternalConnections.filter(topologies);
assertEquals(1, filtered.size());
TTopologyTemplate result = filtered.get(0).getTopology();
assertEquals("PastureProvider".toLowerCase(), ModelUtilities.getTargetLabel(result.getNodeTemplate("shetland_pony")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(result.getNodeTemplate("shetland_pony_2")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(result.getNodeTemplate("shetland_pony_3")).get());
assertEquals("FieldProvider".toLowerCase(), ModelUtilities.getTargetLabel(result.getNodeTemplate("shetland_pony_4")).get());
}
Aggregations