Skip to Content.
Sympa Menu

perfsonar-dev - r1646 - in branches/fernandes/perfsonar/src/org/perfsonar: commons/messages service/commons/engine service/measurementPoint/commandLine service/measurementPoint/commandLine/tools service/measurementPoint/commandLine/utils

Subject: perfsonar development work

List archive

r1646 - in branches/fernandes/perfsonar/src/org/perfsonar: commons/messages service/commons/engine service/measurementPoint/commandLine service/measurementPoint/commandLine/tools service/measurementPoint/commandLine/utils


Chronological Thread 
  • From:
  • To:
  • Subject: r1646 - in branches/fernandes/perfsonar/src/org/perfsonar: commons/messages service/commons/engine service/measurementPoint/commandLine service/measurementPoint/commandLine/tools service/measurementPoint/commandLine/utils
  • Date: Fri, 22 Sep 2006 08:56:37 -0400

Author: fernandes
Date: 2006-09-22 08:56:37 -0400 (Fri, 22 Sep 2006)
New Revision: 1646

Added:

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineCronComponent.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineScheduleRequest.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/tools/Schedule.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/BitManipulation.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/Entries.java
Modified:

branches/fernandes/perfsonar/src/org/perfsonar/commons/messages/MeasurementRequest.java

branches/fernandes/perfsonar/src/org/perfsonar/service/commons/engine/ActionType.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineAction.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineExec.java

branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineToolBundleFactory.java
Log:
MeasurementRequest now uses Request, supporting chaining
Corrected metadata chaining support of the CLMP
Added a CronLike Scheduler for CLMP that permits scheduling of measurements

Modified:
branches/fernandes/perfsonar/src/org/perfsonar/commons/messages/MeasurementRequest.java
===================================================================
---
branches/fernandes/perfsonar/src/org/perfsonar/commons/messages/MeasurementRequest.java
2006-09-22 12:51:31 UTC (rev 1645)
+++
branches/fernandes/perfsonar/src/org/perfsonar/commons/messages/MeasurementRequest.java
2006-09-22 12:56:37 UTC (rev 1646)
@@ -5,14 +5,14 @@

package org.perfsonar.commons.messages;

-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;

-import org.perfsonar.service.commons.exceptions.*;
+import org.perfsonar.service.commons.exceptions.SystemException;
+import org.perfsonar.service.commons.engine.ActionType;

-import org.ggf.ns.nmwg.base.v2_0.*;
+import org.ggf.ns.nmwg.base.v2_0.Metadata;

