Skip to Content.
Sympa Menu

perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r6498 - in trunk: perfsonar-java-sql-ma/src/main/java/org/perfso nar/service/measurementArchive/sqlType perfsonar-java-sql- ma/src/main/java/org/perfsonar/service/measurementArchive/ sqlType/dao perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/Int erfaceBased perfsonar_base/src/main/java/org/perfsonar/s ervice/base/messages perfsonar_base/src/main/java/org/pe rfsonar/service/measurementArchive/metadataConfig/queryGen erator

Subject: perfsonar development work

List archive

[pS-dev] [GEANT/SA2/ps-java-services] r6498 - in trunk: perfsonar-java-sql-ma/src/main/java/org/perfso nar/service/measurementArchive/sqlType perfsonar-java-sql- ma/src/main/java/org/perfsonar/service/measurementArchive/ sqlType/dao perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/Int erfaceBased perfsonar_base/src/main/java/org/perfsonar/s ervice/base/messages perfsonar_base/src/main/java/org/pe rfsonar/service/measurementArchive/metadataConfig/queryGen erator


Chronological Thread 
  • From:
  • To:
  • Subject: [pS-dev] [GEANT/SA2/ps-java-services] r6498 - in trunk: perfsonar-java-sql-ma/src/main/java/org/perfso nar/service/measurementArchive/sqlType perfsonar-java-sql- ma/src/main/java/org/perfsonar/service/measurementArchive/ sqlType/dao perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/Int erfaceBased perfsonar_base/src/main/java/org/perfsonar/s ervice/base/messages perfsonar_base/src/main/java/org/pe rfsonar/service/measurementArchive/metadataConfig/queryGen erator
  • Date: Tue, 25 Feb 2014 14:39:28 +0000 (GMT)

Author: dante.delvaux
Date: 2014-02-25 14:39:28 +0000 (Tue, 25 Feb 2014)
New Revision: 6498

Modified:

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java

trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml

trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/messages/EchoRequest.java

trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/OwampQueryGenerator.java
Log:
SQL MA-psbase1: filtering MetadataKeyRequest with time constraints, honoring
the startTime and endTime parameters, see PSSERVICES-703.

Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -14,12 +14,21 @@
import org.perfsonar.service.base.util.ResultCodesUtil;
import org.perfsonar.service.measurementArchive.sqlType.dao.Dao;
import org.perfsonar.service.measurementArchive.sqlType.dao.DaoProvider;
+import
org.perfsonar.service.measurementArchive.sqlType.dao.DefaultDaoProvider;
import
org.perfsonar.service.measurementArchive.sqlType.transaction.FallibleTransactionCallback;
import
org.perfsonar.service.measurementArchive.sqlType.transaction.FallibleTransactionTemplate;
+import org.springframework.jdbc.core.ResultSetExtractor;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionStatus;

import javax.sql.DataSource;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -131,6 +140,53 @@
});
}

+ public Collection<String> fetchKeys(final String startTime, final String
endTime, final String eventType)
+ throws PerfSONARException
+ {
+ return tx.execute(new
FallibleTransactionCallback<Collection<String>, PerfSONARException>() {
+ @Override
+ public Collection<String>
doInFallibleTransaction(TransactionStatus transactionStatus)
+ throws PerfSONARException
+ {
+ logger.debug("Trying to fetch keys for " + eventType
+ + " with timestamp between " + startTime + " and " +
endTime);
+
+ // Get keys from DB with time constraints
+ MapSqlParameterSource parameters = new
MapSqlParameterSource();
+ parameters.addValue("table",
DefaultDaoProvider.getTableName(eventType), Types.VARCHAR);
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ NamedParameterJdbcTemplate jdbc = new
NamedParameterJdbcTemplate(dataSource);
+ Collection<String> keys = jdbc.query("SELECT metadataId FROM
"
+ + DefaultDaoProvider.getTableName(eventType)
+ + " WHERE time BETWEEN :start AND :end GROUP BY
metadataId"
+ + " ORDER BY time ASC", parameters, new
KeySetExtractor());
+
+ return keys;
+ }
+ });
+ }
+
+ private static class KeySetExtractor implements
ResultSetExtractor<Collection<String>>
+ {
+ @Override
+ public Collection<String> extractData(ResultSet rs) throws
SQLException
+ {
+ Collection<String> keys = new ArrayList<String>();
+ while (rs.next()) {
+ String value = rs.getString("metadataId");
+ if (value != null) {
+ keys.add(value);
+ }
+ }
+ return keys;
+ }
+ }
+
@Override
public Message store(final Message dataSet)
throws PerfSONARException

Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -27,7 +27,6 @@
import org.perfsonar.service.base.util.ResultCodesUtil;
import
org.perfsonar.service.measurementArchive.metadataConfig.MetadataConfigurationStorageManager;

-
/**
* Class implementing the Measurement Archive Service Engine which deals with
* SQL database.
@@ -42,20 +41,17 @@
*/
private final String serviceEngineType;

-
/**
* The object to log control/debugging messages.
*/
private final LoggerComponent logger;

-
/**
* This object provides access to the service configuration
* (service.properties).
*/
private final ConfigurationComponent configuration;

-
/**
* This object provides access to metadata configuration.
*/
@@ -66,14 +62,12 @@
private final String dbStatus;
private final String dbStore;

-
/**
* This variable is used to detect if there is more than one
* data triggers in the request.
*/
protected boolean firstRunDone = false;

-
public static final String SELECT_NAMESPACE =
"http://ggf.org/ns/nmwg/ops/select/2.0";;

public static final String ECHO_SELF_TEST_NAMESPACE =
@@ -85,10 +79,6 @@
public static final String ECHO_RANDOM_FETCH_TEST_NAMESPACE =

"http://schemas.perfsonar.net/tools/admin/selftest/1.0/random-fetch-test";;

-
- // ---------------------------------- constructors
-
-
public SQLTypeMAServiceEngine() throws PerfSONARException
{
serviceEngineType = "service.MeasurementArchive.SQLType";
@@ -104,13 +94,9 @@
metadataConfig.initStorage(null);
}

-
- // ---------------------------------- methods
-
protected Message getData(Message request) throws PerfSONARException
{
Message response = new Message();
-
Message keyMessage = getKey(request);

boolean mustCopyMetadata = false;
@@ -361,10 +347,8 @@
// invalid action type
logger.error("SQLTypeMAServiceEngine.takeAction: ActionType
specified: "
+ actionType + " is not supported");
-
throw new PerfSONARException("error.ma.action",
"SQLTypeMAServiceEngine: "
+ "ActionType specified: " + actionType + " is not
supported");
-
}

firstRunDone = true;
@@ -441,12 +425,42 @@
request = mergeMetaData(request);

Message response = new Message();
+ Message reducedResponse = new Message();
+ String eventType = null;
+ String startTime = null;
+ String endTime = null;

Collection<Data> dataTriggers = request.getDataMap().values();
for (Data data : dataTriggers) {
- // TODO if we have a select metadata query with startTime and
endTime, we should do a data query first
+ // We look at each metadata section received
try {
Metadata metadata =
request.getMetadata(data.getMetadataIdRef());
+ // Time constraints are in //select:parameters/nmwg:parameter
+ try {
+ startTime =
metadata.getParameterByName("startTime").getParameterValue();
+ } catch (NullPointerException npex) {
+ // probably no startTime given, no worries
+ }
+ try {
+ endTime =
metadata.getParameterByName("endTime").getParameterValue();
+ } catch (NullPointerException npex) {
+ // probably no endTime given, no worries
+ }
+ // We look for the eventType to be able to prune keys based
on time constraints
+ if
(metadata.getEventType().getEventType().equals(SELECT_NAMESPACE)) {
+ // If we have a select, we need to look in the chained
metadata to have the measurement eventType
+ try {
+ // This an be either in a //nmwg:eventType element
+ eventType =
request.getMetadata(metadata.getSubject().getMetadataIdRef())
+ .getEventType().getEventType();
+ } catch (NullPointerException npex) {
+ // Or in a //nmwg:key/nmwg:parameters/nmwg:parameter
element
+ eventType =
request.getMetadata(metadata.getSubject().getMetadataIdRef()).getKey()
+
.getParameterByName("eventType").getParameterValue();
+ }
+ } else {
+ eventType = metadata.getEventType().getEventType();
+ }
getKeyImpl(request, metadata, response);
} catch (NullPointerException npex) {
throw new PerfSONARException(
@@ -454,10 +468,29 @@
"SQLTypeMAServiceEngine.getKey: "
+ "getting the key is impossible "
+ "because of some problem with the format of the
request; "
- + npex.toString());
+ + npex.toString() + " - " + npex.getMessage());
}
}
- return response;
+ // We need to remove all the Keys that have no data for the given
time constraints
+ if (startTime != null || endTime != null) {
+ // Now we need to look into the data DB which are the relevant
Keys
+ Collection<String> keys = storageManager.fetchKeys(startTime,
endTime, eventType);
+ logger.info("'" + eventType + "' keys validating time
constraints ("
+ + startTime + "-" + endTime + "): " + keys.size());
+ // We only keep those keys in the response:
+ //
//nmwg:data/nmwg:key/nmwg:parameters/nmwg:parameter[@metadataId=]
+ for (Data data : (Collection<Data>)
response.getDataMap().values()) {
+ String metadataId =
data.getKey().getParameterByName("metadataId").getParameterValue();
+ if (keys.contains(metadataId)) {
+ logger.debug("Key " + metadataId + " will be kept.");
+
reducedResponse.addChild(response.getMetadata(data.getMetadataIdRef()));
+ reducedResponse.addChild(data);
+ } else {
+ logger.debug("Key " + metadataId + " is droped.");
+ }
+ }
+ }
+ return reducedResponse;
}

/**

Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -40,4 +40,28 @@
}
return null;
}
+
+ public static String getTableName(String eventType)
+ {
+ if (eventType.endsWith("/")) {
+ eventType = eventType.substring(0, eventType.length() - 1);
+ }
+ if (eventType.equals(EVENT_TYPE_DISCARDS)) {
+ return "perfsonar_discards";
+ } else if (eventType.equals(EVENT_TYPE_ERRORS)) {
+ return "perfsonar_errors";
+ } else if (eventType.equals(EVENT_TYPE_IPERF)) {
+ return "perfsonar_iperf";
+ } else if (eventType.equals(EVENT_TYPE_L2PATH)) {
+ return "perfsonar_links";
+ } else if (eventType.equals(EVENT_TYPE_OWAMP)) {
+ // FIXME: what about owamp_summary?
+ return "owamp";
+ } else if (eventType.equals(EVENT_TYPE_PING)) {
+ return "clmp_ping";
+ } else if (eventType.equals(EVENT_TYPE_UTILIZATION)) {
+ return "perfsonar_utilization";
+ }
+ return null;
+ }
}

Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -31,8 +31,7 @@
}

@Override
- public void store(Metadata md, Element element)
- throws PerfSONARException
+ public void store(Metadata md, Element element) throws PerfSONARException
{
Datum datum = (Datum) element;

@@ -57,8 +56,7 @@
}

@Override
- public Data fetch(Key key)
- throws PerfSONARException
+ public Data fetch(Key key) throws PerfSONARException
{
return jdbc.select(key,
"SELECT value, valueUnits, numBytes,
numBytesUnits, time, "
@@ -94,4 +92,5 @@
return datum;
}
}
+
}

Modified:
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
===================================================================
---
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
2014-02-25 14:39:28 UTC (rev 6498)
@@ -1628,7 +1628,7 @@

sql.close()
assert(success)
-</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf without key"
id="ae1d4f08-85b1-4bfc-8c8f-a9052cdaa795"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf without key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoin

t>http://192.168.1.20:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
+</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf without key"
id="ae1d4f08-85b1-4bfc-8c8f-a9052cdaa795"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf without key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoin

t>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header/>
<soapenv:Body>

@@ -1653,21 +1653,22 @@
<nmwg:metadata id="iperf-metadata">
<iperf:subject id="iperf-subject"
metadataIdRef="bwctl-metadata">
<nmwgt:endPointPair>
- <nmwgt:src type="ipv4" value="131.188.81.62"
port="5432"/>
+ <nmwgt:src type="ipv4" value="131.188.81.61"
port="5432"/>
<nmwgt:dst type="ipv4" value="131.188.81.12"
port="5432"/>
</nmwgt:endPointPair>
</iperf:subject>

<nmwg:eventType>http://ggf.org/ns/nmwg/tools/iperf/2.0</nmwg:eventType>
<iperf:parameters id="bwctl-parameters">
- <nmwg:parameter name="protocol" value="UDP"/>
- <nmwg:parameter name="duration" value="10"/>
+ <nmwg:parameter name="protocol" value="TCP"/>
+ <nmwg:parameter name="duration" value="6"/>
+ <nmwg:parameter name="keyword" value="GEANT"/>
</iperf:parameters>
</nmwg:metadata>

<nmwg:data id="1" metadataIdRef="iperf-metadata">
- <iperf:datum throughput="2.57" jitter="1.33" loss="0/837"
timeValue="1197646642"/>
- <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1197646642"/>
- <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1197646642"/>
+ <iperf:datum throughput="2.57" jitter="1.33" loss="0/837"
timeValue="1297646642"/>
+ <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1297646642"/>
+ <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1297646642"/>
</nmwg:data>

</nmwg:message>
@@ -1741,7 +1742,7 @@

sql.close()
assert(success)
-</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf with hostname"
id="0a92d5b8-f2c8-4eaf-9c00-9bdb8106b1c2"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf with hostname" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:end

point>http://sqlma-d7:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
+</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf with hostname"
id="0a92d5b8-f2c8-4eaf-9c00-9bdb8106b1c2"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf with hostname" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:end

point>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header/>
<soapenv:Body>

@@ -4794,7 +4795,7 @@
concat(

//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@value,
"-",

//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@type,
"-",
-//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@port)</path><content>${iperf
properties#dst-ip}-${iperf properties#dst-type}-${iperf
properties#dst-port}</content><allowWildcards>false</allowWildcards><ignoreNamspaceDifferences>false</ignoreNamspaceDifferences><ignoreComments>false</ignoreComments></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="iperf with key"
id="3bdddc0a-2dbd-499f-8f1a-735d39c1826b"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operatio
n>Metadata</con:operation><con:request name="iperf with key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://192.168.1.20:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
+//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@port)</path><content>${iperf
properties#dst-ip}-${iperf properties#dst-type}-${iperf
properties#dst-port}</content><allowWildcards>false</allowWildcards><ignoreNamspaceDifferences>false</ignoreNamspaceDifferences><ignoreComments>false</ignoreComments></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="iperf with key"
id="3bdddc0a-2dbd-499f-8f1a-735d39c1826b"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operatio
n>Metadata</con:operation><con:request name="iperf with key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
<soapenv:Header/>
<soapenv:Body>
<ns3:message
@@ -4803,7 +4804,7 @@
xmlns:ns5="http://ggf.org/ns/nmwg/topology/2.0/";
xmlns:ns6="http://ggf.org/ns/nmwg/tools/bwctl/2.0/";
xmlns:ns7="http://ggf.org/ns/nmwg/tools/iperf/2.0/";
- xmlns:ns8="http://ggf.org/ns/nmwg/result/2.0/"; id="id"
type="SetupDataRequest">
+ xmlns:ns8="http://ggf.org/ns/nmwg/result/2.0/"; id="id"
type="MetadataKeyRequest">
<ns3:metadata id="metadata1">
<ns3:key>
<ns3:parameters>
@@ -4818,7 +4819,7 @@
<ns4:subject id="subject1-2" metadataIdRef="metadata1"/>
<ns4:parameters id="param1-2">
<ns3:parameter name="startTime">1192848640</ns3:parameter>
- <ns3:parameter name="endTime">1192891840</ns3:parameter>
+ <ns3:parameter name="endTime">1198891840</ns3:parameter>
</ns4:parameters>
</ns3:metadata>
<ns3:data id="data1" metadataIdRef="metadata1-2"/>
@@ -4865,7 +4866,7 @@
concat(

//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@value,
"-",

//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@type,
"-",
-//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@port)</path><content>${iperf
properties#dst-ip}-${iperf properties#dst-type}-${iperf
properties#dst-port}</content><allowWildcards>false</allowWildcards><ignoreNamspaceDifferences>false</ignoreNamspaceDifferences><ignoreComments>false</ignoreComments></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="All iperf"
id="d55cc925-7075-4275-9265-d0c5abd05d92"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operation>Met
adata</con:operation><con:request name="All iperf" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://192.168.1.20:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
+//nmwg:message/nmwg:metadata/iperf:subject/nmwgt:endPointPair/nmwgt:dst/@port)</path><content>${iperf
properties#dst-ip}-${iperf properties#dst-type}-${iperf
properties#dst-port}</content><allowWildcards>false</allowWildcards><ignoreNamspaceDifferences>false</ignoreNamspaceDifferences><ignoreComments>false</ignoreComments></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="All iperf"
id="d55cc925-7075-4275-9265-d0c5abd05d92"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operation>Met
adata</con:operation><con:request name="All iperf" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
<soapenv:Header/>
<soapenv:Body>
<nmwg:message type="MetadataKeyRequest"
@@ -6343,7 +6344,7 @@
}
resultList.each{
println "\n We have a match" + "\n"+ it.metadataId +" "+it.value+"
"+it.valueUnits
-
}</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="None of iperf"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operation>Metadata</con:operation><con:request
name="None of iperf" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService
</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
+
}</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="None of iperf"
id="e5e3327f-d752-4cb4-9787-26d7c98112bf"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MetadataRequest</con:interface><con:operation>Metadata</con:operation><con:request
name="None of iperf" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/perfsonar-java

-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
<soapenv:Header/>
<soapenv:Body>
<nmwg:message type="MetadataKeyRequest"
@@ -6355,10 +6356,13 @@
<nmwg:metadata id="m1">
<iperf:subject id="s1">
<nmwgt:endPointPair>
- <nmwgt:src value="131.188.81.61" type="ipv4"
port="5432"/>
- <nmwgt:dst value="131.188.81.12" type="ipv4"
port="5432"/>
+ <nmwgt:src value="131.188.81.62" type="ipv4"
port="5432"/>
+ <nmwgt:dst value="131.188.81.12" type="ipv4"
port="5432"/>
</nmwgt:endPointPair>
</iperf:subject>
+ <iperf:parameters>
+ <nmwg:parameter name="protocol" value="UDP"/>
+ </iperf:parameters>

<nmwg:eventType>http://ggf.org/ns/nmwg/tools/iperf/2.0</nmwg:eventType>
</nmwg:metadata>


Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/messages/EchoRequest.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/messages/EchoRequest.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/messages/EchoRequest.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -1,11 +1,5 @@
-/**
- * $Id$
- * Project: perfSONAR
- */
-
package org.perfsonar.service.base.messages;

-
import java.util.ArrayList;
import java.util.Map;

@@ -25,33 +19,19 @@
*/
public class EchoRequest extends Request
{
-
-
- // ---------------------------------- fields
-
-
public static final String ECHO_NAMESPACE =
"http://schemas.perfsonar.net/tools/admin/echo/2.0";;

-
- // ---------------------------------- constructors
-
-
public EchoRequest() throws PerfSONARException
{
-
super();
logger.debug("EchoRequest: MessageHandler created");
setType(ActionType.ECHO);
}


- // ---------------------------------- public methods
-
-
@Override
public Map<String, Metadata> mergeAllMetadata(Map<String, Metadata>
metadatas)
{
-
return metadatas;
}

@@ -59,16 +39,12 @@
@Override
public Message execute(Message reqMessage)
{
-
ArrayList<Message> output = new ArrayList<Message>();
for (Message inputMessage : extractMultipleRequests(reqMessage)) {
try {
- output.add(
- executeEcho(inputMessage));
+ output.add(executeEcho(inputMessage));
} catch (PerfSONARException e) {
- output.add(
- ResultCodesUtil.createResultCodeMetadata(
- null, e));
+ output.add(ResultCodesUtil.createResultCodeMetadata(null,
e));
}
}

@@ -82,7 +58,7 @@
new PerfSONARException(
"warning.common.no_metadata",
"No output metadata was returned by MessageHandler."
- + " Maybe there was no data trigger, or data trigger
"
+ + " Maybe there was no data trigger, or data trigger"
+ " didn't have valid metadataIdRef? ")
);

@@ -93,14 +69,12 @@
respMessage.setMessageIdRef(reqMessage.getId());

return respMessage;
-
}


