estado sist osx interface

parent 25f42121
......@@ -432,7 +432,7 @@ public class ArchivosEJB {
invitadoEJB.getMoodleUserId(matefunToken);
List<String> archivosEliminados = em.createQuery("select p.id.moodlefilepath from ParametroArchivo p where p.id.idcentroeducativo=:idcentroeducativo and p.id.moodleuserid=:moodleuserid and p.nombreparametro=:nombreparametro", String.class)
.setParameter("idcentroeducativo", invitadoEJB.getidcentroeducativo(matefunToken))
.setParameter("idcentroeducativo", invitadoEJB.getIdCentroEducativo(matefunToken))
.setParameter("moodleuserid", invitadoEJB.getMoodleUserId(matefunToken))
.setParameter("nombreparametro", "eliminado")
.getResultList();
......
......@@ -75,7 +75,7 @@ public class GroupRunnable implements Runnable{
JsonObject grp = grupos.getJsonObject(g);
if (!data.containsKey(grp.getInt("id")))
data.put(grp.getInt("id"), new GrupoDTO(2020, -1, grp.getString("name"), grp.getInt("id"), invitadoEJB.getidcentroeducativo(matefunToken), Collections.synchronizedList(new ArrayList<ArchivoDTO>()), new ArrayList<AlumnoDTO>(), new ArrayList<UsuarioDTO>(), this.courseId, nombreCurso));
data.put(grp.getInt("id"), new GrupoDTO(2020, -1, grp.getString("name"), grp.getInt("id"), invitadoEJB.getIdCentroEducativo(matefunToken), Collections.synchronizedList(new ArrayList<ArchivoDTO>()), new ArrayList<AlumnoDTO>(), new ArrayList<UsuarioDTO>(), this.courseId, nombreCurso));
data.get(grp.getInt("id")).getAlumnos().add(new AlumnoDTO(user, new ArrayList<ArchivoDTO>(), new ArrayList<ArchivoDTO>()));
}
}
......
......@@ -55,7 +55,7 @@ public class GruposEJB {
JsonArray grupos = response.getJsonArray("result");
for (int i = 0; i < grupos.size(); ++i) {
JsonObject grupo = grupos.getJsonObject(i);
gruposRet.add(new GrupoDTO(-1, -1, grupo.getString("name"), grupo.getInt("id"), invitadoEJB.getidcentroeducativo(matefunToken), null, new ArrayList<AlumnoDTO>(), new ArrayList<UsuarioDTO>() , new Long(grupo.getInt("courseid")), courseName));
gruposRet.add(new GrupoDTO(-1, -1, grupo.getString("name"), grupo.getInt("id"), invitadoEJB.getIdCentroEducativo(matefunToken), null, new ArrayList<AlumnoDTO>(), new ArrayList<UsuarioDTO>() , new Long(grupo.getInt("courseid")), courseName));
}
return gruposRet;
}
......
......@@ -88,7 +88,7 @@ public class InvitadoEJB {
sesiones.get(token).setidcentroeducativo(idcentroeducativo);
}
public Long getidcentroeducativo(String token) {
public Long getIdCentroEducativo(String token) {
return sesiones.get(token).getIdcentroeducativo();
}
......
package edu.proygrado.ejb.estadoServidor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.math.BigDecimal;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
......@@ -33,62 +30,30 @@ public class EstadoServidorLinux implements IEstadoServidor{
this.userTransaction = userTransaction;
}
private List<String> executeShellCommandSync(String command) throws IOException, InterruptedException {
List<String> salida = new ArrayList<String>();
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash", "-c", command);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
salida.add(line);
}
process.waitFor();
return salida;
}
private List<String> extractTopProcesses(List<String> topResult, String pid) {
List<String> result = new ArrayList<String>();
for (int index = 0; index < topResult.size(); index++) {
if (topResult.get(index).contains("PID") || topResult.get(index).startsWith(pid)) {
//System.out.println("extractTopProcesses:"+topResult.get(index) + " ADD");
result.add(topResult.get(index));
}else {
//System.out.println("extractTopProcesses:"+topResult.get(index));
}
}
return result;
}
JsonObject extractFieldsFromProcess(List<String> topColumnNameAndProcess){
JsonObjectBuilder builder = Json.createObjectBuilder();
String cpu = "%CPU";
String mem = "%MEM";
//System.out.println("*cpu:"+cpu);
//System.out.println("*mem:"+mem);
int remaining = 2;
String[] splittedHeader = Utils.reverse(topColumnNameAndProcess.get(0).split("\\s+"));
String[] splittedProcess = Utils.reverse(topColumnNameAndProcess.get(1).split("\\s+"));
//System.out.println("*extractFieldsFromProcess:splittedHeader:[" + String.join(",", splittedHeader)+"]");
//System.out.println("*extractFieldsFromProcess:splittedProcess:[" + String.join(",", splittedProcess)+"]");
Integer maxLength = Math.min(splittedHeader.length, splittedProcess.length);
for (int index = 0; index < maxLength; index++) {
//System.out.println("INDEX:"+index+",HEADER:"+splittedHeader[index]+",VALUE:"+splittedProcess[index]);
if (splittedHeader[index].equals(mem)) {
//System.out.println("index:"+index+" es " + mem + ", guarda memproceso="+splittedProcess[index]);
builder = builder.add("memproceso", splittedProcess[index]);
remaining--;
}else if (splittedHeader[index].equals(cpu)) {
//System.out.println("index:"+index+" es " + cpu + ", guarda cpuproceso="+splittedProcess[index]);
builder = builder.add("cpuproceso", splittedProcess[index]);
remaining--;
}
......@@ -98,28 +63,13 @@ public class EstadoServidorLinux implements IEstadoServidor{
return builder.build();
}
private String extractHostname(List<String> commandResult) {
String dirtyHostname = commandResult.stream().filter(s -> s.contains("hostname")).findFirst().orElse(null).split(":")[1];
//System.out.print("extractHostname:dirtyHostname: " + dirtyHostname);
return dirtyHostname.substring(dirtyHostname.indexOf("\"")+1, dirtyHostname.lastIndexOf("\""));
}
private String getIP() throws IOException {
return (new BufferedReader(new InputStreamReader((new URL("http://checkip.amazonaws.com")).openStream()))).readLine();
}
@Override
public JsonObject getEstadoServidor(Boolean all) throws IOException, InterruptedException, InstanceNotFoundException, AttributeNotFoundException, MalformedObjectNameException, ReflectionException, MBeanException, ExecutionException {
String listenPort = ManagementFactory.getPlatformMBeanServer().getAttribute(new ObjectName("jboss.as:socket-binding-group=standard-sockets,socket-binding=http"), "port").toString();
List<String> lsof = executeShellCommandSync("lsof -i :"+listenPort+" | grep LISTEN");
List<String> lsof = IEstadoServidor.executeShellCommandSync("lsof -i :"+listenPort+" | grep LISTEN");
String pid = lsof.get(0).split("\\s+")[1];
List<String> top = executeShellCommandSync("top -n 1 -b | grep '^"+pid+"\\|load average\\|Mem \\:\\|\\%Cpu\\|PID USER'");
List<String> curl = executeShellCommandSync("curl -v https://ipinfo.io");
List<String> top = IEstadoServidor.executeShellCommandSync("top -n 1 -b | grep '^"+pid+"\\|load average\\|Mem \\:\\|\\%Cpu\\|PID USER'");
List<String> curl = IEstadoServidor.executeShellCommandSync("curl -v https://ipinfo.io");
String loadavg = "";
String globalcpuusage = "";
String globalphysmem = "";
......@@ -127,15 +77,12 @@ public class EstadoServidorLinux implements IEstadoServidor{
int i = 3;
for (String l : top) {
if (l.contains("load average:")) {
//System.out.println("linestart:" + l);
loadavg = l.split("load average:")[1];
i--;
}else if (l.startsWith("%Cpu(s)")) {
//System.out.println("linestart:" + l);
globalcpuusage = l.substring(l.indexOf("%Cpu(s)")+9);
i--;
}else if (l.contains("Mem :")) {
//System.out.println("linestart:" + l);
globalphysmem = l.split("Mem : ")[1];
i--;
}
......@@ -149,11 +96,8 @@ public class EstadoServidorLinux implements IEstadoServidor{
try {
userTransaction.begin();
dburl = em.unwrap(java.sql.Connection.class).getMetaData().getURL();
//System.out.println("dburl:" + dburl);
schema = dburl.split("/")[3];
//System.out.println("schema:" + schema);
dbSize = ((BigDecimal)em.createNativeQuery("SELECT sum(DATA_LENGTH + INDEX_LENGTH) FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? GROUP BY TABLE_SCHEMA").setParameter(1, schema).getResultList().get(0)).toString() + " Bytes";
//System.out.println("dbSize:" + dbSize);
} catch (Exception e) {
} finally {
try {
......@@ -162,11 +106,10 @@ public class EstadoServidorLinux implements IEstadoServidor{
}
JsonObject cpumem = extractFieldsFromProcess(extractTopProcesses(top, pid));
//System.out.println("main:cpumem:" + cpumem.toString());
return Json.createObjectBuilder()
.add("backend", Json.createObjectBuilder()
.add("nombre", extractHostname(curl))
.add("ip", getIP())
.add("nombre", IEstadoServidor.extractHostname(curl))
.add("ip", IEstadoServidor.getIP())
.add("carga", loadavg)
.add("pid", pid)
.add("cpuproceso", cpumem.getString("cpuproceso"))
......
package edu.proygrado.ejb.estadoServidor;
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.persistence.EntityManager;
import javax.transaction.UserTransaction;
......@@ -22,9 +31,105 @@ public class EstadoServidorOSX implements IEstadoServidor {
this.userTransaction = userTransaction;
}
private List<String> extractTopProcesses(List<String> topResult, String pid) {
List<String> result = new ArrayList<String>();
for (int index = 0; index < topResult.size(); index++) {
if (topResult.get(index).startsWith("PID") || topResult.get(index).startsWith(pid)) {
result.add(topResult.get(index));
}
}
return result;
}
private JsonObject extractFieldsFromProcess(List<String> topColumnNameAndProcess){
JsonObjectBuilder builder = Json.createObjectBuilder();
int remaining = 2;
String[] splittedHeader = topColumnNameAndProcess.get(0).split("\\s+");
String[] splittedProcess = topColumnNameAndProcess.get(1).split("\\s+");
for (int index = splittedHeader.length-1; index>=0; index--) {
if (splittedHeader[index].equals("MEM")) {
builder = builder.add("memproceso", splittedProcess[index]);
remaining--;
}else if (splittedHeader[index].equals("%CPU")){
builder = builder.add("cpuproceso", splittedProcess[index]);
remaining--;
}
if (remaining==0)
break;
}
return builder.build();
}
@Override
public JsonObject getEstadoServidor(Boolean all) throws IOException, InterruptedException, InstanceNotFoundException, AttributeNotFoundException, MalformedObjectNameException, ReflectionException, MBeanException, ExecutionException {
return null;
ExecutorService executor = Executors.newFixedThreadPool(3);
Future<List<String>> top = executor.submit(() -> IEstadoServidor.executeShellCommandSync("top -l 1"));
String listenPort = ManagementFactory.getPlatformMBeanServer().getAttribute(new ObjectName("jboss.as:socket-binding-group=standard-sockets,socket-binding=http"), "port").toString();
Future<List<String>> lsof = executor.submit(() -> IEstadoServidor.executeShellCommandSync("lsof -i :"+listenPort+" | grep LISTEN"));
Future<List<String>> curl = null;
if (all) {
curl = executor.submit(() -> IEstadoServidor.executeShellCommandSync("curl -v https://ipinfo.io"));
}
String loadavg = "";
String globalcpuusage = "";
String globalphysmem = "";
int i = 3;
for (String l : top.get()) {
if (l.startsWith("Load Avg")) {
loadavg = l.split("Load Avg: ")[1];
i--;
}else if (l.startsWith("CPU usage")) {
globalcpuusage = l.split("CPU usage: ")[1];
i--;
}else if (l.startsWith("PhysMem")) {
globalphysmem = l.split("PhysMem: ")[1];
i--;
}
if (i==0)
break;
}
String dburl = "";
String schema = "";
String dbSize = "";
try {
userTransaction.begin();
dburl = em.unwrap(java.sql.Connection.class).getMetaData().getURL();
schema = dburl.split("/")[3];
dbSize = ((BigDecimal)em.createNativeQuery("SELECT sum(DATA_LENGTH + INDEX_LENGTH) FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? GROUP BY TABLE_SCHEMA").setParameter(1, schema).getResultList().get(0)).toString();
} catch (Exception e) {
dbSize = "";
} finally {
try {
userTransaction.commit();
} catch (Exception e2) { }
}
String pid = lsof.get().get(0).split("\\s+")[1];
JsonObject cpumem = extractFieldsFromProcess(extractTopProcesses(top.get(), pid));
return Json.createObjectBuilder()
.add("backend", Json.createObjectBuilder()
.add("nombre", all ? IEstadoServidor.extractHostname(curl.get()) : "")
.add("ip", all ? IEstadoServidor.getIP() : "")
.add("carga", loadavg)
.add("pid", pid)
.add("cpuproceso", cpumem.getString("cpuproceso"))
.add("memproceso", cpumem.getString("memproceso"))
.add("cpu", globalcpuusage)
.add("mem", globalphysmem)
.add("puerto", listenPort))
.add("bd", Json.createObjectBuilder()
.add("nombre", all ? dburl.split("/")[2].split(":")[0] : "")
.add("ip", "211.221.111.222")
.add("puerto", all ? dburl.split("/")[2].split(":")[1] : "")
.add("motor", all ? dburl.split(":")[1] : "")
.add("tam", dbSize + " Bytes")
.add("schema", all ? schema : "")).build();
}
}
package edu.proygrado.ejb.estadoServidor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import javax.json.JsonObject;
......@@ -12,4 +17,28 @@ import javax.management.ReflectionException;
public interface IEstadoServidor {
public JsonObject getEstadoServidor(Boolean all) throws IOException, InterruptedException, InstanceNotFoundException, AttributeNotFoundException, MalformedObjectNameException, ReflectionException, MBeanException, ExecutionException;
public static String extractHostname(List<String> commandResult) {
String dirtyHostname = commandResult.stream().filter(s -> s.contains("hostname")).findFirst().orElse(null).split(":")[1];
return dirtyHostname.substring(dirtyHostname.indexOf("\"")+1, dirtyHostname.lastIndexOf("\""));
}
public static String getIP() throws IOException {
return (new BufferedReader(new InputStreamReader((new URL("http://checkip.amazonaws.com")).openStream()))).readLine();
}
public static List<String> executeShellCommandSync(String command) throws IOException, InterruptedException {
List<String> salida = new ArrayList<String>();
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash", "-c", command);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
salida.add(line);
}
process.waitFor();
return salida;
}
}
......@@ -76,8 +76,8 @@ public class ArchivosRS{
tipo = TipoArchivo.COMPARTIDO;
else
tipo = TipoArchivo.PRIVADO;
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getidcentroeducativo(matefunToken), null, invitadoEJB.getMoodleUserId(matefunToken), tipo, moodleFilePath, new Long(ret.length()));
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /archivo/contenido", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getIdCentroEducativo(matefunToken), null, invitadoEJB.getMoodleUserId(matefunToken), tipo, moodleFilePath, new Long(ret.length()));
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /archivo/contenido", (new Date()).getTime()-startTime);
return ret;
}
......@@ -96,7 +96,7 @@ public class ArchivosRS{
ret = archivosEJB.getAllFilesSharedToMe(Utils.getToken(httpServletRequest), invitadoEJB, filepath);
}
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /archivo/contenido/directorio", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /archivo/contenido/directorio", (new Date()).getTime()-startTime);
return ret;
}
......@@ -111,10 +111,10 @@ public class ArchivosRS{
for (Map.Entry<Long, List<ArchivoDTO>> entry : filesMap.entrySet()) {
for (ArchivoDTO file : entry.getValue()) {
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getidcentroeducativo(matefunToken), entry.getKey(), invitadoEJB.getMoodleUserId(matefunToken), TipoArchivo.CURSO, file.getMoodleFilePath(), new Long(file.getContenido().length()));
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getIdCentroEducativo(matefunToken), entry.getKey(), invitadoEJB.getMoodleUserId(matefunToken), TipoArchivo.CURSO, file.getMoodleFilePath(), new Long(file.getContenido().length()));
}
}
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /archivo/cursos", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /archivo/cursos", (new Date()).getTime()-startTime);
return filesMap.values().stream().flatMap(List::stream).collect(Collectors.toList());
}
......@@ -134,7 +134,7 @@ public class ArchivosRS{
Map<Long, List<ArchivoDTO>> filesMap = archivosEJB.getAllMoodleCourseFiles(matefunToken, invitadoEJB, tiempoAccesoEJB);
for (Map.Entry<Long, List<ArchivoDTO>> entry : filesMap.entrySet()) {
for (ArchivoDTO file : entry.getValue()) {
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getidcentroeducativo(matefunToken), entry.getKey(), invitadoEJB.getMoodleUserId(matefunToken), TipoArchivo.CURSO, file.getMoodleFilePath(), new Long(file.getContenido().length()));
estadoSistemaEJB.saveArchivoAccedido(invitadoEJB.getIdCentroEducativo(matefunToken), entry.getKey(), invitadoEJB.getMoodleUserId(matefunToken), TipoArchivo.CURSO, file.getMoodleFilePath(), new Long(file.getContenido().length()));
}
}
ret = filesMap.values().stream().flatMap(List::stream).collect(Collectors.toList());
......@@ -148,7 +148,7 @@ public class ArchivosRS{
}
}
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /archivo/", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /archivo/", (new Date()).getTime()-startTime);
return ret;
}
......@@ -162,7 +162,7 @@ public class ArchivosRS{
Long startTime = (new Date()).getTime();
ArchivoDTO ret = archivosEJB.crearArchivoPrivadoMoodle(archivoDTO, Utils.getToken(httpServletRequest), invitadoEJB, archivoDTO.getDirectorioMatefun(), false, false);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /archivo/", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /archivo/", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -176,7 +176,7 @@ public class ArchivosRS{
Long startTime = (new Date()).getTime();
String token = Utils.getToken(httpServletRequest);
List<ArchivoDTO> ret = archivosEJB.compartirArchivo(token, invitadoEJB, estadoSistemaEJB, dataShareFile);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /archivo/compartir/", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /archivo/compartir/", (new Date()).getTime()-startTime);
return new SimplePostResultDTO("Archivo compartido con exito.", true, ret);
}
......@@ -193,7 +193,7 @@ public class ArchivosRS{
String filepath = archivoDTO.getMoodleFilePath().substring(archivoDTO.getMoodleFilePath().indexOf("private") + "private".length(), archivoDTO.getMoodleFilePath().lastIndexOf("/")) + "/";
ArchivoDTO ret = archivosEJB.crearArchivoPrivadoMoodle(archivoDTO, Utils.getToken(httpServletRequest), invitadoEJB, filepath, false, true);
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "PUT /archivo/", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "PUT /archivo/", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -207,10 +207,10 @@ public class ArchivosRS{
Long startTime = (new Date()).getTime();
String matefunToken = Utils.getToken(httpServletRequest);
archivosEJB.eliminarArchivo( URLDecoder.decode(encodedMoodleFilePath, "UTF-8"),
invitadoEJB.getidcentroeducativo(matefunToken),
invitadoEJB.getIdCentroEducativo(matefunToken),
invitadoEJB.getMoodleUserId(matefunToken));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /archivo/:moodleFilePath", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /archivo/:moodleFilePath", (new Date()).getTime()-startTime);
}
}
}
......@@ -46,7 +46,7 @@ public class CursosRS{
Long startTime = (new Date()).getTime();
String token = Utils.getToken(httpServletRequest);
List<CoursesDTO> ret = coursesEJB.getAllCourses(token);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos", (new Date()).getTime()-startTime);
return ret;
}
......@@ -58,7 +58,7 @@ public class CursosRS{
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = coursesEJB.deleteCourse(cursoId, Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /cursos/:cursoId", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "DELETE /cursos/:cursoId", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("valores de entrada nulos en el servicio 'deleteCourse'");
......@@ -73,7 +73,7 @@ public class CursosRS{
Long startTime = (new Date()).getTime();
SimplePostResultDTO ret = coursesEJB.createNewCourse(input, Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /cursos/createNewCourse", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "POST /cursos/createNewCourse", (new Date()).getTime()-startTime);
return ret;
}
throw new MatefunException("valores de entrada nulos en el servicio 'createNewCourse'");
......@@ -86,7 +86,7 @@ public class CursosRS{
Long startTime = (new Date()).getTime();
List<CoursesDTO> ret = coursesEJB.getAllUserCourses(Utils.getToken(httpServletRequest));
String token = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos/user", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /cursos/user", (new Date()).getTime()-startTime);
return ret;
}
......
......@@ -6,9 +6,7 @@ import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
......@@ -65,7 +63,7 @@ public class EstadoSistemaRS {
Long startTime = (new Date()).getTime();
String matefunToken = Utils.getToken(httpServletRequest);
JsonObject ret = estadoSistemaEJB.getEstadoServidor(all!=null && all);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /estadosistema/servidor", (new Date()).getTime()-startTime);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /estadosistema/servidor", (new Date()).getTime()-startTime);
return ret;
}
......@@ -73,14 +71,16 @@ public class EstadoSistemaRS {
@Path("/tiempos")
@Produces(MediaType.APPLICATION_JSON)
public List<TiempoAccesoDTO> getTiempos(@QueryParam("fechaInicio") String fechaInicio, @QueryParam("fechaFin") String fechaFin, @QueryParam("idcentroeducativo") Long idcentroeducativo) throws Exception {
Long startTime = (new Date()).getTime();
if (fechaInicio!=null && fechaFin!=null && idcentroeducativo!=null) {
String[] splittedI = fechaInicio.split("-");
String[] splittedF = fechaFin.split("-");
GregorianCalendar inicio = new GregorianCalendar(Integer.parseInt(splittedI[0]),Integer.parseInt(splittedI[1])-1,Integer.parseInt(splittedI[2]));
GregorianCalendar fin = new GregorianCalendar(Integer.parseInt(splittedF[0]),Integer.parseInt(splittedF[1])-1,Integer.parseInt(splittedF[2]));
return estadoSistemaEJB.getTiempos(inicio, fin, idcentroeducativo);
List<TiempoAccesoDTO> ret = estadoSistemaEJB.getTiempos(inicio, fin, idcentroeducativo);
String matefunToken = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /estadosistema/tiempos", (new Date()).getTime()-startTime);
return ret;
}else {
throw new MatefunException("Error en los parametros de entrada para EstadoSistemaRS.getTiempos");
}
......@@ -90,16 +90,18 @@ public class EstadoSistemaRS {
@GET
@Produces(MediaType.APPLICATION_JSON)
public EstadoSistemaGeneralDTO getEstadoSistema(@QueryParam("fechaInicio") String fechaInicio, @QueryParam("fechaFin") String fechaFin, @QueryParam("idcentroeducativo") Long idcentroeducativo) throws Exception {
if (idcentroeducativo==null)
Long startTime = (new Date()).getTime();
if (idcentroeducativo==null) {
throw new MatefunException("idcentroeducativo no definido");
}
String[] splittedI = fechaInicio.split("-");
String[] splittedF = fechaFin.split("-");
GregorianCalendar inicio = new GregorianCalendar(Integer.parseInt(splittedI[0]),Integer.parseInt(splittedI[1])-1,Integer.parseInt(splittedI[2]));
GregorianCalendar fin = new GregorianCalendar(Integer.parseInt(splittedF[0]),Integer.parseInt(splittedF[1])-1,Integer.parseInt(splittedF[2]));
return estadoSistemaEJB.getEstadoSistema(loginEJB, invitadoEJB, coursesEJB, centroeducativoEJB, usuarioEJB, gruposEJB, inicio, fin, idcentroeducativo);
EstadoSistemaGeneralDTO ret = estadoSistemaEJB.getEstadoSistema(loginEJB, invitadoEJB, coursesEJB, centroeducativoEJB, usuarioEJB, gruposEJB, inicio, fin, idcentroeducativo);
String matefunToken = Utils.getToken(httpServletRequest);
tiempoAccesoEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "GET /estadosistema", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -61,7 +61,7 @@ public class EvaluacionesRS{
Long startTime = (new Date()).getTime();
List<Assignment> ret = evaluacionesEJB.getAllAssignments(Utils.getToken(httpServletRequest), invitadoEJB);
String token = Utils.getToken(httpServletRequest);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/assignments/all", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/assignments/all", (new Date()).getTime()-startTime);
return ret;
}
}
......@@ -79,7 +79,7 @@ public class EvaluacionesRS{
String matefunToken = Utils.getToken(httpServletRequest);
SimplePostResultDTO ret = evaluacionesEJB.entregarArchivoParaEvaluacion(matefunToken, invitadoEJB, archivosEJB, archivo, assignmentId);
estadoSistemaEJB.saveRegistroTarea(nombreTarea, new Long(assignmentId), invitadoEJB.getUsuario(matefunToken).getcentroeducativo(), cursoid, grupal ? TipoRegistroTarea.Grupal : TipoRegistroTarea.Individual, TipoAccionRegistroTarea.Entrega);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "POST /evaluaciones/entregaarchivo/:assignmentId", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "POST /evaluaciones/entregaarchivo/:assignmentId", (new Date()).getTime()-startTime);
return ret;
}
......@@ -104,7 +104,7 @@ public class EvaluacionesRS{
archivo.getEvaluacion().isEsGrupal() ? TipoRegistroTarea.Grupal : TipoRegistroTarea.Individual,
TipoAccionRegistroTarea.Correccion);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "POST /evaluaciones/corregir", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(matefunToken), invitadoEJB.getMoodleUserId(matefunToken), "matefun", "POST /evaluaciones/corregir", (new Date()).getTime()-startTime);
return ret;
}
......@@ -119,7 +119,7 @@ public class EvaluacionesRS{
Long startTime = (new Date()).getTime();
JsonObject ret = evaluacionesEJB.getSubmissionStatus(Utils.getToken(httpServletRequest), invitadoEJB, archivosEJB, assignid, userid, groupid);
String token = Utils.getToken(httpServletRequest);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/getSubmissionStatus", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/getSubmissionStatus", (new Date()).getTime()-startTime);
return ret;
}
......@@ -130,7 +130,7 @@ public class EvaluacionesRS{
Long startTime = (new Date()).getTime();
List<GrupoDTO> ret = this.evaluacionesEJB.getAssignmentsPorGrupos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso));
String token = Utils.getToken(httpServletRequest);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/grupal", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/grupal", (new Date()).getTime()-startTime);
return ret;
}
......@@ -142,7 +142,7 @@ public class EvaluacionesRS{
Map<String, List<AlumnoDTO>> alumnosPorCurso = new HashMap<String, List<AlumnoDTO>>();
alumnosPorCurso.put(curso, this.evaluacionesEJB.getAssignmentsPorAlumnos(invitadoEJB, Utils.getToken(httpServletRequest), Long.parseLong(curso)));
String token = Utils.getToken(httpServletRequest);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getidcentroeducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/individual", (new Date()).getTime()-startTime);
estadoSistemaEJB.saveAccessTime(invitadoEJB.getIdCentroEducativo(token), invitadoEJB.getMoodleUserId(token), "matefun", "GET /evaluaciones/individual", (new Date()).getTime()-startTime);
return alumnosPorCurso;
}