diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-07-28 18:21:15 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-07-28 18:21:15 +0530 |
| commit | 43410facca19479bfc560c93aa7274cdb1b2b2e6 (patch) | |
| tree | 152e7c61074fae96da5dc1195dc43cc479f4c638 | |
| parent | 059b1ae9ccdd3d69f3dab5213fe81fb62a6c1b5f (diff) | |
| parent | 7287ce7a7500629cede5446b30b2d4b9c8ff930e (diff) | |
Merge branch 'master' of git@github.com:gluster/console
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: |
