Skip to Content.
Sympa Menu

perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r5834 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType

Subject: perfsonar development work

List archive

[pS-dev] [GEANT/SA2/ps-java-services] r5834 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType


Chronological Thread 
  • From:
  • To:
  • Subject: [pS-dev] [GEANT/SA2/ps-java-services] r5834 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType
  • Date: Thu, 1 Sep 2011 16:18:28 +0100

Author: psnc.pikusa
Date: 2011-09-01 16:18:28 +0100 (Thu, 01 Sep 2011)
New Revision: 5834

Modified:

trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/SetupDataServiceEngine.java
Log:
Developed and refactored methods that service SetupDataKeyRequest

Modified:
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/SetupDataServiceEngine.java
===================================================================
---
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/SetupDataServiceEngine.java
2011-09-01 15:17:50 UTC (rev 5833)
+++
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/SetupDataServiceEngine.java
2011-09-01 15:18:28 UTC (rev 5834)
@@ -34,7 +34,7 @@

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

- //private static final Logger logger =
Logger.getLogger(SetupDataServiceEngine.class.getName());
+ private static final Logger logger =
Logger.getLogger(SetupDataServiceEngine.class.getName());


// ------------------------------------------------------------- methods
@@ -42,19 +42,35 @@

public void takeAction(ServiceMessage serviceRequest, ServiceMessage
serviceResponse)
throws PerfSONARException {
+ Message response = new Message();
+ DataStorageDAO dao = DataStorageDAOFactory.getDAO();

- // process the base chaining
- // request = messageProcess(request);
-
+
+
Message request = (Message)serviceRequest.getElement();
- HashMap<Metadata, Data> pairs = getMetadataDataPairs(request);
+ logger.info("REQUEST:\n "+request.getText());
+ HashMap<Metadata, Data> pairs = getMetadataDataPairs(request);
+ HashMap<Metadata, Data> pairsToQuery = checkMetadata(pairs);

+ if(pairsToQuery.size() == 0){
+ for (Metadata metadata : pairs.keySet()) {
+ Message dReq = new Message();
+ dReq.addChild(metadata);
+ Data fetchedData = dao.fetch(dReq);
+ fetchedData.setMetadataIdRef(metadata.getId());
+
+ response.addChild(metadata);
+ response.addChild(fetchedData);
+ }
+ }else{
+
+ }


/*TEMP: IMPORTANT EVERYTHING WHAT IS BELOW IS OLD CODE. The new code
is up*/

- Message response = new Message();
- DataStorageDAO dao = DataStorageDAOFactory.getDAO();
+ //Message response = new Message();
+ //DataStorageDAO dao = DataStorageDAOFactory.getDAO();
getRequestKey(serviceRequest, serviceResponse);

Message keyMessage = (Message) serviceResponse.getElement();
@@ -102,6 +118,13 @@
int dataCounter = 0;
int metadataCounter = 0;

+ if(message.getDataMap() == null){
+ throw new PerfSONARException("query_exception","There is no
data entries in the request");
+ }
+ if(message.getMetadataMap() == null){
+ throw new PerfSONARException("query_exception","There is no
metadata entries in the request");
+ }
+
//This searching is O(n^2) but for most cases it will be fast because
of few pairs in request (most often only one)
for (Data data : message.getDataMap().values()) {
dataCounter++;
@@ -113,8 +136,9 @@
}
}
}
-
- if(metadataCounter != dataCounter) throw new
PerfSONARException("wrong_message","metadata and data counter doesn't match");
+ logger.info("DataCounter: " + dataCounter);
+ logger.info("MetaDataCounter: " + metadataCounter);
+ if(metadataCounter != dataCounter) throw new
PerfSONARException("query_exception","metadata and data counter doesn't
match");

return pairs;
}
@@ -122,7 +146,7 @@

/**
* It cheks metadata if it includes the full key. If it does, then there
is no query to SQL database, what saves time. It returns
- * the map with metadata, data pairs, where metadatas doesn't include
the full key
+ * the map with metadata-data pairs, where metadatas don't include the
full key
* @param pairs
* @return
*/
@@ -131,25 +155,60 @@
HashMap<Metadata, Data> _pairs = new HashMap<Metadata, Data>();

for (Metadata metadata : pairs.keySet()) {
- if (metadata.getKey() != null){
-
if(metadata.getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";) !=
null){
-
if(metadata.getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";).getFirstParameterValue("file")
== null){
- _pairs.put(metadata,
(Data)pairs.get(metadata));
- continue;
- }
- }else{
- _pairs.put(metadata, (Data)pairs.get(metadata));
- continue;
- }
- }else{
- _pairs.put(metadata, (Data)pairs.get(metadata));
- continue;
- }
+ //First check if key is included and the most important
parameter - file is in. If not other metadata params don't have to be checked
+ if (metadata.getKey()== null ||
+
metadata.getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";) == null ||
+
metadata.getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";).getFirstParameterValue("file")
== null){
+
+ if( ((Data)pairs.get(metadata)).getKey() == null ||
+
((Data)pairs.get(metadata)).getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";)
== null ||
+
((Data)pairs.get(metadata)).getKey().getParameters("http://ggf.org/ns/nmwg/base/2.0/";).getFirstParameterValue("file")
== null){
+
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+
+ }else{
+
metadata.setKey(((Data)pairs.get(metadata)).getKey());
+ }
+ }
+ else{
+ if (metadata.getSubject() != null) {
+ Element interf =
metadata.getSubject().getFirstChild("interface");
+ if (interf != null) {
+ if(interf.getFirstChild("ifAddress") ==
null || interf.getFirstChild("ifAddress").getText().trim().equals("")){
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+ }
+ if(interf.getFirstChild("hostName") == null
|| interf.getFirstChild("hostName").getText().trim().equals("")){
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+ }
+ if(interf.getFirstChild("ifName") == null
|| interf.getFirstChild("ifName").getText().trim().equals("")){
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+ }
+ if(interf.getFirstChild("direction") ==
null || interf.getFirstChild("direction").getText().trim().equals("")){
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+ }
+ if(interf.getFirstChild("capacity") == null
|| interf.getFirstChild("capacity").getText().trim().equals("")){
+ _pairs.put(metadata,
(Data)pairs.get(metadata));
+ continue;
+ }
+ }else{
+ throw new PerfSONARException(
+ "query_exception",
+ "no interface element in metadata
element");
+ }
+ } else {
+ throw new PerfSONARException(
+ "query_exception",
+ "no subject element in metadata element");
+ }
+ }
}
+ return _pairs;

-
- return pairs;
-
}





  • [pS-dev] [GEANT/SA2/ps-java-services] r5834 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType, svn-noreply, 09/01/2011

Archive powered by MHonArc 2.6.16.

Top of Page