protected Message executeEcho(Message request)
throws PerfSONARException
{
-
Data data = request.getDataArray()[0];
Metadata metadata = request.getMetadata(data.getMetadataIdRef());

@@ -110,8 +84,7 @@
+ "eventType element");
throw new PerfSONARException(
"error.request",
- "EchoRequest.executeEcho: The request does not contain "
- + "eventType element");
+ "EchoRequest.executeEcho: The request does not contain
eventType element");
}

Message response;
@@ -125,13 +98,11 @@
}

return response;
-
}


protected Message executeSimpleEcho()
{
-
logger.debug("EchoRequest: executeSimpleEcho()");

Message response = new Message();
@@ -144,13 +115,11 @@
ResultCodesUtil.createResultCodeMetadata(response, pex);

return response;
-
}


protected Message getEmptyEventTypeResponse()
{
-
Message response = new Message();

PerfSONARException pex =
@@ -161,7 +130,6 @@
ResultCodesUtil.createResultCodeMetadata(response, pex);

return response;
-
}



Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/OwampQueryGenerator.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/OwampQueryGenerator.java
2014-02-21 19:15:49 UTC (rev 6497)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/OwampQueryGenerator.java
2014-02-25 14:39:28 UTC (rev 6498)
@@ -1,6 +1,5 @@
package
org.perfsonar.service.measurementArchive.metadataConfig.queryGenerator;

