/** * Configure and start an artefact * @param jc a connector * @param n A node type * @param ni a node instance * @param configurationCommand the command to configure the artefact, parameters are: IP IPDest portDest * @param startCommand the command to start the artefact */ private void configureAndStart(Connector jc, Node n, NodeInstance ni, String configurationCommand, String startCommand){ if(!configurationCommand.equals("")) jc.execCommand(ni.getId(), configurationCommand,"ubuntu",n.getPrivateKey()); if(!startCommand.equals("")) jc.execCommand(ni.getId(), startCommand,"ubuntu",n.getPrivateKey()); }
/** * Terminate a node * @param n A node instance to be terminated * @throws MalformedURLException */ private void terminateNode(NodeInstance n){ Provider p=n.getType().getProvider(); Connector jc=ConnectorFactory.createConnector(p); jc.destroyNode(n.getId()); jc.closeConnection(); }
/** * Prepare an artefact before it starts. Retrieves its resources, builds its PaaS and installs it * @param x an ArtefactInstance * @param dm the deployment model used to build the artefact's PaaS * @throws MalformedURLException */ private void prepareAnArtefact(ArtefactInstance x, List<ArtefactInstance> artefacts, List<BindingInstance> bindings) { Connector jc; if(!alreadyDeployed.contains(x) && (x.getDestination() != null)){ NodeInstance ownerNode = x.getDestination(); Node n=ownerNode.getType(); jc=ConnectorFactory.createConnector(n.getProvider()); for(String path : x.getType().getResource().getUploadCommand().keySet()){ jc.uploadFile(path, x.getType().getResource().getUploadCommand().get(path), ownerNode.getId(), "ubuntu", n.getPrivateKey()); } jc.execCommand(ownerNode.getId(), x.getType().getResource().getRetrievingResourceCommand(),"ubuntu",n.getPrivateKey()); alreadyDeployed.add(x); buildPaas(x,bindings); jc.execCommand(ownerNode.getId(), x.getType().getResource().getDeployingResourceCommand(),"ubuntu",n.getPrivateKey()); jc.closeConnection(); } }
private void unconfigureWithIP(Resource r, ArtefactPortInstance i) { Connector jc; if(r != null){ NodeInstance ownerNode = i.getOwner().getDestination(); Node n=ownerNode.getType(); jc=ConnectorFactory.createConnector(n.getProvider()); //jc=new JCloudsConnector(n.getProvider().getName(), n.getProvider().getLogin(), n.getProvider().getPasswd()); jc.execCommand(ownerNode.getId(), r.getStopResourceCommand(),"ubuntu",n.getPrivateKey());; jc.closeConnection(); } }
Job startJob=service.changeServerStatus(a.getId(), ServerStatus.RUNNING, true, null, null); service.waitForJob(startJob.getResourceUUID(), false); Thread.sleep(90000); Server temp=(Server)findObjectResourceByName(a.getName(), ResourceType.SERVER); a.setPublicAddress(temp.getNics().get(0).getIpAddresses().get(0).getIpAddress()); journal.log(Level.INFO, ">> Running node: " + a.getName() + " id: " + a.getId() + " with public address: " + a.getPublicAddress()); } catch (ExtilityException e) {
/** * Stop a specific artefact instance * @param a An Artefact Instance * @throws MalformedURLException */ private void stopArtefact(ArtefactInstance a) { NodeInstance ownerNode = findDestination(a); if(ownerNode != null){ Node n=ownerNode.getType(); Connector jc=ConnectorFactory.createConnector(n.getProvider()); String stopCommand=a.getType().getResource().getStopResourceCommand(); jc.execCommand(ownerNode.getId(), stopCommand,"ubuntu",n.getPrivateKey()); jc.closeConnection(); } }
public void handle(Destroy command) { if (deploy == null) { final String text = "No deployment model. Please first load a deployment model"; final Message message = new Message(command, Category.ERROR, text); dispatch(message); } else { final NodeInstance instance = findNodeInstanceById(command.getInstanceId()); if (instance == null) { final String text = String.format("No node with ID=\"%s\"", command.getInstanceId()); final Message message = new Message(command, Category.ERROR, text); dispatch(message); } else { Provider p = instance.getType().getProvider(); JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); jc.destroyNode(instance.getId()); dispatch(new Message(command, Category.INFORMATION, "Node instance terminated")); } } //command.markAsCompleted(); }
/** * Configuration with parameters IP, IPDest, PortDest * @param r resource for configuration * @param i port of the component to be configured * @param destinationIpAddress IP of the server * @param ipAddress IP of the client * @param destinationPortNumber port of the server * @throws MalformedURLException */ private void configureWithIP(Resource r, ArtefactPortInstance i, String destinationIpAddress, String ipAddress, int destinationPortNumber) { Connector jc; if(r != null){ NodeInstance ownerNode = i.getOwner().getDestination(); Node n=ownerNode.getType(); jc=ConnectorFactory.createConnector(n.getProvider()); //jc=new JCloudsConnector(n.getProvider().getName(), n.getProvider().getLogin(), n.getProvider().getPasswd()); jc.execCommand(ownerNode.getId(), r.getRetrievingResourceCommand(),"ubuntu",n.getPrivateKey()); String configurationCommand=r.getConfigurationResourceCommand()+" \""+ipAddress+"\" \""+destinationIpAddress+"\" "+destinationPortNumber; configureAndStart(jc, n, ownerNode, configurationCommand, ""); jc.closeConnection(); } }
/** * Build the paas of an artefact instance * @param x An artefactInstance * @throws MalformedURLException */ private void buildPaas(ArtefactInstance x, List<BindingInstance> bindings) { NodeInstance ownerNode = x.getDestination(); Node n=ownerNode.getType(); Connector jc; jc=ConnectorFactory.createConnector(n.getProvider()); //jc=new JCloudsConnector(n.getProvider().getName(), n.getProvider().getLogin(), n.getProvider().getPasswd()); for(BindingInstance bi : bindings){ if(!bi.getClient().getType().getIsOptional() && x.getRequired().contains(bi.getClient())){ ServerPortInstance p=bi.getServer(); NodeInstance owner=p.getOwner().getDestination(); if(owner == null) owner=ownerNode; if(!alreadyDeployed.contains(p.getOwner())){ jc.execCommand(owner.getId(), p.getOwner().getType().getResource().getRetrievingResourceCommand() ,"ubuntu",n.getPrivateKey()); jc.execCommand(owner.getId(), p.getOwner().getType().getResource().getDeployingResourceCommand(),"ubuntu",n.getPrivateKey()); String configurationCommand=p.getOwner().getType().getResource().getConfigurationResourceCommand(); String startCommand=p.getOwner().getType().getResource().getStartResourceCommand(); configureAndStart(jc, n, owner, configurationCommand, startCommand); alreadyDeployed.add(p.getOwner()); alreadyStarted.add(p.getOwner()); } } } jc.closeConnection(); }