perfsonar-dev - perfsonar: r5017 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: samples/requests src/main/java/org/perfsonar/service/measurementArchive/rrdType
Subject: perfsonar development work
List archive
perfsonar: r5017 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: samples/requests src/main/java/org/perfsonar/service/measurementArchive/rrdType
Chronological Thread
- From:
- To:
- Subject: perfsonar: r5017 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: samples/requests src/main/java/org/perfsonar/service/measurementArchive/rrdType
- Date: Wed, 4 Mar 2009 08:37:38 -0500
Author: roman
Date: 2009-03-04 08:37:38 -0500 (Wed, 04 Mar 2009)
New Revision: 5017
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-random-fetch-test.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-self-test.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-xmldb-access-test.xml
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-xmldb-content-test.xml
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/EchoServiceEngine.java
Log:
selftests added
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-random-fetch-test.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-self-test.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-xmldb-access-test.xml
Added:
branches/new-structure-with-base2/ps-mdm-rrd-ma/samples/requests/EchoRequest-xmldb-content-test.xml
Modified:
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/EchoServiceEngine.java
===================================================================
---
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/EchoServiceEngine.java
2009-03-04 13:34:40 UTC (rev 5016)
+++
branches/new-structure-with-base2/ps-mdm-rrd-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/EchoServiceEngine.java
2009-03-04 13:37:38 UTC (rev 5017)
@@ -3,21 +3,24 @@
import org.perfsonar.base2.service.exceptions.PerfSONARException;
import org.perfsonar.base2.service.requesthandler.ServiceEngine;
import org.perfsonar.base2.service.requesthandler.ServiceMessage;
+import org.perfsonar.base2.service.configuration.ConfigurationManager;
+import org.perfsonar.base2.service.configuration.Configuration;
import org.perfsonar.base2.service.util.ResultCodesUtil;
+
import org.perfsonar.base2.xml.nmwg.Message;
import org.perfsonar.base2.xml.nmwg.Metadata;
import org.perfsonar.base2.xml.nmwg.Data;
+import org.perfsonar.base2.xml.nmwg.Key;
import org.perfsonar.base2.xml.nmwg.EventType;
import org.perfsonar.base2.xml.Element;
-import org.perfsonar.base2.service.configuration.ConfigurationManager;
-import org.perfsonar.base2.service.configuration.Configuration;
-
import
org.perfsonar.service.measurementArchive.rrdType.storage.MetadataStorageDAO;
import
org.perfsonar.service.measurementArchive.rrdType.storage.MetadataStorageDAOFactory;
+import
org.perfsonar.service.measurementArchive.rrdType.storage.DataStorageDAO;
+import
org.perfsonar.service.measurementArchive.rrdType.storage.DataStorageDAOFactory;
+
import java.util.Collection;
-
import org.apache.log4j.Logger;
/**
@@ -26,9 +29,12 @@
public class EchoServiceEngine extends
org.perfsonar.base2.service.requesthandler.EchoServiceEngine {
+ // ------------------------------------------------------------- class
fields
+
+
private static final Logger logger =
Logger.getLogger(EchoServiceEngine.class.getName());
- public static final String ECHO_SELF_TEST =
"http://schemas.perfsonar.net/tools/admin/selftest";
+// public static final String ECHO_SELF_TEST =
"http://schemas.perfsonar.net/tools/admin/selftest";
public static final String ECHO_RANDOM_FETCH_TEST =
"http://schemas.perfsonar.net/tools/admin/selftest/1.0/random-fetch-test";
public static final String ECHO_XMLDB_ACCESS_TEST =
"http://schemas.perfsonar.net/tools/admin/selftest/1.0/xmldb-access-test";
public static final String ECHO_XMLDB_CONTENT_TEST =
"http://schemas.perfsonar.net/tools/admin/selftest/1.0/xmldb-content-test";
@@ -39,7 +45,12 @@
protected String serviceType = "";
protected String serviceName = "";
+ protected static final String
RANDOM_FETCH_TEST_SUCCESS_RESULT_CODE_RESPONSE = "Fetching data from rrd file
is correct.";
+
+ // ------------------------------------------------------------- methods
+
+
public void takeAction(ServiceMessage serviceRequest, ServiceMessage
serviceResponse)
throws PerfSONARException {
@@ -54,10 +65,10 @@
Message request = serviceRequest.getMessageElement();
String eventType = getEventType(request);
if (eventType.equals(ECHO_EVENT_TYPE)) response = simpleEchoAction();
- else if (eventType.equals(ECHO_SELF_TEST)) response =
selfTestAction();
- else if (eventType.equals(ECHO_RANDOM_FETCH_TEST)) response =
randomFetchTestAction();
- else if (eventType.equals(ECHO_XMLDB_ACCESS_TEST)) response =
xmldbAccessTestAction(request);
- else if (eventType.equals(ECHO_XMLDB_CONTENT_TEST)) response =
xmldbContentTestAction();
+ else if (eventType.equals(ECHO_SELF_TEST+"/1.0")) response =
selfTestAction();
+ else if (eventType.equals(ECHO_RANDOM_FETCH_TEST)) response =
randomFetchTestAction(request, "random-fetch-test");
+ else if (eventType.equals(ECHO_XMLDB_ACCESS_TEST)) response =
xmldbSimpleTestAction(request, "xmldb-access-test");
+ else if (eventType.equals(ECHO_XMLDB_CONTENT_TEST)) response =
xmldbSimpleTestAction(request, "xmldb-content-test");
else errorCode();
response.setId("Resp_" + request.getAttribute("id"));
@@ -74,54 +85,151 @@
protected Message selfTestAction() throws PerfSONARException {
- return null;
+
+ Message[] testResponses = new Message[3];
+ testResponses[0] =
randomFetchTestAction(getNewEchoMessage("EchoRequest",
ECHO_RANDOM_FETCH_TEST), "random-fetch-test");
+ testResponses[1] =
xmldbSimpleTestAction(getNewEchoMessage("EchoRequest",
ECHO_XMLDB_ACCESS_TEST), "xmldb-access-test");
+ testResponses[2] =
xmldbSimpleTestAction(getNewEchoMessage("EchoRequest",
ECHO_XMLDB_CONTENT_TEST), "xmldb-content-test");
+
+ Message response = getNewEchoMessage("EchoResponse",
ECHO_SELF_TEST+"/1.0");
+ Data responseData = (Data)
response.getDataCollection().iterator().next();
+
+ Metadata metadata = null;
+ Data data = null;
+
+ for (int i = 0; i < testResponses.length; i++) {
+
+ metadata = (Metadata)
testResponses[i].getMetadataCollection().iterator().next();
+ data = (Data)
testResponses[i].getDataCollection().iterator().next();
+
+ metadata.setId(metadata.getId() + "_t" + i);
+ data.setId(data.getId() + "_t" + i);
+ data.setMetadataIdRef(metadata.getId());
+
+ responseData.addChild(metadata);
+ responseData.addChild(data);
+
+ }
+
+ return response;
+
}
- protected Message randomFetchTestAction() throws PerfSONARException {
- return null;
+ protected Message randomFetchTestAction(Message request, String
testName) {
+
+ try {
+
+ Element element = getMetadataConfigurationElements(request);
+ if (element == null)
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/failure/1.0",
+ "No data elements in the metadata configuration.");
+
+ Key key = ((Data)element).getKey();
+ if (key == null)
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/failure/1.0",
+ "No key in data element with id='" + element.getId() +"'
in the metadata configuration.");
+
+ Metadata metadata = new Metadata();
+ metadata.setKey(key);
+ Data data = new Data();
+ data.setMetadataIdRef(metadata.getId());
+ Message dataRequest = new Message();
+ dataRequest.setMetadata(metadata);
+ dataRequest.setData(data);
+
+ DataStorageDAO dao = DataStorageDAOFactory.getDAO();
+ Data fetchedData = dao.fetch(dataRequest);
+
+ if (fetchedData != null)
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/success/1.0",
+ RANDOM_FETCH_TEST_SUCCESS_RESULT_CODE_RESPONSE);
+ else
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/failure/1.0",
+ "No data fetched from rrd file.");
+
+
+ } catch (PerfSONARException ex) {
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/failure/1.0",
+ ex.getResultDescription());
+ }
+
}
- protected Message xmldbAccessTestAction(Message request) {
+ protected Message xmldbSimpleTestAction(Message request, String
testName) {
try {
- MetadataStorageDAO dao = MetadataStorageDAOFactory.getDAO();
- Collection<Element> results = dao.fetch(request);
- Element element = null;
+ Element element = getMetadataConfigurationElements(request);
- if (results != null)
- if (results.size() == 1)
- element = results.iterator().next();
-
if (element != null)
- return getResultMessage(ECHO_SELF_TEST + "/" + serviceType +
"/" + serviceName.replace(' ', '_') + "/xmldbAccessTest/success/1.0", (Data)
element);
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/success/1.0",
+ (Data) element);
else
throw new PerfSONARException(
"test_exception",
- "could not get element from xml db");
+ "Could not get element from xml db.");
} catch (PerfSONARException ex) {
- return getResultMessage(ECHO_SELF_TEST + "/" + serviceType + "/"
+ serviceName.replace(' ', '_') + "/xmldbAccessTest/failure/1.0",
ex.getResultDescription());
+ return getResultMessage(
+ ECHO_SELF_TEST + "/" + serviceType + "/" +
serviceName.replace(' ', '_') + "/" + testName + "/failure/1.0",
+ ex.getResultDescription());
}
}
- protected Message xmldbContentTestAction() throws PerfSONARException {
- return null;
+ protected Element getMetadataConfigurationElements(Message request)
+ throws PerfSONARException {
+
+ MetadataStorageDAO dao = MetadataStorageDAOFactory.getDAO();
+ Collection<Element> results = dao.fetch(request);
+ Element element = null;
+
+ if (results != null)
+ if (results.size() == 1)
+ element = results.iterator().next();
+
+ return element;
+
}
+ protected Message getNewEchoMessage(String messageType, String eventType)
+ throws PerfSONARException {
+ Message message = new Message();
+ message.setType(messageType);
+
+ Metadata metadata = new Metadata();
+ EventType evt = new EventType(eventType, "nmwg");
+ metadata.addChild(evt);
+ message.setMetadata(metadata);
+
+ Data data = new Data();
+ data.setMetadataIdRef(metadata.getId());
+ message.setData(data);
+
+ return message;
+
+ }
+
+
protected void errorCode() throws PerfSONARException {
throw new PerfSONARException(
- "Wrong echo eventType value in the request");
+ "query_exception",
+ "Wrong echo eventType value in the request.");
}
+/*
+ protected Message getResultMessage(String eventType, String description)
{
- public static Message getResultMessage(String eventType, String
description) {
-
Metadata meta = new Metadata("result-code", "nmwg");
EventType evt = new EventType(eventType, "nmwg");
meta.addChild(evt);
@@ -136,7 +244,7 @@
}
- public static Message getResultMessage(String eventType, Data data) {
+ protected Message getResultMessage(String eventType, Data data) {
Metadata meta = new Metadata("result-code", "nmwg");
EventType evt = new EventType(eventType, "nmwg");
@@ -148,7 +256,7 @@
}
- public static Message getResultMessage(Metadata meta, Data data) {
+ protected Message getResultMessage(Metadata meta, Data data) {
Message message = new Message();
@@ -158,6 +266,6 @@
return message;
}
+*/
-
} //EchoServiceEngine
\ No newline at end of file
- perfsonar: r5017 - in branches/new-structure-with-base2/ps-mdm-rrd-ma: samples/requests src/main/java/org/perfsonar/service/measurementArchive/rrdType, svnlog, 03/04/2009
Archive powered by MHonArc 2.6.16.