@Override public void configAppParameters(String applicationName, Map<String,String> params) { if("cloudbees".equals(provider.getName().toLowerCase())){ try{ BeesClient client = new BeesClient("https://api.cloudbees.com/api", provider.getCredentials().getLogin(), provider.getCredentials().getPassword(), "xml", "1.0"); client.applicationConfigUpdate(this.credentials.getAccountName()+"/"+applicationName, params); } catch(Exception ex){ Logger.getLogger(Cloud4soaConnector.class.getName()).log(Level.SEVERE, "failed to set up scale", ex); } } }
@Override public Provider build() { final Provider result = new Provider(getName()); prepare(result); result.setCredentials(credentials); return result; }
public boolean isProvidedBy(Provider provider) { return this.provider.equals(provider); }
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 Cloud4soaConnector(Provider provider){ this.provider=provider; this.credentials=new Credentials( provider.getCredentials().getLogin(), provider.getCredentials().getPassword(), provider.getProperties().get("account").getValue() ); if(provider.getName().toLowerCase().equals(CLOUDBEES.toLowerCase())) this.platform = CLOUDBEES; if(provider.getName().toLowerCase().equals(RDS.toLowerCase())) this.platform = RDS; }
@Override public String toString() { return "Name: " + getName(); }
public void providersToPOJO(Collection<net.cloudml.core.Provider> kproviders) { checkForNull(kproviders, "Cannot iterate on null!"); Provider p; for (net.cloudml.core.Provider kProvider: kproviders) { if(kProvider.getCredentials() == null || kProvider.getCredentials().equals("")){ if((kProvider.getLogin() != null && kProvider.getPassword() != null) || (kProvider.getLogin().equals("") && !kProvider.getPassword().equals(""))){ p = new Provider(kProvider.getName(), new MemoryCredentials(kProvider.getLogin(), kProvider.getPassword())); }else{ throw new IllegalArgumentException("No credentials"); } }else{ p = new Provider(kProvider.getName(), new FileCredentials(kProvider.getCredentials())); } convertProperties(kProvider, p); model.getProviders().add(p); providers.put(p.getName(), p); } assert kproviders.isEmpty() == providers.isEmpty(); }
@Override public boolean remove(Object o) { if (o instanceof Provider) { final Provider provider = (Provider) o; if (provider.isUsed()) { final String error = String.format("Unable to remove provider '5s' as it is still in use", provider.getName()); throw new IllegalStateException(error); } provider.getOwner().discard(); } return super.remove(o); } }
public void restartApp(String appId){ try { BeesClient client = new BeesClient("https://api.cloudbees.com/api", provider.getCredentials().getLogin(), provider.getCredentials().getPassword(), "xml", "1.0"); client.applicationRestart("mod4cloud/" + appId); } catch (Exception e) { journal.log(Level.SEVERE, e.getMessage()); } }
Deployment temp=(Deployment)jc.load(is); for(Provider p: temp.getProviders()){ if(p.getCredentials() instanceof FileCredentials){ String login = ""; String password = ""; if(p.getCredentials().getLogin() != null) login=p.getCredentials().getLogin(); if(p.getCredentials().getPassword() != null) password=p.getCredentials().getPassword(); MemoryCredentials mc=new MemoryCredentials(login, password); p.setCredentials(mc);
public static Deployment createCloudBeesDeployment(){ DeploymentBuilder dmb = org.cloudml.core.samples.PaasCloudBees.completeCloudBeesPaaS(); Deployment dm = dmb.build(); dm.getProviders().firstNamed("CloudBees").setName("beanstalk"); dm.getProviders().firstNamed("beanstalk").setCredentials(new FileCredentials("c:\\temp\\aws.credential")); ExternalComponent c = dm.getComponents().onlyExternals().firstNamed("cbdb"); c.setServiceType("database"); c.setLogin("sintef"); c.setPasswd("password123"); c.getProperties().add(new Property("DB-Engine","MySQL")); c.getProperties().add(new Property("DB-Version","5.6.17")); c.getProperties().add(new Property("DB-Name","cbdb")); System.out.println(dm); return dm; }
public synchronized void commitModifications(List<String> modifications) { for (String modi : modifications) { String[] parsed = modi.split("\\s+"); if ("add".equals(parsed[0])) { if ("in".equals(parsed[4]) && "root".equals(parsed[5]) && "nodeTypes".equals(parsed[6])) { // FIXME: We should know which provider is responsible for the new VM we add! final Provider provider = new Provider("Missing Provider"); repo.getRoot().getProviders().add(provider); repo.getRoot().getComponents().add(new VM(parsed[3], provider)); } } } }
public Boolean scaleOut(VMInstance vmi,Provider provider){ Scaler scaler = new Scaler(currentModel, coordinator, this); if(provider.getProperties().get("MaxVMs") != null) { int max = Integer.parseInt(provider.getProperties().valueOf("MaxVMs")); if (nbVMFromProvider(provider) + 1 < max) { scaler.scaleOut(vmi, provider); } else { if (coordinator != null) { coordinator.ack("MaxVMsReached", this.getClass().getName()); } return false; } }else { scaler.scaleOut(vmi,provider); } return true; }
public static Deployment createCloudBeesDeployment(){ DeploymentBuilder dmb = org.cloudml.core.samples.PaasCloudBees.completeCloudBeesPaaS(); Deployment dm = dmb.build(); dm.getProviders().firstNamed("CloudBees").setCredentials(new FileCredentials("c:\\temp\\cloudbees.credential")); ExternalComponent c = dm.getComponents().onlyExternals().firstNamed("cbdb"); c.setLogin("sintef"); c.setPasswd("password123"); System.out.println(dm); return dm; }
/** * I had a hard-coded region of eu-west-1. Need to fix this some time * @param p * @return */ public static PaaSConnector createPaaSConnector(Provider p){ if("beanstalk".equals(p.getName().toLowerCase()) || "ebs".equals(p.getName().toLowerCase()) || "rds".equals(p.getName().toLowerCase()) || "sqs".equals(p.getName().toLowerCase())) return new BeanstalkConnector(p.getCredentials().getLogin(), p.getCredentials().getPassword(), "eu-west-1"); if("cloudbees".equals(p.getName().toLowerCase())) return new Cloud4soaConnector(p); if("cf".equals(p.getName().toLowerCase()) || p.getName().toLowerCase().contains("cloudfoundry")) return new CloudFoundryConnector(p.getProperties().valueOf("endPoint"),p.getCredentials().getLogin(), p.getCredentials().getPassword(), p.getProperties().valueOf("org"), p.getProperties().valueOf("space")); throw new IllegalArgumentException("No such connector"); } private static PyHrapiConnector loadbalancerConnector = null;
@Override public boolean equals(Object other) { if (other instanceof Provider) { Provider otherProvider = (Provider) other; return name.equals(otherProvider.getName()); } else { return false; } } }