/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package at.ac.tuwien.dsg.cloud.salsa.examples.dataaccess; import at.ac.tuwien.dsg.cloud.elise.master.RESTService.EliseRepository; import at.ac.tuwien.dsg.cloud.elise.model.provider.Artifact; import at.ac.tuwien.dsg.cloud.elise.model.provider.ServiceTemplate; import at.ac.tuwien.dsg.cloud.elise.model.generic.ExtensibleModel; import at.ac.tuwien.dsg.cloud.elise.model.runtime.GlobalIdentification; import at.ac.tuwien.dsg.cloud.elise.model.runtime.LocalIdentification; import at.ac.tuwien.dsg.cloud.elise.model.runtime.UnitInstance; import at.ac.tuwien.dsg.cloud.salsa.domainmodels.IaaS.VirtualMachineInfo; import at.ac.tuwien.dsg.cloud.salsa.domainmodels.types.SalsaArtifactType; import at.ac.tuwien.dsg.cloud.salsa.domainmodels.types.ServiceCategory; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import java.util.Arrays; import java.util.Set; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; /** * * @author hungld */ public class testDataAccess { public static void main(String[] args) { String endpoint = "http://localhost:9000/salsa-engine/rest/elise/"; EliseRepository mng = JAXRSClientFactory.create(endpoint, EliseRepository.class, Arrays.asList(new JacksonJaxbJsonProvider())); UnitInstance unit = new UnitInstance("test", ServiceCategory.docker); GlobalIdentification iden = new GlobalIdentification(); iden.addLocalIdentification((new LocalIdentification(ServiceCategory.docker, "me")).hasIdentification("key", "idenItem")); unit.setIdentification(iden); unit.setUuid("myUUID"); System.out.println("\n CHECKING HEALTH >>>>>>>>>>>>>>>>>>>>>>>S"); System.out.println(mng.health()); // System.out.println(mng.getUnitCategory()); System.out.println("\n 1--- SAVING 1 >>>>>>>>>>>>>>>>>>>>>>>"); mng.saveUnitInstance(unit); readAndShow(mng); System.out.println("\n 2---- SAVING 2 >>>>>>>>>>>>>>>>>>>>>>>"); unit.setCategory(ServiceCategory.ExecutableApp); readAndShow(mng); System.out.println("\n 3---- ADDING DOMAIN >>>>>>>>>>>>>>>>>>"); VirtualMachineInfo vmInfo = new VirtualMachineInfo("openstack", "randomInstanceID", "LoadBalancer"); unit.setDomain(vmInfo); // WebAppInfo webAppInfo = new WebAppInfo("domainWebappID", "webappEndpoint"); // unit.setDomain(webAppInfo); // unit.setDomainClazz(webAppInfo.getClass()); mng.saveUnitInstance(unit); readAndShow(mng); System.out.println("\n 4--- ADDING Extra >>>>>>>>>>>>>>>>>>"); AddressInfo address = new AddressInfo("Vienna", "Karlsplatz"); // unit.hasExtra(address); mng.saveUnitInstance(unit); readAndShow(mng); System.out.println("\n 5--- ADDING Artifact"); Artifact art = new Artifact("haproxy.sh", SalsaArtifactType.sh, "1.0", "http://localhost/files/haproxy.sh"); mng.saveArtifact(art); System.out.println("\n READING >>>>>>>>>>>>>>>"); Set<Artifact> arts = mng.readArtifact("haproxy.sh", null, null); for (Artifact a: arts){ System.out.println(a.writeToJson()); } System.out.println("\n 6--- ADDING Service Template"); ServiceTemplate template = new ServiceTemplate("HAProxy", ServiceCategory.SystemService); template.setUuid("templateUUID"); mng.saveServiceTemplate(template); System.out.println("\n READING SERVICE TEMPLATE >>>>>>>>>>>>>>>"); System.out.println(mng.readServiceTemplate("templateUUID").toJson()); System.out.println("\n 7--- EDIT Service Template"); template.setName("HAProxy1111"); mng.saveServiceTemplate(template); System.out.println("\n READING SERVICE TEMPLATE >>>>>>>>>>>>>>>"); System.out.println(mng.readServiceTemplate("templateUUID").toJson()); System.out.println("\n 8--- ADDING Artifact to template"); template.hasArtifact(art); mng.saveServiceTemplate(template); System.out.println("\n READING SERVICE TEMPLATE >>>>>>>>>>>>>>>"); System.out.println(mng.readServiceTemplate("templateUUID").toJson()); } private static void readAndShow(EliseRepository mng) { System.out.println("\n READING >>>>>>>>>>>>>>>"); System.out.println(mng.readUnitInstance("myUUID").toJson()); } public static class AddressInfo extends ExtensibleModel { String city; String street; public AddressInfo(String city, String street) { super(AddressInfo.class); this.city = city; this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } } }