/** * Provision the VMs and upload the model with informations about the VM * <p/> * Added: Also deal with PaaS platforms * * @param ems A list of vms */ private void setExternalServices(ExternalComponentInstanceGroup ems) { for (ExternalComponentInstance n : ems) { if (n instanceof VMInstance) provisionAVM((VMInstance) n); else provisionAPlatform(n); } for (ExternalComponentInstance n : ems){ try{ if("loadbalancer".equals(n.getType().asExternal().getServiceType().toLowerCase())) configSubLoadBalancers(n); } catch(Exception e){ continue; } } }
/** * Terminates a set of VMs * * @param vms A list of vmInstances * @throws MalformedURLException */ private void terminateExternalServices(Map<ExternalComponentInstance<? extends ExternalComponent>,List<InternalComponentInstance>> vms) { for (ExternalComponentInstance n : vms.keySet()) { if (n instanceof VMInstance) { terminateVM((VMInstance) n); } else{ PaaSConnector pc = ConnectorFactory.createPaaSConnector(n.getType().asExternal().getProvider()); for(InternalComponentInstance c: vms.get(n)){ journal.log(Level.INFO, ">> Terminating app "+c.asInternal().getName()); pc.deleteApp(c.asInternal().getName()); } journal.log(Level.INFO, ">> Terminated!"); } } }
public VMGroup onlyVMs() { final VMGroup selection = new VMGroup(); for (Component component: this) { if (component.isExternal()) { final ExternalComponent external = component.asExternal(); if (external.isVM()) { selection.add(external.asVM()); } } } return selection; }
ExternalComponent ec = eci.getType().asExternal(); PyHrapiConnector connector = ConnectorFactory.createLoadBalancerProvider(ec.getEndPoint()); String substext = null; .firstNamed(sub) .asExternal(); ExternalComponent subEc = subEci.getType().asExternal(); String subEndPoint = subEc.getEndPoint(); if(subEndPoint.startsWith("https://"))
public Deployment scaleOut(ExternalComponentInstance eci, Provider provider){ if(eci.isVM()){ scaleOut(eci.asVM(),provider); return currentModel; }else{ Deployment targetModel=cloneCurrentModel(); ExternalComponentInstance eci2=targetModel.getComponentInstances().onlyExternals().firstNamed(eci.getName()); ExternalComponent ec=eci2.getType().asExternal(); ec.setProvider(provider); eci2.setStatus(ComponentInstance.State.STOPPED); dep.deploy(targetModel); return targetModel; } }
String endpoint = serveri.getType().asExternal().getEndPoint(); if(endpoint==null){ Map<String, String> env = System.getenv();
@Override public ComponentInstance<? extends Component> applyTo(Deployment deployment) { final String name = getLibrary().createUniqueComponentInstanceName(deployment, type); if (type.isExternal()) { ExternalComponent external = type.asExternal(); if (external.isVM()) { aVMInstance() .named(name) .ofType(type.getName()) .integrateIn(deployment); } else { anExternalComponentInstance() .named(name) .ofType(external.getName()) .integrateIn(deployment); } } else { InternalComponent component = type.asInternal(); ComponentInstance<? extends Component> host = getLibrary().findDestinationFor(deployment, component); return getLibrary().install(deployment, component, host); } return deployment.getComponentInstances().firstNamed(name); } }