+import java.util.Map;
+
/**
* MessageHandler for MeasurementRequest messages
*
@@ -21,11 +21,6 @@
public class MeasurementRequest extends Request {


-
- // ---------------------------------- class fields
-
-
-
// ---------------------------------- constructors


@@ -33,145 +28,15 @@
public MeasurementRequest()
throws SystemException{

- type = new String("MeasurementRequest");
+ super();
+ logger.debug("MeasurementRequest: MessageHandler created");
+ setType(ActionType.MAKE_MEASUREMENT);
+
}

-
-
// ---------------------------------- public methods

-
-
- public Message execute(Message reqMessage) {
-
-
- // This method is just to eliminate errors related with exceptions.
- // This class should be updated by its author!!!
-
- Message message = null;
-
- try {
-
- message = _execute(reqMessage);
-
- } catch (Exception ex) {
-
- message = new Message();
-
- }
-
- return message;
-
- }
-

- /**
- * This method returns a Message that contains a Metadata describing
- * the actual test that happened and a Data containing the data.
- */
- protected Message _execute(Message reqMessage)
- throws
SystemException,ResourceException,DataFormatException,RequestException{
-
- logger.debug(getType() + ": MessageHandler.execute() message: " +
reqMessage.toString());
-
- Map mdMap = reqMessage.getMetadataMap();
- Map dataMap = reqMessage.getDataMap();
-
- Collection dataCollection = dataMap.values();
- logger.debug("metadataMap: " + mdMap + "\tdataMap: " + dataMap +
"\tdataCollection: " + dataCollection);
-
- /*
- * Prepare message to hold individual req's
- */
- Message atomReq = new Message();
- atomReq.setType(reqMessage.getType());
-
- Message respMessage = new Message();
-
- // TODO: replace with message objects!!
- logger.debug(getType() + ": Initialize service beans");
- Message atomResp = null;
-
- logger.debug(getType() + ": Iterate on data");
-
- if(dataCollection.size() < 1){
- logger.warn(getType() + ": No data element in request");
- }
-
- for (Iterator i = dataCollection.iterator(); i.hasNext(); ){
- Data reqdata = (Data)i.next();
- Metadata reqmd = (Metadata)mdMap.get(
- reqdata.getMetadataIdRef());
-
- if(reqmd == null){
- logger.fatal(
- getType() + ": Data element has empty
metaDataIdRef");
- throw new RequestException(
- getType() + ": Data element has empty
metaDataIdRef");
- }
-
- // TODO: Eventually chaining probably needs to be handled!
-
- logger.debug(
- getType() + ": Calling service engine");
-
- atomReq.clearData();
- atomReq.clearMetadata();
-
- atomReq.addChild(reqdata);
- atomReq.addChild(reqmd);
-
- atomResp = serviceEngine.takeAction(getType(),atomReq);
-
-
- // pull out data and metadata elements from atomResp
- // and put them in the response message.
-
- int hasData=0;
- for(Iterator j =
atomResp.getDataIterator();j.hasNext();hasData++){
- respMessage.addChild((Data)j.next());
- }
-
- // simplistic sanity checks
-
- if (hasData < 1){
- logger.fatal(
- "DataRequest.metaToKey: returned no data");
- throw new RequestException(
- "DataRequest.metaToKey: returned no data");
- }
-
- int hasMd=0;
- for(Iterator j
=atomResp.getMetadataIterator();j.hasNext();hasMd++){
- respMessage.addChild((Metadata)j.next());
- }
-
- // XXX: Do better than these simplistic sanity checks!!!
-
- if (hasMd < 1){
- logger.fatal(
- "DataRequest.metaToKey: returned no Metadata");
- throw new RequestException(
- "DataRequest.metaToKey: returned no Metadata");
- }
-
- if(hasData > hasMd){
- logger.fatal("MetadataKeyRequest: Invalid data/metadata " +
- "mapping returned from service");
- throw new RequestException(
- "MetadataKeyRequest: Invalid data/metadata " +
- "mapping returned from service");
-
- }
- }
-
- logger.debug(getType() +
- "returning respMessage = " + respMessage.toString());
-
- return respMessage;
- }
-
-
public Map<String,Metadata> mergeAllMetadata(Map<String,Metadata>
metadatas) {

return metadatas;

Modified:
branches/fernandes/perfsonar/src/org/perfsonar/service/commons/engine/ActionType.java
===================================================================
---
branches/fernandes/perfsonar/src/org/perfsonar/service/commons/engine/ActionType.java
2006-09-22 12:51:31 UTC (rev 1645)
+++
branches/fernandes/perfsonar/src/org/perfsonar/service/commons/engine/ActionType.java
2006-09-22 12:56:37 UTC (rev 1646)
@@ -72,4 +72,27 @@

public static final String TOPS_DOWNLOAD_DB = "TOPS_DOWNLOAD_DB";

+
+
+ // --------------------------------------------- Measurement Point
Actions
+
+
+
+ /**
+ * Action type to request a measurement
+ */
+
+ public static final String MAKE_MEASUREMENT = "MeasurementRequest";
+
+
+
+
+ // -----------------------------------------
+
+
+
+ public static final String ECHO = "ECHO";
+
+
+
}

Modified:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineAction.java
===================================================================
---
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineAction.java
2006-09-22 12:51:31 UTC (rev 1645)
+++
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineAction.java
2006-09-22 12:56:37 UTC (rev 1646)
@@ -101,83 +101,34 @@
}

// Fetch eventType and dispatch appropriate "tool bundle"
- Map mdMap = reqMess.getMetadataMap();
- Collection mdCollection = mdMap.values();

- // XXX: For now, CommandLineMP doesn't know how to deal with
- // chaining!
- if(mdCollection.size() == 0){
- logger.fatal(
- ME_TYPE +
- ": Request must have at least one MetaData."
- );
- throw new RequestException(
- "error.mp.clmp.validator.no_metadata_elements",
- ME_TYPE +
- ": Request must have at least one MetaData."
- );
- }
+ Data[] data = reqMess.getDataArray();

- Metadata[] mdArr = (Metadata[])mdCollection.toArray(
- new Metadata[mdCollection.size()]);
-
- Metadata eventType = mdArr[0];
-
- if (eventType != null) {
- while (eventType.getEventType() == null) {
-
- if (eventType.getMetadataIdRef().length() > 0)
- eventType =
reqMess.getMetadata(eventType.getMetadataIdRef());
- else {
- logger.fatal(
- ME_TYPE +
- ": Request must have at least one EventType
defined in at least one MetaData."
- );
- throw new RequestException(
-
"error.mp.clmp.validator.no_metadata_eventType",
- ME_TYPE +
- ": Request must have at least one EventType
defined in at least one MetaData."
- );
- }
- }
- } else {
+ Metadata eventType = reqMess.getMetadata(data[0].getMetadataIdRef());
+
+ while (eventType.getEventType() == null) {

- logger.fatal(
- ME_TYPE +
- ": Request must have at least one EventType defined in
at least one MetaData."
- );
- throw new RequestException(
- "error.mp.clmp.validator.no_metadata_eventType",
- ME_TYPE +
- ": Request must have at least one EventType defined in
at least one MetaData."
- );
+ if (eventType.getMetadataIdRef().length() > 0)
+ eventType =
reqMess.getMetadata(eventType.getMetadataIdRef());
+ else {
+ logger.fatal(
+ ME_TYPE +
+ ": Request must have at least one
EventType defined in at least one MetaData."
+ );
+ throw new RequestException(
+
"error.mp.clmp.validator.no_metadata_eventType",
+ ME_TYPE +
+ ": Request must have at least one
EventType defined in at least one MetaData."
+ );
+ }
}

CommandLineToolBundle tool =
CommandLineToolBundleFactory.getCommandLineToolBundle(
eventType.getEventType());
-
- /*
- * Is this really necessary? The method above already checks if
- * tool is null, it will never return null, already throws
- * SystemException.
- *
- * if(tool == null){
-
- logger.fatal(
- ME_TYPE +
- ": Unable to find Tool abstraction for eventType = " +
- mdArr[0].getEventType().getEventType()
- );
- throw new SystemException(
- "error.mp.clmp.cant_find_tool",
- ME_TYPE +
- ": Unable to find Tool abstraction for eventType = " +
- mdArr[0].getEventType().getEventType()
- );
- }*/

return tool.runTool(reqMess);
+
}

// ------------------------------------------------------ Protected
methods

Added:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineCronComponent.java


Property changes on:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineCronComponent.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native

Modified:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineExec.java
===================================================================
---
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineExec.java
2006-09-22 12:51:31 UTC (rev 1645)
+++
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineExec.java
2006-09-22 12:56:37 UTC (rev 1646)
@@ -140,7 +140,7 @@
{
if(!done){
throw new SystemException(
- "error.mp.clmp.exec.exit_request"
+ "error.mp.clmp.exec.exit_request",
"MyExec: Exit code requested for still running proc"
);
}

Added:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineScheduleRequest.java


Property changes on:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineScheduleRequest.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native

Modified:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineToolBundleFactory.java
===================================================================
---
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineToolBundleFactory.java
2006-09-22 12:51:31 UTC (rev 1645)
+++
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/CommandLineToolBundleFactory.java
2006-09-22 12:56:37 UTC (rev 1646)
@@ -83,6 +83,8 @@

"org.perfsonar.service.measurementPoint.commandLine.tools.Traceroute");
m2c.put("BWCTL",

"org.perfsonar.service.measurementPoint.commandLine.tools.Bwctl");
+ m2c.put("SCHEDULE",
+
"org.perfsonar.service.measurementPoint.commandLine.tools.Schedule");
}



Added:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/tools/Schedule.java


Property changes on:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/tools/Schedule.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native

Added:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/BitManipulation.java


Property changes on:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/BitManipulation.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native

Added:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/Entries.java


Property changes on:
branches/fernandes/perfsonar/src/org/perfsonar/service/measurementPoint/commandLine/utils/Entries.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native



  • r1646 - in branches/fernandes/perfsonar/src/org/perfsonar: commons/messages service/commons/engine service/measurementPoint/commandLine service/measurementPoint/commandLine/tools service/measurementPoint/commandLine/utils, svnlog, 09/22/2006

Archive powered by MHonArc 2.6.16.

Top of Page