public static Connector createConnector(Provider p){ try { if(p.getName().equals("aws-ec2")) return new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); if(p.getName().equals("flexiant")) return new FlexiantConnector(p.getProperty("endPoint"), p.getLogin(), p.getPasswd()); } catch (MalformedURLException e) { e.printStackTrace(); } throw new IllegalArgumentException("No such connector"); } }
public Set<? extends ComputeMetadata> listOfNodes(Provider p) { JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); Set<? extends ComputeMetadata> list = jc.listOfNodes(); jc.closeConnection(); return list; } ////////END OF LEGACY CODE TO BE MIGRATED INTO NEW COMMANDS/////////////////////
public ComputeMetadata findNodeByName(String name, Provider p) { JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); ComputeMetadata cm = jc.getNodeByName(name); jc.closeConnection(); return cm; }
/** * Create the node described by the given NodeInstance object * * @param a */ public void createNode(NodeInstance a) { Provider p = a.getType().getProvider(); JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); jc.createInstance(a); jc.closeConnection(); }
/** * Execute a given command on an artefact * * @param a the artefact on which the command will be executed * @param command the related shell command as a String * @param user the user associated */ public void executeOnNode(ArtefactInstance a, String command, String user) { Node ownerNode = a.getDestination().getType(); Provider p = ownerNode.getProvider(); JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); jc.execCommand(ownerNode.getGroupName(), command, user, ownerNode.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(); }
public void handle(Upload 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 { NodeInstance ownerNode=null; for(NodeInstance ni : deploy.getNodeInstances()){ if(ni.getName().equals(command.getArtifactId())) ownerNode=ni; } if(ownerNode != null){ Provider p = ownerNode.getType().getProvider(); JCloudsConnector jc = new JCloudsConnector(p.getName(), p.getLogin(), p.getPasswd()); ComputeMetadata c = jc.getNodeByName(command.getArtifactId()); jc.uploadFile(command.getLocalPath(), command.getRemotePath(), c.getId(), "ubuntu", ownerNode.getType().getPrivateKey()); }else{ final String text = "There is no node with this ID!"; final Message message = new Message(command, Category.ERROR, text); dispatch(message); } } //command.markAsCompleted(); }