package com.telefonica.claudia.slm.paas;
import java.io.IOException;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.json.JSONException;
import com.telefonica.claudia.slm.common.SMConfiguration;
import com.telefonica.claudia.slm.deployment.ServiceApplication;
import com.telefonica.claudia.slm.deployment.VEE;
import com.telefonica.claudia.slm.deployment.VEEReplica;
import com.telefonica.claudia.slm.deployment.hwItems.NIC;
import com.telefonica.claudia.slm.paas.vmiHandler.MonitoringClient;
import com.telefonica.claudia.slm.paas.vmiHandler.MonitoringVMIHandler;
public class Monitoring {
private static Logger logger = Logger.getLogger("Monitoring");
public boolean setupMonitoring (ServiceApplication sap)
{
logger.info("Setuping monitoring ");
if (SMConfiguration.getInstance().isMonitoringEnabled()) {
try {
java.net.URLClassLoader classLoader = (java.net.URLClassLoader)ClassLoader.getSystemClassLoader();
Class mon = classLoader.loadClass(SMConfiguration.getInstance().getMonitoringClass());
MonitoringVMIHandler client = (MonitoringVMIHandler) mon.getConstructor(String.class).newInstance(SMConfiguration.getInstance().getMonitoringUrl());
//MonitoringVMIHandler client = (MonitoringVMIHandler)classDriver;
//MonitoringClient client = new MonitoringClient (SMConfiguration.getInstance().getMonitoringUrl());
// Monitoring the service
client.setUpMonitoring(sap.getFQN().toString(),getListIpsService(sap));
// Monitoring replicas
for (VEE vee: sap.getVEEs())
{
for (VEEReplica replica: vee.getVEEReplicas())
{
client.setUpMonitoring(sap.getFQN().toString(),getListIpsService(sap));
}
}
return true;
} catch (Throwable e) {
e.printStackTrace();
logger.error("Unknow error connecting to monitoring systems: "
+ e.getMessage(), e);
return false;
}
}
return false;
/* if (SMConfiguration.getInstance().isWasupActive()) {
try {
wasupClient.createWasupHierarchy(getServiceApplication());
} catch (IOException e) {
logger
.error("Error creating the WASUP monitorization hierarchy: "
+ e.getMessage());
} catch (JSONException e) {
logger.error("Error parsing the response of a WASUP request: "
+ e.getMessage());
} catch (Throwable e) {
logger.error("Unknow error connecting to WASUP: "
+ e.getMessage(), e);
}
}*/
}
public boolean deletingMonitoring (ServiceApplication sap)
{
logger.info("Deleting monitoring ");
if (SMConfiguration.getInstance().isMonitoringEnabled()) {
try {
java.net.URLClassLoader classLoader = (java.net.URLClassLoader)ClassLoader.getSystemClassLoader();
Class mon = classLoader.loadClass(SMConfiguration.getInstance().getMonitoringClass());
MonitoringVMIHandler client = (MonitoringVMIHandler) mon.getConstructor(String.class).newInstance(SMConfiguration.getInstance().getMonitoringUrl());
//MonitoringVMIHandler client = (MonitoringVMIHandler)classDriver;
//MonitoringClient client = new MonitoringClient (SMConfiguration.getInstance().getMonitoringUrl());
client.deleteSetupMonitoring(sap.getFQN().toString());
return true;
} catch (Throwable e) {
e.printStackTrace();
logger.error("Unknow error connecting to monitoring systems: "
+ e.getMessage(), e);
return false;
}
}
return false;
/* if (SMConfiguration.getInstance().isWasupActive()) {
try {
wasupClient.createWasupHierarchy(getServiceApplication());
} catch (IOException e) {
logger
.error("Error creating the WASUP monitorization hierarchy: "
+ e.getMessage());
} catch (JSONException e) {
logger.error("Error parsing the response of a WASUP request: "
+ e.getMessage());
} catch (Throwable e) {
logger.error("Unknow error connecting to WASUP: "
+ e.getMessage(), e);
}
}*/
}
private String getListIpsService (ServiceApplication sap)
{
String listips = "";
for (VEE vee: sap.getVEEs())
{
for (VEEReplica replica: vee.getVEEReplicas() )
{
for (NIC nic: replica.getNICs())
{
if (nic.getNICConf().getNetwork().getPrivateNet())
continue;
listips = listips + nic.getIPAddresses().get(0)+" ";
}
}
}
return listips;
}
}