summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-28 18:21:15 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-28 18:21:15 +0530
commit43410facca19479bfc560c93aa7274cdb1b2b2e6 (patch)
tree152e7c61074fae96da5dc1195dc43cc479f4c638
parent059b1ae9ccdd3d69f3dab5213fe81fb62a6c1b5f (diff)
parent7287ce7a7500629cede5446b30b2d4b9c8ff930e (diff)
Merge branch 'master' of git@github.com:gluster/console
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java99
-rwxr-xr-xsrc/com.gluster.storage.management.server.scripts/src/NetworkUtils.py42
2 files changed, 86 insertions, 55 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java
index 19ecc440..4b476e9f 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServerSummaryView.java
@@ -33,10 +33,7 @@ import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
@@ -56,9 +53,8 @@ import com.gluster.storage.management.client.GlusterServersClient;
import com.gluster.storage.management.core.model.ClusterListener;
import com.gluster.storage.management.core.model.DefaultClusterListener;
import com.gluster.storage.management.core.model.Event;
-import com.gluster.storage.management.core.model.GlusterServer;
-import com.gluster.storage.management.core.model.NetworkInterface;
import com.gluster.storage.management.core.model.Event.EVENT_TYPE;
+import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Server.SERVER_STATUS;
import com.gluster.storage.management.core.model.ServerStats;
import com.gluster.storage.management.core.model.ServerStatsRow;
@@ -100,6 +96,11 @@ public class GlusterServerSummaryView extends ViewPart {
private Composite networkUsageSection;
private Composite memoryUsageSection;
private static final ChartUtil chartUtil = ChartUtil.getInstance();
+ private Composite serverSummarySection;
+ private Label numCpus;
+ private ProgressBar memoryUsageBar;
+ private ProgressBar diskUsageBar;
+ private CLabel lblServerStatus;
@Override
public void createPartControl(Composite parent) {
@@ -184,6 +185,8 @@ public class GlusterServerSummaryView extends ViewPart {
private void updateServerDetails() {
// TODO: Update the server details (cpu usage, memory usage)
+ populateServerSummarySection(server);
+
}
@Override
@@ -332,38 +335,19 @@ public class GlusterServerSummaryView extends ViewPart {
}
private void createServerSummarySection(GlusterServer server, FormToolkit toolkit, final ScrolledForm form) {
- Composite section = guiHelper.createSection(form, toolkit, "Summary", null, 2, false);
-
+ serverSummarySection = guiHelper.createSection(form, toolkit, "Summary", null, 2, false);
// toolkit.createLabel(section, "Preferred Network: ", SWT.NONE);
// toolkit.createLabel(section, server.getPreferredNetworkInterface().getName(), SWT.NONE);
+
+ if (server.isOnline()) {
+ toolkit.createLabel(serverSummarySection, "Number of CPUs: ", SWT.NONE);
+ numCpus = toolkit.createLabel(serverSummarySection, "" + server.getNumOfCPUs(), SWT.NONE);
- boolean online = server.getStatus() == SERVER_STATUS.ONLINE;
-
- if (online) {
- toolkit.createLabel(section, "Number of CPUs: ", SWT.NONE);
- toolkit.createLabel(section, "" + server.getNumOfCPUs(), SWT.NONE);
-
- // toolkit.createLabel(section, "CPU Usage (%): ", SWT.NONE);
- // toolkit.createLabel(section, online ? "" + server.getCpuUsage() : "NA", SWT.NONE);
-
- toolkit.createLabel(section, "% CPU Usage (avg): ", SWT.NONE);
- cpuGauge = new CoolGauge(section, guiHelper.getImage(IImageKeys.GAUGE_SMALL));
- cpuGauge.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
- cpuGauge.setGaugeNeedleColour(Display.getDefault().getSystemColor(SWT.COLOR_RED));
- cpuGauge.setGaugeNeedleWidth(2);
- cpuGauge.setGaugeNeedlePivot(new Point(66, 65));
-
- cpuGauge.setPoints(getPnts());
- cpuGauge.setLevel(server.getCpuUsage() / 100);
- cpuGauge.setToolTipText(server.getCpuUsage() + "%");
+ toolkit.createLabel(serverSummarySection, "% CPU Usage (avg): ", SWT.NONE);
+ cpuGauge = new CoolGauge(serverSummarySection, guiHelper.getImage(IImageKeys.GAUGE_SMALL));
- toolkit.createLabel(section, "Memory Usage: ", SWT.NONE);
- ProgressBar memoryUsageBar = new ProgressBar(section, SWT.SMOOTH);
- memoryUsageBar.setMinimum(0);
- memoryUsageBar.setMaximum((int) Math.round(server.getTotalMemory()));
- memoryUsageBar.setSelection((int) Math.round(server.getMemoryInUse()));
- memoryUsageBar.setToolTipText("Total: " + NumberUtil.formatNumber((server.getTotalMemory()/1024)) + "GB, In Use: "
- + NumberUtil.formatNumber((server.getMemoryInUse()/1024)) + "GB");
+ toolkit.createLabel(serverSummarySection, "Memory Usage: ", SWT.NONE);
+ memoryUsageBar = new ProgressBar(serverSummarySection, SWT.SMOOTH);
// toolkit.createLabel(section, "Memory Usage: ", SWT.NONE);
// final CoolProgressBar bar = new CoolProgressBar(section,SWT.HORIZONTAL,
@@ -379,21 +363,50 @@ public class GlusterServerSummaryView extends ViewPart {
// toolkit.createLabel(section, "Disk Space in Use (GB): ", SWT.NONE);
// toolkit.createLabel(section, online ? "" + server.getDiskSpaceInUse() : "NA", SWT.NONE);
- toolkit.createLabel(section, "Disk Usage: ", SWT.NONE);
- ProgressBar diskUsageBar = new ProgressBar(section, SWT.SMOOTH);
+ toolkit.createLabel(serverSummarySection, "Disk Usage: ", SWT.NONE);
+ diskUsageBar = new ProgressBar(serverSummarySection, SWT.SMOOTH);
+ }
+
+ toolkit.createLabel(serverSummarySection, "Status: ", SWT.NONE);
+ lblServerStatus = new CLabel(serverSummarySection, SWT.NONE);
+ populateServerSummarySection(server);
+ }
+
+ private void populateServerSummarySection(GlusterServer server) {
+ if (server.isOnline()) {
+ numCpus.setText("" + server.getNumOfCPUs());
+ numCpus.redraw();
+
+ cpuGauge.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
+ cpuGauge.setGaugeNeedleColour(Display.getDefault().getSystemColor(SWT.COLOR_RED));
+ cpuGauge.setGaugeNeedleWidth(2);
+ cpuGauge.setGaugeNeedlePivot(new Point(66, 65));
+
+ cpuGauge.setPoints(getPnts());
+ cpuGauge.setLevel(server.getCpuUsage() / 100);
+ cpuGauge.setToolTipText(server.getCpuUsage() + "%");
+ cpuGauge.redraw();
+
+ memoryUsageBar.setMinimum(0);
+ memoryUsageBar.setMaximum((int) Math.round(server.getTotalMemory()));
+ memoryUsageBar.setSelection((int) Math.round(server.getMemoryInUse()));
+ memoryUsageBar.setToolTipText("Total: " + NumberUtil.formatNumber((server.getTotalMemory() / 1024))
+ + "GB, In Use: " + NumberUtil.formatNumber((server.getMemoryInUse() / 1024)) + "GB");
+
diskUsageBar.setMinimum(0);
diskUsageBar.setMaximum((int) Math.round(server.getTotalDiskSpace()));
diskUsageBar.setSelection((int) Math.round(server.getDiskSpaceInUse()));
- diskUsageBar.setToolTipText("Total: " + NumberUtil.formatNumber((server.getTotalDiskSpace()/1024))
- + "GB, In Use: " + NumberUtil.formatNumber((server.getDiskSpaceInUse()/1024)) + "GB");
- }
+ diskUsageBar.setToolTipText("Total: " + NumberUtil.formatNumber((server.getTotalDiskSpace() / 1024))
+ + "GB, In Use: " + NumberUtil.formatNumber((server.getDiskSpaceInUse() / 1024)) + "GB");
- toolkit.createLabel(section, "Status: ", SWT.NONE);
- CLabel lblStatusValue = new CLabel(section, SWT.NONE);
- lblStatusValue.setText(server.getStatusStr());
- lblStatusValue.setImage(server.getStatus() == GlusterServer.SERVER_STATUS.ONLINE ? guiHelper
+ }
+ lblServerStatus.setText(server.getStatusStr());
+ lblServerStatus.setImage(server.getStatus() == GlusterServer.SERVER_STATUS.ONLINE ? guiHelper
.getImage(IImageKeys.STATUS_ONLINE_16x16) : guiHelper.getImage(IImageKeys.STATUS_OFFLINE_16x16));
- toolkit.adapt(lblStatusValue, true, true);
+ toolkit.adapt(lblServerStatus, true, true);
+
+ serverSummarySection.layout();
+ form.reflow(true);
}
private List<Point> getPnts() {
diff --git a/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py b/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py
index da212a9b..1463ed72 100755
--- a/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py
+++ b/src/com.gluster.storage.management.server.scripts/src/NetworkUtils.py
@@ -176,15 +176,34 @@ def writeIfcfgConfFile(deviceName, conf, root="", deviceFile=None):
return False
return True
-
-def getNetModel(deviceName):
+def getNetDeviceDetail(deviceName):
+ deviceDetail = {}
+ deviceDetail['Name'] = deviceName
rv = runCommandFG("ifconfig %s" % deviceName, stdout=True, root=True)
if rv["Status"] != 0:
return False
for line in rv["Stdout"].split():
tokens = line.strip().split(":")
if tokens[0].upper() == "ENCAP":
- return tokens[1].strip().upper()
+ deviceDetail['Model'] = tokens[1].strip().upper()
+ if tokens[0].upper() == "ADDR":
+ deviceDetail['Ip'] = tokens[1].strip()
+ if tokens[0].upper() == "MASK":
+ deviceDetail['Mask'] = tokens[1].strip()
+ return deviceDetail
+
+def getNetDeviceGateway(deviceName):
+ rv = runCommand("route -n", output=True, root=True)
+ if rv["Status"] != 0:
+ return None
+ if not rv["Stdout"]:
+ return None
+ lines = [line for line in rv["Stdout"].split("\n") if line.find("UG") != -1 and line.find(deviceName)]
+ if not lines:
+ return None
+ line = lines[-1].split()
+ if line and len(line) > 1:
+ return line[1]
return None
def getNetSpeed(deviceName):
@@ -272,8 +291,6 @@ def getNetDeviceList(root=""):
netDevice["type"] = None
netDevice["onboot"] = None
netDevice["bootproto"] = None
- netDevice["ipaddr"] = None
- netDevice["netmask"] = None
netDevice["gateway"] = None
netDevice["peerdns"] = None
netDevice["autodns"] = None
@@ -294,7 +311,10 @@ def getNetDeviceList(root=""):
netDevice["type"] = None
netDevice["link"] = getLinkStatus(deviceName)
netDevice["mode"] = getBondMode(deviceName, root + Globals.MODPROBE_CONF_FILE)
- netDevice["model"] = getNetModel(deviceName)
+ deviceDetail = getNetDeviceDetail(deviceName)
+ netDevice["model"] = deviceDetail['Model']
+ netDevice["ipaddr"] = deviceDetail['Ip']
+ netDevice["netmask"] = deviceDetail['Mask']
netDevice["speed"] = getNetSpeed(deviceName)
try:
netDevice["hwaddr"] = open("/sys/class/net/%s/address" % deviceName).read().strip()
@@ -314,18 +334,16 @@ def getNetDeviceList(root=""):
netDevice["bootproto"] = conf["bootproto"]
except KeyError:
pass
- try:
+ if conf.has_key("ipaddr") and conf["ipaddr"]:
netDevice["ipaddr"] = conf["ipaddr"]
- except KeyError:
- pass
try:
netDevice["netmask"] = conf["netmask"]
except KeyError:
pass
- try:
+ if conf.has_key("gateway") and conf["gateway"]:
netDevice["gateway"] = conf["gateway"]
- except KeyError:
- pass
+ else:
+ netDevice["gateway"] = getNetDeviceGateway(deviceName)
try:
netDevice["peerdns"] = conf["peerdns"]
except KeyError: