package com.telefonica.claudia.driver_mon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceException;
import javax.persistence.spi.PersistenceProvider;
import org.restlet.data.Form;
import org.restlet.data.Reference;
import com.telefonica.claudia.smi.monitoring.bean.MeasureDescriptor;
import com.telefonica.claudia.smi.monitoring.bean.MeasureDescriptorList;
import com.telefonica.claudia.smi.monitoring.bean.MeasuredValue;
import com.telefonica.claudia.smi.monitoring.bean.MeasuredValueFilter;
import com.telefonica.claudia.smi.monitoring.bean.MeasuredValueList;
import com.telefonica.claudia.smi.util.Bean2Xml;
import com.telefonica.claudia.smi.util.Util;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest {
public static void main(String args[]) throws Exception, Exception,
Exception {
/*
* Properties prop = new Properties(); try { prop.load(new
* FileInputStream("./conf/tcloud.properties")); } catch
* (FileNotFoundException e1) { // TODO Auto-generated catch block
* e1.printStackTrace(); } catch (IOException e1) { // TODO
* Auto-generated catch block e1.printStackTrace(); }
*/
/* Set<PersistenceProvider> providers =findAllProviders();
Map <String, Object> configuration = new HashMap<String, Object>();
configuration.put("hibernate.connection.url", "jdbc:mysql://maquetacollectd.hi.inet:3306/monitoring");
configuration.put("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
configuration.put("hibernate.connection.username", "claudia");
configuration.put("hibernate.connection.password", "ClaudiaPass");
configuration.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
configuration.put("hibernate.c3p0.min_size", "5");
configuration.put("hibernate.c3p0.max_size", "50");
configuration.put("hibernate.c3p0.timeout", "5000");
configuration.put("hibernate.c3p0.max_statements", "100");
EntityManagerFactory emf = null;
if (providers.size() == 0) {
findAllProviders();
}
for (PersistenceProvider provider : providers) {
emf = provider.createEntityManagerFactory("ClaudiaPU", configuration);
if (emf != null){
break;
}
}
if (emf == null) {
throw new PersistenceException("No Persistence provider for EntityManager named " + "ClaudiaPU");
}*/
/* for (String s : names) {
try{
providers.add((PersistenceProvider)loader.loadClass(s).newInstance());
} catch (ClassNotFoundException exc){
} catch (InstantiationException exc){
} catch (IllegalAccessException exc){
}*/
/* Properties prop = null;
SMMonitoringNoJMSDriver fd = new SMMonitoringNoJMSDriver(prop);
try {
//getVdcMeasureDescriptorList(orgId, vdcId,);
//System.out.println(fd.getVdcMeasureDescriptorList("tid", "4caast"));
//getVappMeasureDescriptorList(orgId, vdcId, vappIds);
//comprobar vappId en vez de Ids
//System.out.println(fd.getVappMeasureDescriptorList("tid", "4caast", "demo"));
ArrayList<String> vappNames = new ArrayList();
vappNames.add("monitoring");
vappNames.add("collector");
vappNames.add("1");
MeasureDescriptorList list = fd.getVappMeasureDescriptorList("tid", "tid", vappNames);
System.out.println (list.getXML());
for (MeasureDescriptor md: list.getMeasureDescriptors())
{
System.out.println ("------------------");
System.out.println (md.getHref());
System.out.println (md.getName());
System.out.println (md.getValueType());
System.out.println (md.getMeasurementTypeId());
}
// System.out.println (Bean2Xml.toString(list));
MeasuredValueFilter valueFilter= new MeasuredValueFilter();
/* Reference urlReplica = new Reference("http://109.231.84.52:8182/api/org/es_tid/vdc/cc1/vapp/edu/vm/1/monitor/sedMemory/values");
String s = "cpu";
if (Util.isNumber(s)) {
valueFilter.setSamples(Integer.parseInt(s));
} else {
valueFilter.setSamples(0);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'");
try {
String from = "2011-08-24T11:36:00Z";
if (from != null) {
valueFilter.setFrom(formatter.parse(from));
}
} catch (ParseException pe) {
System.out.println("wrong param : 'from' format is wrong");
}
try {
String to = "2011-08-24T11:40:00Z";
if (to != null) {
valueFilter.setTo(formatter.parse(to));
}
} catch (ParseException pe) {
System.out.println("wrong param : 'to' format is wrong");
}
String interval = "300s";
if (interval != null) {
long secondsInterval = Util.convertTimeInterval(interval);
if (secondsInterval > 0) {
valueFilter.setInterval(secondsInterval);
}
}
}*/
/* MeasureDescriptor henar = list.getMeasureDescriptors().get(0);
List<MeasureDescriptor> array = new ArrayList<MeasureDescriptor>();
array.add(henar);
List<MeasuredValueList> dd = fd.getMeasuredValueList(array, valueFilter);
System.out.println (dd.get(0).getXML());
for (MeasuredValueList d: dd)
{
// System.out.println (Bean2Xml.toString(d));
System.out.println (d.getHref());
for (MeasuredValue ddd: d.getMeasuredValues())
{
System.out.println ("------------------");
System.out.println (ddd.getUnit());
System.out.println (ddd.getValue());
}
}
MeasuredValueList value = dd.get(0);
List<MeasuredValueList> heanr2= new ArrayList<MeasuredValueList>();
heanr2.add(value);
//System.out.println (Bean2Xml.toString(dd));
// MeasureDescriptor md = fd.getHwItemMeasureDescriptor("tid", "tid", vappNames, "cpu", "cpuNice");
// list = fd.getHwItemMeasureDescriptorList("tid", "tid", vappNames, "cpu");
/* for (MeasureDescriptor md: list.getMeasureDescriptors())
{
System.out.println ("------------------");
System.out.println (md.getHref());
System.out.println (md.getName());
System.out.println (md.getValueType());
}*/
//System.out.println(fd.getHwItemMeasureDescriptorList("tid", "4caast", "demo","monitorized"));
//getVappMeasureDescriptorList(orgId, vdcId, vappIds);
//comprobar vappIds
//System.out.println(fd.getVappMeasureDescriptorList("tid", "4caast", ["demo","monitorized"]));
//getHwItemMeasureDescriptorList(orgId, vdcId,vappIds, hwItemId);
//System.out.println(fd.getHwItemMeasureDescriptorList("tid", "4caast", ["demo","monitorized"]));
//
//
//getNetMeasureDescriptorList(orgId, vdcId, netId);
//System.out.println(fd.getNetMeasureDescriptorList("tid", "4caast", ));
//getVdcMeasureDescriptor(orgId, vdcId,measureId);
//System.out.println(fd.getVdcMeasureDescriptor("tid", "4caast", ));
//getMeasuredValueList(md, valueFilter);
//System.out.println(fd.getMeasuredValueList(, ));*/
/* } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Create the test case
*
* @param testName
* name of the test case
*/
/**
* @return the suite of tests being tested
*/
/* public static Test suite() {
return new TestSuite(AppTest.class);
}
/**
* Rigourous Test :-)
*/
/* private static Set<PersistenceProvider> findAllProviders() {
Set<PersistenceProvider> providers = new HashSet<PersistenceProvider>();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Enumeration<URL> resources = null;
try {
resources = loader.getResources("META-INF/services/" + PersistenceProvider.class.getName());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Set<String> names = new HashSet<String>();
while (resources.hasMoreElements()) {
URL url = resources.nextElement();
System.out.println (url.toString());
InputStream is = null;
try {
is = url.openStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
names.addAll(AppTest.providerNamesFromReader(new BufferedReader(new InputStreamReader(is))));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
for (String s : names) {
try{
providers.add((PersistenceProvider)loader.loadClass(s).newInstance());
} catch (ClassNotFoundException exc){
} catch (InstantiationException exc){
} catch (IllegalAccessException exc){
}
}
return providers;
}
private static Set<String> providerNamesFromReader(BufferedReader reader) throws IOException {
Set<String> names = new HashSet<String>();
Pattern nonCommentPattern = Pattern.compile("^([^#]+)");
String line;
while ((line = reader.readLine()) != null) {
line = line.trim();
Matcher m = nonCommentPattern.matcher(line);
if (m.find()) {
names.add(m.group().trim());
}
}
return names;
}*/
}
}