-
import java.util.HashMap;
import java.util.Set;

@@ -14,19 +13,12 @@
import org.perfsonar.base.auxiliary.components.logger.LoggerComponent;
import org.perfsonar.base.exceptions.PerfSONARException;

-
/**
* Transforms nmwg message into xquery/xpath
* (query to fetch metadata with owamp data).
- *
- * @author fernandes
- * @autor <a
;>Piotr
Pikusa</a>
*/
public class OwampQueryGenerator implements MetadataQueryGenerator
{
- // -------------------------------------- class fields
-
-
protected LoggerComponent logger = null;

private final String[] parameters = {
@@ -35,33 +27,19 @@
"units", "one-way", "output", "phb", "wait", "padding", "direction"
};

- // -------------------------------------- constructors
-
-
public OwampQueryGenerator() throws PerfSONARException
{
-
try {
-
this.logger = (LoggerComponent)
- AuxiliaryComponentManager.
- getInstance().
+ AuxiliaryComponentManager.getInstance().
getComponent(ComponentNames.LOGGER);
} catch (PerfSONARException e) {
-
throw new PerfSONARException(
"error.common.no_logger",
- "OwampQueryGenerator.constructor: "
- + "Cannot get logger component");
-
+ "OwampQueryGenerator.constructor: Cannot get logger
component");
}
-
}

-
- // -------------------------------------- public methods
-
-
/**
* Returns xpath query created using the information
* stored in Message object.
@@ -70,14 +48,11 @@
public String getMetadataQuery(Message query)
throws PerfSONARException
{
-
-
if (query == null) {
logger.error("QUERY is null!");
throw new PerfSONARException(
"error.ma.query",
- "OwampQueryGenerator.getMetadataQuery: "
- + "Input message is null");
+ "OwampQueryGenerator.getMetadataQuery: Input message is
null");
}

String src = "";
@@ -101,7 +76,6 @@

HashMap<String, String> parametersMap = new HashMap<String,
String>();
if (metadata != null) {
-
eventType = (metadata.getEventType() != null ?
metadata.getEventType().getEventType().trim() : "");

Subject subject = (Subject) metadata.getSubject();
@@ -118,12 +92,10 @@
}
}

-
if (end != null) {
src = (end.getSourceElement() != null ?
end.getSourceElement().getValue().trim() : "");
dst = (end.getDestinationElement() != null ?
end.getDestinationElement().getValue().trim() : "");
}
-
}

String xQuery = "\n"
@@ -136,7 +108,6 @@
+ " for $i in //nmwg:metadata \n"
+ " where 1 \n";

-
if (!eventType.isEmpty()) {
xQuery += "and $i/nmwg:eventType[(text()='" + eventType + "')]";
}



  • [pS-dev] [GEANT/SA2/ps-java-services] r6498 - in trunk: perfsonar-java-sql-ma/src/main/java/org/perfso nar/service/measurementArchive/sqlType perfsonar-java-sql- ma/src/main/java/org/perfsonar/service/measurementArchive/ sqlType/dao perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/Int erfaceBased perfsonar_base/src/main/java/org/perfsonar/s ervice/base/messages perfsonar_base/src/main/java/org/pe rfsonar/service/measurementArchive/metadataConfig/queryGen erator, svn-noreply, 02/25/2014

Archive powered by MHonArc 2.6.16.

Top of Page