/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package models.datatable;
import util.datatable.DataTable;
import com.emc.vipr.model.sys.healthmonitor.ProcModels.ProcessStatus;
import com.emc.vipr.model.sys.healthmonitor.ServiceHealth;
import com.emc.vipr.model.sys.healthmonitor.ServiceStats;
public class NodeServicesDataTable extends DataTable {
public NodeServicesDataTable() {
addColumn("nodeId").hidden();
addColumn("name");
addColumn("status").setRenderFunction("render.status");
addColumn("threads");
addColumn("uptime").setRenderFunction("renderServiceUptime");
addColumn("memory").setRenderFunction("render.bytes");
addColumn("files");
addColumn("pid");
addColumn("actions").setRenderFunction("renderServiceActions");
sortAllExcept("actions", "pid", "files");
}
public static class Services {
String nodeId;
String name;
String status;
Long threads;
Long uptime;
Long memory;
int files;
Integer pid;
public Services(String nodeId, ServiceHealth serviceHealth, ServiceStats serviceStats) {
this.nodeId = nodeId;
this.name = serviceHealth.getServiceName();
this.status = serviceHealth.getStatus();
this.files = serviceStats.getFileDescriptors();
ProcessStatus processStatus = serviceStats.getProcessStatus();
if (processStatus != null) {
this.threads = processStatus.getNumberOfThreads();
this.uptime = processStatus.getUpTime();
this.memory = processStatus.getVirtualMemSizeInBytes();
this.pid = processStatus.getPid();
}
}
}
}