package com.rayo.storage.cassandra; import java.util.ArrayList; import java.util.List; import com.rayo.server.storage.model.Application; /** * This class primes Cassandra with applications and mappings needed by the load tests and * functional tests * * @author martin * */ public class DefaultCassandraPrimer implements CassandraPrimer { private String defaultRayoUsername; private String defaultAppName; private String defaultPlatform; private String loadTestRayoUsername; private String loadTestAppPrefix; private String loadTestPrismUsername; private String xmppServer; private String dialUris; @Override public void prime(CassandraDatastore datastore) throws Exception { System.out.println("Checking default application"); String jid = defaultRayoUsername + "@" + xmppServer; // Create a default application to be used by functional testing Application application = datastore.getApplication(jid); if (application == null) { System.out.println("Default application does not exist."); System.out.println("Creating default application."); application = new Application(jid); application.setAppId(defaultAppName); application.setAccountId("undefined"); application.setJid(defaultRayoUsername + "@" + xmppServer); application.setName(defaultAppName); application.setPermissions("undefined"); application.setPlatform(defaultPlatform); datastore.storeApplication(application); List<String> addresses = new ArrayList<String>(); String[] uris = dialUris.split(","); for(String uri: uris) { for (char a='a';a<'g';a++) { String address = "sip:user" + a +"@" + uri; addresses.add(address); } } if (addresses.size() > 0) { datastore.storeAddresses(addresses, application.getBareJid()); System.out.println(String.format("Added addresses %s to app id [%s]", addresses, application.getBareJid())); } datastore.storeAddresses(addresses, application.getBareJid()); System.out.println("Default application created successfully"); } else { System.out.println("Default application already exists"); } for (int i=0;i<=500;i++) { String appid = loadTestAppPrefix + i; jid = loadTestRayoUsername + i + "@" + xmppServer; application = datastore.getApplication(jid); if (application == null) { System.out.println(String.format("Creating application with id [%s]", appid)); application = new Application(jid); application.setAppId(appid); application.setAccountId("undefined"); application.setName(appid); application.setPermissions("undefined"); application.setPlatform(defaultPlatform); datastore.storeApplication(application); System.out.println(String.format("Created application: %s", application)); List<String> addresses = new ArrayList<String>(); String[] uris = dialUris.split(","); for(String uri: uris) { String address = "sip:" + loadTestPrismUsername + i + "@" + uri; addresses.add(address); } if (addresses.size() > 0) { datastore.storeAddresses(addresses, jid); System.out.println(String.format("Added addresses %s to app id [%s]", addresses, appid)); } } } System.out.println("Done"); } public String getDefaultRayoUsername() { return defaultRayoUsername; } public void setDefaultRayoUsername(String defaultRayoUsername) { this.defaultRayoUsername = defaultRayoUsername; } public String getDefaultAppName() { return defaultAppName; } public void setDefaultAppName(String defaultAppName) { this.defaultAppName = defaultAppName; } public String getDefaultPlatform() { return defaultPlatform; } public void setDefaultPlatform(String defaultPlatform) { this.defaultPlatform = defaultPlatform; } public String getLoadTestRayoUsername() { return loadTestRayoUsername; } public void setLoadTestRayoUsername(String loadTestRayoUsername) { this.loadTestRayoUsername = loadTestRayoUsername; } public String getLoadTestAppPrefix() { return loadTestAppPrefix; } public void setLoadTestAppPrefix(String loadTestAppPrefix) { this.loadTestAppPrefix = loadTestAppPrefix; } public String getLoadTestPrismUsername() { return loadTestPrismUsername; } public void setLoadTestPrismUsername(String loadTestPrismUsername) { this.loadTestPrismUsername = loadTestPrismUsername; } public String getXmppServer() { return xmppServer; } public void setXmppServer(String xmppServer) { this.xmppServer = xmppServer; } public String getDialUris() { return dialUris; } public void setDialUris(String dialUris) { this.dialUris = dialUris; } }