perfsonar-dev - perfsonar: r4984 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: . conf samples samples/metadata_configuration_files samples/requests samples/responses src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query
Subject: perfsonar development work
List archive
perfsonar: r4984 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: . conf samples samples/metadata_configuration_files samples/requests samples/responses src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query
Chronological Thread
- From:
- To:
- Subject: perfsonar: r4984 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: . conf samples samples/metadata_configuration_files samples/requests samples/responses src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query
- Date: Mon, 23 Feb 2009 10:29:21 -0500
Author: roman
Date: 2009-02-23 10:29:21 -0500 (Mon, 23 Feb 2009)
New Revision: 4984
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/metadata_configuration_files/
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/metadata_configuration_files/rrd_database_test.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Discards-1.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Discards-2.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Errors-1.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Errors-2.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Utilization-1.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Utilization-2.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/EchoResponse.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/MetadataKeyResponse-Utilization-1.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/MetadataKeyResponse-Utilization-2.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/DiscardsQueryGenerator.java
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/ErrorsQueryGenerator.java
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/InterfaceBasedQueryGenerator.java
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/conf/configuration-ma.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/QueryGenerator.java
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/UtilizationQueryGenerator.java
Log:
errors and discards metadata query stuff added
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/conf/configuration-ma.xml
===================================================================
--- branches/new-structure-with-base2/ps-mdm-rrd-ma/conf/configuration-ma.xml
2009-02-23 14:54:05 UTC (rev 4983)
+++ branches/new-structure-with-base2/ps-mdm-rrd-ma/conf/configuration-ma.xml
2009-02-23 15:29:21 UTC (rev 4984)
@@ -70,13 +70,12 @@
<option name="http://ggf.org/ns/nmwg/characteristic/utilization/2.0"
value="org.perfsonar.service.measurementArchive.rrdType.storage.exist.query.UtilizationQueryGenerator"/>
- <!--
+
<option name="http://ggf.org/ns/nmwg/characteristic/errors/2.0"
value="org.perfsonar.service.measurementArchive.rrdType.storage.exist.query.ErrorsQueryGenerator"/>
<option name="http://ggf.org/ns/nmwg/characteristic/discards/2.0"
value="org.perfsonar.service.measurementArchive.rrdType.storage.exist.query.DiscardsQueryGenerator"/>
- -->
</component>
@@ -97,7 +96,7 @@
className="org.perfsonar.base2.service.scheduler.SchedulingComponent">
<option name="schedulerClassName"
value="org.perfsonar.base2.service.scheduler.SimpleScheduler"/>
- <option name="interval" value="15000"/>
+ <option name="interval" value="3600000"/>
<actions>
<!--
<action name="test1"
className="org.perfsonar.base2.service.scheduler.SimpleAction">
@@ -174,6 +173,10 @@
<element
name="{http://ggf.org/ns/nmwg/characteristic/utilization/2.0/}subject"
mapping="org.perfsonar.base2.xml.nmwg.Subject"/>
+ <element
name="{http://ggf.org/ns/nmwg/characteristic/errors/2.0/}subject"
+ mapping="org.perfsonar.base2.xml.nmwg.Subject"/>
+ <element
name="{http://ggf.org/ns/nmwg/characteristic/discards/2.0/}subject"
+ mapping="org.perfsonar.base2.xml.nmwg.Subject"/>
<element name="{http://ggf.org/ns/nmwg/ops/select/2.0/}subject"
mapping="org.perfsonar.base2.xml.nmwg.Subject"/>
<element name="{http://ggf.org/ns/nmwg/ops/select/2.0/}parameters"
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/metadata_configuration_files/rrd_database_test.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Discards-1.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Discards-2.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Errors-1.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Errors-2.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Utilization-1.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/MetadataKeyRequest-Utilization-2.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/EchoResponse.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/MetadataKeyResponse-Utilization-1.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/responses/MetadataKeyResponse-Utilization-2.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/DiscardsQueryGenerator.java
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/ErrorsQueryGenerator.java
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/InterfaceBasedQueryGenerator.java
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/QueryGenerator.java
===================================================================
---
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/QueryGenerator.java
2009-02-23 14:54:05 UTC (rev 4983)
+++
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/QueryGenerator.java
2009-02-23 15:29:21 UTC (rev 4984)
@@ -12,6 +12,13 @@
public final static String DECLARE_NMWG_NAMESPACE =
"declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/'; \n";
+ public final static String DECLARE_TRIM_FUNC = "\n"
+ + "declare namespace functx = 'http://www.functx.com';\n"
+ + "declare function functx:trim \n"
+ + " ( $arg as xs:string? ) as xs:string { \n"
+ + " replace(replace($arg,'\\s+$',''),'^\\s+','') \n"
+ + "}; \n\n";
+
public String getQuery (Element queryElement) throws PerfSONARException;
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/UtilizationQueryGenerator.java
===================================================================
---
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/UtilizationQueryGenerator.java
2009-02-23 14:54:05 UTC (rev 4983)
+++
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query/UtilizationQueryGenerator.java
2009-02-23 15:29:21 UTC (rev 4984)
@@ -1,254 +1,37 @@
package org.perfsonar.service.measurementArchive.rrdType.storage.exist.query;
import org.perfsonar.base2.xml.Element;
-import org.perfsonar.base2.xml.nmwg.Message;
-import org.perfsonar.base2.xml.nmwg.Metadata;
-import org.perfsonar.base2.xml.nmwg.Subject;
-import org.perfsonar.base2.xml.nmwg.Parameter;
-import org.perfsonar.base2.xml.nmwg.Parameters;
import org.perfsonar.base2.service.exceptions.PerfSONARException;
/**
- * $Id: UtilizationQueryGenerator.java 4684 2008-11-03 13:07:33Z roman $
+ * $Id$
*/
-public class UtilizationQueryGenerator implements QueryGenerator {
+public class UtilizationQueryGenerator extends InterfaceBasedQueryGenerator {
- // ------------------------------------------------------------- class
const
+ // ------------------------------------------------------------- fields
public final static String DECLARE_NETUTIL_NAMESPACE =
"declare namespace
netutil='http://ggf.org/ns/nmwg/characteristic/utilization/2.0/'; \n";
- public final static String DECLARE_NMWGT_NAMESPACE =
- "declare namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/'; \n";
- public final static String DECLARE_TRIM_FUNC = "\n"
- + "declare namespace functx = 'http://www.functx.com';\n"
- + "declare function functx:trim \n"
- + " ( $arg as xs:string? ) as xs:string { \n"
- + " replace(replace($arg,'\\s+$',''),'^\\s+','') \n"
- + "}; \n\n";
+ // -------------------------------------------------------------
constructor
+ public UtilizationQueryGenerator() {
+ super();
+ DECLARE_CHARACTERISTIC_NAMESPACE = DECLARE_NETUTIL_NAMESPACE;
+ }
+
+
// ------------------------------------------------------------- methods
public String getQuery (Element queryElement) throws PerfSONARException {
- Message message = (Message) queryElement;
+ return getQuery(queryElement, "netutil");
- String eventType = null;
- String keyword = null;
- String keywordType = null;
-
- String ipAddress = null;
- String hostName = null;
- String ifName = null;
- String ifDescription = null;
- String ifAddress = null;
- String ifAddressType = null;
- String ifIndex = null;
- String type = null;
- String direction = null;
- String classOfService = null;
- String capacity = null;
-
- Metadata metadata =
- (Metadata) message.getMetadataCollection().iterator().next();
- eventType = metadata.getFirstEventType().getEventType().trim();
-
- Parameters parameters = metadata.getParameters();
- Parameter keywordParameter = null;
- if (parameters != null)
- keywordParameter = parameters.getFirstParameter("keyword");
-
- String keywordQueryPart = "";
- if (keywordParameter != null) {
-
- keyword = keywordParameter.getText();
-
- if (!keyword.trim().equals(""))
- keywordQueryPart = " and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='"+ keyword +"' and
functx:trim(@name)='keyword') or (functx:trim(@value)='" + keyword + "' and
functx:trim(@name)='keyword')] ";
- }
-
- Subject subject = metadata.getSubject();
- if (subject != null) {
- Element interf = subject.getFirstChild("interface");
- if (interf != null) {
- ipAddress = (interf.getFirstChild("ipAddress") !=
null ? interf.getFirstChild("ipAddress").getText().trim() : null);
- hostName = (interf.getFirstChild("hostName") !=
null ? interf.getFirstChild("hostName").getText().trim() : null);
- ifName = (interf.getFirstChild("ifName") !=
null ? interf.getFirstChild("ifName").getText().trim() : null);
- ifDescription = (interf.getFirstChild("ifDescription") !=
null ? interf.getFirstChild("ifDescription").getText().trim() : null);
- ifAddress = (interf.getFirstChild("ifAddress") !=
null ? interf.getFirstChild("ifAddress").getText().trim() : null);
- ifIndex = (interf.getFirstChild("ifIndex") !=
null ? interf.getFirstChild("ifIndex").getText().trim() : null);
- type = (interf.getFirstChild("type") !=
null ? interf.getFirstChild("type").getText().trim() : null);
- direction = (interf.getFirstChild("direction") !=
null ? interf.getFirstChild("direction").getText().trim() : null);
- classOfService = (interf.getFirstChild("classOfService") !=
null ? interf.getFirstChild("classOfService").getText().trim() : null);
- capacity = (interf.getFirstChild("capacity") !=
null ? interf.getFirstChild("capacity").getText().trim() : null);
- try {
- ifAddressType =
(!interf.getFirstChild("ifAddress").getAttribute("type").trim().equals("") ?
interf.getFirstChild("ifAddress").getAttribute("type").trim(): null);
- } catch (Exception ex) {
- ifAddressType = null;
- }
- } else {
- throw new PerfSONARException(
- "query_exception",
- "no interface element in metadata element");
- }
- } else {
- throw new PerfSONARException(
- "query_exception",
- "no subject element in metadata element");
- }
-
-
- // fetching all metadata
-
- if (ipAddress == null &&
- hostName == null &&
- ifName == null &&
- ifDescription == null &&
- ifAddress == null &&
- ifIndex == null &&
- type == null &&
- direction == null &&
- classOfService == null &&
- capacity == null &&
- keywordParameter == null) {
-
- String query =
- "let $res :=
\n"
- + " for $i in //nmwg:metadata
\n"
- + " where
\n"
- + "
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + eventType + "'
and functx:trim(@name)='supportedEventType') \n"
- + " or (functx:trim(@value)='" + eventType + "' and
functx:trim(@name)='supportedEventType')] \n"
- + " or
\n"
- + " $i/nmwg:eventType[functx:trim(text())='" +
eventType + "']
\n"
- + " return $i
\n"
- + "\n"
- + "let $datas :=
\n"
- + "
//nmwg:data/nmwg:key/nmwg:parameters/nmwg:parameter[functx:trim(@name)='eventType'
and functx:trim(text())='" + eventType + "']/parent::*/parent::*/parent::*
\n"
- + "\n"
- + "return ($res, $datas) \n";
-
- return DECLARE_NMWG_NAMESPACE
- + DECLARE_TRIM_FUNC
- + query;
- }
-
-
-
- String query =
- " let $res := \n"
- + " for $i in //nmwg:metadata \n"
- + " where 1 \n";
-
- if (eventType != null)
- query += "and
(($i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + eventType + "'
and functx:trim(@name)='supportedEventType') "
- + "or
(functx:trim(@value)='" + eventType + "' and
functx:trim(@name)='supportedEventType')]) "
- + "or "
- + "($i/nmwg:eventType[functx:trim(text())='" +
eventType + "'])"
- + ") "
- + keywordQueryPart;
-
- /*
-------------------------------------------------------------------------*/
-
- if (ipAddress != null) {
- if (ipAddress.equals(""))
- throw new PerfSONARException("query_exception", " wrong
ipAddress");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ipAddress[functx:trim(text())='" +
ipAddress + "'] ";
- }
-
- if (hostName != null) {
- if (hostName.equals(""))
- throw new PerfSONARException("query_exception", "wrong
hostName");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:hostName[functx:trim(text())='" +
hostName + "'] ";
- }
-
- if (ifName != null) {
- if (ifName.equals(""))
- throw new PerfSONARException("query_exception", "wrong
ifName");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ifName[functx:trim(text())='" +
ifName + "'] ";
- }
-
- if (ifDescription != null) {
- if (ifDescription.equals(""))
- throw new PerfSONARException("query_exception", "wrong
ifDescription");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ifDescription[functx:trim(text())='"
+ ifDescription + "'] ";
- }
-
- if (ifAddress != null) {
- if (ifAddress.equals("") && ifAddressType == null)
- throw new PerfSONARException("query_exception", "wrong
ifAddress");
- if (!ifAddress.equals(""))
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(text())='" +
ifAddress + "'] ";
- }
-
- if (ifIndex != null) {
- if (ifIndex.equals(""))
- throw new PerfSONARException("query_exception", "wrong
ifIndex");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ifIndex[functx:trim(text())='" +
ifIndex + "'] ";
- }
-
- if (type != null) {
- if (type.equals(""))
- throw new PerfSONARException("query_exception", "wrong
type");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:type[functx:trim(text())='" + type +
"'] ";
- }
-
- if (direction != null) {
- if (direction.equals(""))
- throw new PerfSONARException("query_exception", "wrong
direction");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:direction[functx:trim(text())='" +
direction + "'] ";
- }
-
- if (classOfService != null) {
- if (classOfService.equals(""))
- throw new PerfSONARException("query_exception", "wrong
classOfService");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:classOfService[functx:trim(text())='"
+ classOfService + "'] ";
- }
-
- if (capacity != null) {
- if (capacity.equals(""))
- throw new PerfSONARException("query_exception", "wrong
capacity");
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:capacity[functx:trim(text())='" +
capacity + "'] ";
- }
-
- if (ifAddressType != null)
- query += "and
$i/netutil:subject/nmwgt:interface/nmwgt:ifAddress[functx:trim(@type)='" +
ifAddressType + "'] ";
-
- /*
-------------------------------------------------------------------------*/
-
-
- query += "\n"
- + " return $i \n"
- + " \n"
- + " let $metaids := \n"
- + " for $j in $res \n"
- + " return fn:data($j/@id) \n"
- + " \n"
- + " let $datas := \n"
- + " for $k in $metaids \n"
- + " let $d:= \n"
- + " //nmwg:data[functx:trim(@metadataIdRef)=$k] \n"
- + " return $d \n"
- + " \n"
- + " return ($res, $datas) \n";
-
-
- query = DECLARE_NMWG_NAMESPACE
- + DECLARE_NETUTIL_NAMESPACE
- + DECLARE_NMWGT_NAMESPACE
- + DECLARE_TRIM_FUNC
- + query;
-
-
- //test query
- //String query = DECLARE_NMWG_NAMESPACE +
"//nmwg:metadata,//nmwg:data";
-
- return query;
-
}
- perfsonar: r4984 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: . conf samples samples/metadata_configuration_files samples/requests samples/responses src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/exist/query, svnlog, 02/23/2009
Archive powered by MHonArc 2.6.16.