package org.openstack.atlas.logs.itest;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.joda.time.DateTime;
import org.openstack.atlas.service.domain.pojos.LoadBalancerIdAndName;
import org.openstack.atlas.util.itest.hibernate.HuApp;
import org.openstack.atlas.util.staticutils.StaticDateTimeUtils;
public class CommonItestStatic {
public static final String HDUNAME = "HADOOP_USER_NAME";
public static boolean inputStream(BufferedReader stdin, String val) throws IOException {
String[] resp = stripBlankArgs(stdin.readLine());
return (resp.length > 0 && resp[0].equalsIgnoreCase(val));
}
public static String[] stripBlankArgs(String line) {
int nargs = 0;
int i;
int j;
String[] argsIn = line.replace("\r", "").replace("\n", "").split(" ");
for (i = 0; i < argsIn.length; i++) {
if (argsIn[i].length() > 0) {
nargs++;
}
}
String[] argsOut = new String[nargs];
j = 0;
for (i = 0; i < argsIn.length; i++) {
if (argsIn[i].length() > 0) {
argsOut[j] = argsIn[i];
j++;
}
}
return argsOut;
}
public static Map<String, String> argMapper(String[] args) {
Map<String, String> argMap = new HashMap<String, String>();
for (String arg : args) {
String[] kwArg = arg.split("=");
if (kwArg.length == 2) {
argMap.put(kwArg[0], kwArg[1]);
}
}
return argMap;
}
public static String[] stripKwArgs(String[] args) {
String[] argsOut;
List<String> filteredArgs = new ArrayList<String>();
for (int i = 0; i < args.length; i++) {
String arg = args[i];
if (arg.split("=").length >= 2) {
continue;
}
filteredArgs.add(arg);
}
argsOut = filteredArgs.toArray(new String[filteredArgs.size()]);
return argsOut;
}
public static Map<Integer, LoadBalancerIdAndName> getLbIdMap(HuApp huApp) {
Map<Integer, LoadBalancerIdAndName> map = new HashMap<Integer, LoadBalancerIdAndName>();
for (LoadBalancerIdAndName lb : getAllLoadbalancerIdsAndNames(huApp)) {
int lbId = lb.getLoadbalancerId();
map.put(lbId, lb);
}
return map;
}
public static List<LoadBalancerIdAndName> getAllLoadbalancerIdsAndNames(HuApp huApp) {
List<LoadBalancerIdAndName> lbs = new ArrayList<LoadBalancerIdAndName>();
String queryString = "select l.id,l.accountId,l.name from LoadBalancer l";
huApp.begin();
List rows = huApp.getList(queryString);
huApp.commit();
for (Object uncastedRowArrayObj : rows) {
// Each element of rows is actually an Object[] whith each element representing a column
Object[] row = (Object[]) uncastedRowArrayObj;
LoadBalancerIdAndName lb = new LoadBalancerIdAndName();
lb.setLoadbalancerId((Integer) row[0]);
lb.setAccountId((Integer) row[1]);
lb.setName((String) row[2]);
lbs.add(lb);
}
return lbs;
}
public static Map<Integer, LoadBalancerIdAndName> filterLbIdMap(Map<Integer, LoadBalancerIdAndName> mapIn, Integer aid, Integer lid) {
Map<Integer, LoadBalancerIdAndName> mapOut = new HashMap<Integer, LoadBalancerIdAndName>();
for (Entry<Integer, LoadBalancerIdAndName> entry : mapIn.entrySet()) {
Integer key = entry.getKey();
LoadBalancerIdAndName val = entry.getValue();
int vLid = val.getLoadbalancerId();
int vAid = val.getAccountId();
if (lid != null && vLid != lid) {
continue; // Skip this entry as it didn't math the Lid
}
if (aid != null && vAid != aid) {
continue; // Skip this entry as the it didn't match the Aid
}
mapOut.put(key, val);
}
return mapOut;
}
}