perfsonar-dev - perfsonar: r2765 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: ma plugins ui/panels
Subject: perfsonar development work
List archive
perfsonar: r2765 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: ma plugins ui/panels
Chronological Thread
- From:
- To:
- Subject: perfsonar: r2765 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: ma plugins ui/panels
- Date: Tue, 4 Sep 2007 08:05:10 -0400
Author: nina
Date: 2007-09-04 08:05:09 -0400 (Tue, 04 Sep 2007)
New Revision: 2765
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequestPerfsonar2_0.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequest_Errors.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSDiscardsDatum.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSTime.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSUtilizationDatum.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/InterfaceUtilizationSeries.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/PerfsonarTimeSeriesDataset.java
Log:
Updated MARequestPerfsonar2_0.java to work with chaining and PSTypedValue for
parsing time/value pairs.
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequestPerfsonar2_0.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequestPerfsonar2_0.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequestPerfsonar2_0.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -23,8 +23,13 @@
import org.jdom.Namespace;
import org.perfsonar.perfsonarui.AbstractUserData;
import org.perfsonar.perfsonarui.PSLogger;
+import org.perfsonar.perfsonarui.UnsupportedTypeException;
import org.perfsonar.perfsonarui.plugins.ITimeValueResponse;
import org.perfsonar.perfsonarui.plugins.IUserData;
+import org.perfsonar.perfsonarui.plugins.PSCountsDatum;
+import org.perfsonar.perfsonarui.plugins.PSErrorsDatum;
+import org.perfsonar.perfsonarui.plugins.PSTime;
+import org.perfsonar.perfsonarui.plugins.PSUtilizationDatum;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -68,6 +73,7 @@
logger.warn(">>\t" + userData.getId() + '\t'+
userData.getHostname(AbstractUserData.ID_RESPONSE) + '\t' +
d.getTextContent());
}
}
+ /*
@Override
protected synchronized void processData(Node data, UserData userData) {
//result code
@@ -118,6 +124,186 @@
}
+ */
+
+ protected void processMetadata(Node metadata, UserData userData) {
+ if (isInterrupted()) return;
+ userData.clear();
+// System.out.println("Process
metadata\t"+((Element)metadata).getAttribute("id"));
+ NodeList subject =
((Element)metadata).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],
"subject");
+ if (subject.getLength() == 0) return;
+ for (int m=0; m<subject.getLength(); m++)
+ if (subject.item(m) instanceof Element) {
+
+ NodeList nmwgt_interface =
((Element)subject.item(m)).getElementsByTagNameNS(URI_nmwgt[nmwg_version],
"interface");
+
+ for (int i=0; i < nmwgt_interface.getLength();i++) {
+ NodeList ifc = nmwgt_interface.item(i).getChildNodes();
+
+ for (int j=0; j < ifc.getLength();j++) {
+ Node node = ifc.item(j);
+ //System.out.println(node.getNodeValue());
+ if ((node != null) && (node instanceof
org.w3c.dom.Element)) {
+ Node child = node.getFirstChild();
+ if (child != null) {
+
userData.setResponse(node.getLocalName(),child.getNodeValue());
+
//System.out.println(node.getLocalName()+'\t'+child.getNodeValue());
+ }
+ }
+ }
+ }
+ }
+ userData.setDirection(userData.getResponse(UserData.C_DIRECTION));
+
+ Node eventType =
((org.w3c.dom.Element)metadata).getElementsByTagNameNS(URI_nmwg[nmwg_version],"eventType").item(0);
+ if (eventType != null) {
+ String event = eventType.getFirstChild().getNodeValue();
+ if (userData.isInput())
+ userData.getEndpoint().setEvent(event,0);
+ else if (userData.isOutput())
+ userData.getEndpoint().setEvent(event,1);
+ else userData.getEndpoint().setEvent(event,-1); //both
+ }
+ }
+
+ protected void processData(Node data, UserData userData,
ITimeValueResponse timeValueResponse) {
+ PSCountsDatum d = createCountsDatum();
+ PSTime t = new PSTime();
+
+ String dataId = ((org.w3c.dom.Element)data).getAttribute("id");
+ timeValueResponse.clear(getTimeValueSeriesName(userData, d));
+ timeValueResponse.setUserData(userData);
+ timeValueResponse.initializeResponse();
+ NodeList datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],"datum");
+ if (datum.getLength() == 0)
+ datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_nmwg[nmwg_version],"datum");
+
+
+ for (int i=0; i < datum.getLength();i++) {
+ Node n = datum.item(i);
+
+ if ((n != null) && (n instanceof Element)) {
+ try {
+ processDatum((org.w3c.dom.Element)n, d,t);
+
timeValueResponse.setDatum(dataId,getTimeValueSeriesName(userData, d),t,d);
+ } catch (UnsupportedTypeException x) {
+ logger.error(x);
+ }
+ }
+
+ }
+
+ timeValueResponse.finalizeResponse();
+ }
+
+ protected String getTimeValueSeriesName(UserData userData,
PSCountsDatum datum) {
+ return userData.getType();
+ }
+ protected PSCountsDatum createCountsDatum() {
+ return new PSUtilizationDatum();
+
+ }
+ protected synchronized void processData(Node data, UserData userData) {
+
+ //result code
+ NodeList datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],"datum");
+ if (datum.getLength()==0)
+ datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_nmwg[nmwg_version],"datum");
+
+ if (datum.getLength()>0) {
+ double counts = 0;
+ long number = 0;
+ PSCountsDatum d = createCountsDatum();
+ PSTime t = new PSTime();
+
+ for (int i=0; i < datum.getLength();i++) {
+ Node n = datum.item(i);
+
+ if ((n != null) && (n instanceof Element)) {
+ try {
+ processDatum((org.w3c.dom.Element)n, d,t);
+
+ if (!Double.isNaN(d.getValue().doubleValue())) {
+ counts += d.getValue().doubleValue();
+ number++;
+ }
+ /*
+ logger.debug(">>\t" + userData.toString() + '\t' +
userData.getId() + '\t'+ userData.getHostname(AbstractUserData.ID_RESPONSE) +
'\t' +
+ d.getCount()+ '\t' + d.getType()+ '\t' +
t.getTime()+ '\t' + t.getType());
+ */
+ } catch (UnsupportedTypeException x) {
+ logger.error(x);
+ }
+ }
+
+ }
+ if (number > 0)
+ setAverage(userData, d, counts/number);
+ else
+ setAverage(userData, d, Double.NaN);
+
+ }
+ processResultCode(data, userData);
+ }
+
+ protected synchronized void setAverage(UserData userData,PSCountsDatum
datum, double average ) {
+ if (Double.isNaN(average)) {
+ if (userData.isInput()) {
+
userData.setResponse(UserData.INDEX_IFUTILIZATION_IN,AbstractUserData.NULL_DATA);
+
userData.setResponse(UserData.INDEX_IFBITS_IN,AbstractUserData.NULL_DATA);
+ } else if (userData.isOutput()) {
+
userData.setResponse(UserData.INDEX_IFUTILIZATION_OUT,AbstractUserData.NULL_DATA);
+
userData.setResponse(UserData.INDEX_IFBITS_OUT,AbstractUserData.NULL_DATA);
+ }
+ } else {
+ userData.setBits(average,1);
+ }
+ }
+ /**
+ * Processes single <namespace:datum> item. Examples:
+ <pre>
+ <errors:datum value="2" valueUnits="Eps" timeType="unix"
timeValue="1021119880"/>
+
+ <errors:datum value="2" valueUnits="Eps">
+ <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
+ </errors:datum>
+
+ <errors:datum>
+ <nmwg:value valueUnits="Eps">1</nmwg:value>
+ <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
+ </errors:datum>
+ </pre>
+ * @param datum
+ * @param userData
+ */
+ protected synchronized void processDatum(Element datum, PSCountsDatum d,
PSTime t) throws UnsupportedTypeException {
+ String value = datum.getAttribute("value");
+ String units = datum.getAttribute("valueUnits");
+ String time = datum.getAttribute("timeValue");
+ String timeType = datum.getAttribute("timeType");
+
+ //Look for <nmwg:value valueUnits="Eps">1</nmwg:value>
+ if ((value == null) || "".equals(value) || (units == null) ||
"".equals(units)) {
+ NodeList l = datum.getChildNodes();
+ for (int i=0; i < l.getLength(); i++)
+ if ("value".equals(l.item(i).getLocalName())) {
+ units = ((Element) l.item(i)).getAttribute("valueUnits");
+ value = l.item(i).getTextContent();
+ }
+ }
+ //Look for <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
+ if ((time == null) || "".equals(time) || (timeType == null) ||
"".equals(timeType)) {
+ NodeList l = datum.getChildNodes();
+ for (int i=0; i < l.getLength(); i++)
+ if ("time".equals(l.item(i).getLocalName())) {
+ timeType = ((Element) l.item(i)).getAttribute("type");
+ time = ((Element) l.item(i)).getAttribute("value");
+ }
+ }
+ d.setValue(value, units);
+ t.setValue(time,timeType);
+ }
+
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequest_Errors.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequest_Errors.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/ma/MARequest_Errors.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -61,158 +61,14 @@
}
- protected void processMetadata(Node metadata, UserData userData) {
- if (isInterrupted()) return;
- userData.clear();
-// System.out.println("Process
metadata\t"+((Element)metadata).getAttribute("id"));
- NodeList subject =
((Element)metadata).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],
"subject");
- if (subject.getLength() == 0) return;
- for (int m=0; m<subject.getLength(); m++)
- if (subject.item(m) instanceof Element) {
-
- NodeList nmwgt_interface =
((Element)subject.item(m)).getElementsByTagNameNS(URI_nmwgt[nmwg_version],
"interface");
-
- for (int i=0; i < nmwgt_interface.getLength();i++) {
- NodeList ifc = nmwgt_interface.item(i).getChildNodes();
-
- for (int j=0; j < ifc.getLength();j++) {
- Node node = ifc.item(j);
- //System.out.println(node.getNodeValue());
- if ((node != null) && (node instanceof
org.w3c.dom.Element)) {
- Node child = node.getFirstChild();
- if (child != null) {
-
userData.setResponse(node.getLocalName(),child.getNodeValue());
-
//System.out.println(node.getLocalName()+'\t'+child.getNodeValue());
- }
- }
- }
- }
- }
- userData.setDirection(userData.getResponse(UserData.C_DIRECTION));
-
- Node eventType =
((org.w3c.dom.Element)metadata).getElementsByTagNameNS(URI_nmwg[nmwg_version],"eventType").item(0);
- if (eventType != null) {
- String event = eventType.getFirstChild().getNodeValue();
- if (userData.isInput())
- userData.getEndpoint().setEvent(event,0);
- else if (userData.isOutput())
- userData.getEndpoint().setEvent(event,1);
- else userData.getEndpoint().setEvent(event,-1); //both
- }
- }
-
- protected void processData(Node data, UserData userData,
ITimeValueResponse timeValueResponse) {
- PSCountsDatum d = createCountsDatum();
- PSTime t = new PSTime();
-
- String dataId = ((org.w3c.dom.Element)data).getAttribute("id");
- //timeValueResponse.clear(userData.getType());
- timeValueResponse.clear(d.getDefaultType());
- timeValueResponse.setUserData(userData);
- timeValueResponse.initializeResponse();
- NodeList datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],"datum");
- if (datum.getLength() == 0)
- datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_nmwg[nmwg_version],"datum");
-
-
- for (int i=0; i < datum.getLength();i++) {
- Node n = datum.item(i);
-
- if ((n != null) && (n instanceof Element)) {
- try {
- processDatum((org.w3c.dom.Element)n, d,t);
-
//timeValueResponse.setDatum(dataId,userData.getType(),t,d);
- timeValueResponse.setDatum(dataId,d.getType(),t,d);
- } catch (UnsupportedTypeException x) {
- logger.error(x);
- }
- }
-
- }
-
- timeValueResponse.finalizeResponse();
- }
-
- protected synchronized void processData(Node data, UserData userData) {
-
- //result code
- NodeList datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_perfsonar[perfsonar_version][1],"datum");
- if (datum.getLength()==0)
- datum =
((org.w3c.dom.Element)data).getElementsByTagNameNS(URI_nmwg[nmwg_version],"datum");
-
- if (datum.getLength()>0) {
- long counts = 0;
- PSCountsDatum d = createCountsDatum();
- PSTime t = new PSTime();
-
- for (int i=0; i < datum.getLength();i++) {
- Node n = datum.item(i);
-
- if ((n != null) && (n instanceof Element)) {
- try {
- processDatum((org.w3c.dom.Element)n, d,t);
- counts += d.getCount();
-
- logger.debug(">>\t" + userData.toString() + '\t' +
userData.getId() + '\t'+ userData.getHostname(AbstractUserData.ID_RESPONSE) +
'\t' +
- d.getCount()+ '\t' + d.getType()+ '\t' +
t.getTime()+ '\t' + t.getType());
- } catch (UnsupportedTypeException x) {
- logger.error(x);
- }
- }
-
- }
-
- userData.setResponse(d.getType(), Double.toString(counts));
- }
- processResultCode(data, userData);
- }
- /**
- * Processes single <namespace:datum> item. Examples:
- <pre>
- <errors:datum value="2" valueUnits="Eps" timeType="unix"
timeValue="1021119880"/>
-
- <errors:datum value="2" valueUnits="Eps">
- <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
- </errors:datum>
-
- <errors:datum>
- <nmwg:value valueUnits="Eps">1</nmwg:value>
- <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
- </errors:datum>
- </pre>
- * @param datum
- * @param userData
- */
- protected synchronized void processDatum(Element datum, PSCountsDatum d,
PSTime t) throws UnsupportedTypeException {
- String value = datum.getAttribute("value");
- String units = datum.getAttribute("valueUnits");
- String time = datum.getAttribute("timeValue");
- String timeType = datum.getAttribute("timeType");
-
- //Look for <nmwg:value valueUnits="Eps">1</nmwg:value>
- if ((value == null) || "".equals(value) || (units == null) ||
"".equals(units)) {
- NodeList l = datum.getChildNodes();
- for (int i=0; i < l.getLength(); i++)
- if ("value".equals(l.item(i).getLocalName())) {
- units = ((Element) l.item(i)).getAttribute("valueUnits");
- value = l.item(i).getTextContent();
- }
- }
- //Look for <nmtm:time type="unix" value="1021119880"
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/"/>
- if ((time == null) || "".equals(time) || (timeType == null) ||
"".equals(timeType)) {
- NodeList l = datum.getChildNodes();
- for (int i=0; i < l.getLength(); i++)
- if ("time".equals(l.item(i).getLocalName())) {
- timeType = ((Element) l.item(i)).getAttribute("type");
- time = ((Element) l.item(i)).getAttribute("value");
- }
- }
- d.setValue(value, units);
- t.setValue(time,timeType);
- }
-
@Override
protected int[] getDirections() {
return new int[]{UserData.DIRECTION_INPUT};
}
+ protected synchronized void setAverage(UserData userData,PSCountsDatum
datum, double average ) {
+ userData.setResponse(datum.getType(), Double.toString(average));
+ }
+ protected String getTimeValueSeriesName(UserData userData,
PSCountsDatum datum) {
+ return datum.getType();
+ }
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSDiscardsDatum.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSDiscardsDatum.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSDiscardsDatum.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -29,11 +29,8 @@
package org.perfsonar.perfsonarui.plugins;
-import java.util.ArrayList;
-import org.perfsonar.perfsonarui.UnsupportedTypeException;
-
public class PSDiscardsDatum extends PSCountsDatum {
@Override
public String getDefaultType() {
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSTime.java
===================================================================
--- branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSTime.java
2007-09-04 12:02:03 UTC (rev 2764)
+++ branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSTime.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -82,5 +82,8 @@
}
-
+ public synchronized void setType(String type) throws
UnsupportedTypeException {
+ if ("".equals(type)) super.setType(getDefaultType());
+ else super.setType(type);
+ }
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSUtilizationDatum.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSUtilizationDatum.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/plugins/PSUtilizationDatum.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -53,17 +53,20 @@
@Override
public void setValue(String value) throws UnsupportedTypeException {
try {
- if (units_Bps.equals(getType()))
+ if (units_Bps.equals(getType())) {
this.value = Double.parseDouble(value)*8;
- else if (units_bps.equals(getType()))
+ NaN = Double.isNaN(this.value);
+ } else if (units_bps.equals(getType())) {
this.value = Double.parseDouble(value);
- else
- throw new UnsupportedTypeException(null,getType(),null);
+ NaN = Double.isNaN(this.value);
+ } else
+ throw new
UnsupportedTypeException(null,"Type\t"+getType(),null);
} catch (NumberFormatException x) {
this.value = Double.NaN;
+ NaN = true;
} catch (Exception x) {
- throw new UnsupportedTypeException(null,getType(),x);
+ throw new UnsupportedTypeException(null,"Type\t"+getType(),x);
}
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/InterfaceUtilizationSeries.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/InterfaceUtilizationSeries.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/InterfaceUtilizationSeries.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -24,7 +24,10 @@
package org.perfsonar.perfsonarui.ui.panels;
+import org.perfsonar.perfsonarui.plugins.PSDatum;
+import org.perfsonar.perfsonarui.plugins.PSTime;
+
/**
* Same as parent class, but takes care of data units.
* @author Nina Jeliazkova
@@ -88,10 +91,30 @@
series.add(dtime, null);
}
}
+
+ public void setDatum(String dataId, String type, PSTime time, PSDatum
datum) {
+ try {
+ double dtime = time.getTime()*1000;
+ if (datum.isNaN()) {
+ series.add(dtime, null); //Math.random()*100);
+ }
+ else {
+ double d = datum.getValue().doubleValue()/1048576;
//(Mb/s)
+ if (Double.isNaN(d))
+ series.add(dtime, null);
+ else
+ series.add(dtime,d);
+ }
+
+
+ } catch (NumberFormatException x) {
+ logger.warn(x);
+ }
+
+ }
-
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/PerfsonarTimeSeriesDataset.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/PerfsonarTimeSeriesDataset.java
2007-09-04 12:02:03 UTC (rev 2764)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/panels/PerfsonarTimeSeriesDataset.java
2007-09-04 12:05:09 UTC (rev 2765)
@@ -62,7 +62,9 @@
* @see org.perfsonar.perfsonarui.ITimeValueResponse#clear(boolean)
*/
public void clear(String type) {
- ((PerfsonarTimeSeries)datasets.get(type)).clear();
+ PerfsonarTimeSeries s = ((PerfsonarTimeSeries)datasets.get(type));
+ if (s != null)
+ ((PerfsonarTimeSeries)datasets.get(type)).clear();
}
- perfsonar: r2765 - in branches/perfsonarui/src/org/perfsonar/perfsonarui: ma plugins ui/panels, svnlog, 09/04/2007
Archive powered by MHonArc 2.6.16.