Skip to Content.
Sympa Menu

perfsonar-dev - r1582 - trunk/perfsonar/src/org/perfsonar/service/topologyService

Subject: perfsonar development work

List archive

r1582 - trunk/perfsonar/src/org/perfsonar/service/topologyService


Chronological Thread 
  • From:
  • To:
  • Subject: r1582 - trunk/perfsonar/src/org/perfsonar/service/topologyService
  • Date: Thu, 31 Aug 2006 05:45:30 -0400

Author: ulisses.alonso
Date: 2006-08-31 05:45:29 -0400 (Thu, 31 Aug 2006)
New Revision: 1582

Modified:

trunk/perfsonar/src/org/perfsonar/service/topologyService/TopServiceEngine.java
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsAction.java

trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsDownloadDBAction.java

trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsJDBCComponent.java

trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsLSRegistrationComponent.java
Log:

- New XML output, still fails converting to DOM
- result codes introduced:

error.tops.dependency
error.tops.fetching



Modified:
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopServiceEngine.java
===================================================================
---
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopServiceEngine.java
2006-08-29 22:33:50 UTC (rev 1581)
+++
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopServiceEngine.java
2006-08-31 09:45:29 UTC (rev 1582)
@@ -90,8 +90,7 @@

if (logger == null) {
String m= "TopologyServiceEngine: can't obtain Logger object";
- logger.error(m);
- throw new SystemException(m);
+ throw new SystemException("error.tops.dependency", m);
}

logger.debug("TopServiceEngine: starting... ");
@@ -105,7 +104,7 @@
if (topsJDBC == null) {
String m = "TopServiceEngine: can't obtain [" +
TOPS_JDBC_COMPONENT + "] object";
logger.error(m);
- throw new SystemException(m);
+ throw new SystemException("error.tops.dependency", m);
}

logger.debug("TopServiceEngine: forcing jdbc initialization");
@@ -115,9 +114,9 @@

if (jdbc == null) {

- String m = "TopServiceEngine: can't obtain jdbc connection from
component";
+ String m = "TopServiceEngine: can't obtain jdbc connection from
the component";
logger.error(m);
- throw new SystemException(m);
+ throw new SystemException("error.tops.dependency", m);
}

String mm = "TopServiceEngine: trying to get registrator component";
@@ -127,9 +126,9 @@
getInstance().getComponent(TOPS_REGISTRATOR_COMPONENT);

if (topsRegistration == null) {
- String m = "TopServiceEngine: can't obtain [" +
TOPS_REGISTRATOR_COMPONENT + "] object";
+ String m = "TopServiceEngine: can't obtain [" +
TOPS_REGISTRATOR_COMPONENT + "] component";
logger.error(m);
- throw new SystemException(m);
+ throw new SystemException("error.tops.dependency", m);
}

logger.debug("TopServiceEngine: started ");
@@ -189,17 +188,13 @@

if (!actionTypeCanBeSatisfied) {

- logger.fatal("TopServiceEngine: ActionType specified: "
- + actionType + " is not supported");
- throw new SystemException("TopServiceEngine: "
- + "ActionType specified: "+ actionType
- + " is not supported");
+ String m= "TopServiceEngine: ActionType specified: " + actionType
+ " is not supported";
+ logger.info(m);
+ throw new SystemException("error.common.action_not_supported",
m);
}

- logger.debug(
- "TopServiceEngine: action valid for this ServiceEngine, " +
- "serving");
-
+ logger.debug("TopServiceEngine: action valid for this ServiceEngine:
" + actionType);
+
//Create response
Message response = null;

@@ -212,18 +207,18 @@
response = action.performAction(request);

} else {
-
- throw new SystemException("TopServiceEngine: Action ["
- +actionType+"] not supported");
+ String m= "TopServiceEngine: Action [" +actionType +"] not
supported";
+ logger.info(m);
+ throw new SystemException("error.common.action_not_supported",
m);
}

// ------end of serving actions
---------------------------------------

- // logger.debug("TopServiceEngine: takeAction: returning the
message");
- // return the Message
String m;
m= "finally response in Topology Service:\n" +
XMLUtils.serializeXML(response);
+
logger.debug(m);
+
return response;

} //takeAction

Modified:
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsAction.java
===================================================================
--- trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsAction.java
2006-08-29 22:33:50 UTC (rev 1581)
+++ trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsAction.java
2006-08-31 09:45:29 UTC (rev 1582)
@@ -155,7 +155,8 @@


/**
- * Generates result code
+ * @author: Maciej Glowiak
+ *
* @param resultCode textual result code (result.success OR
result.error),
* put into Metadata
* @param details textual description (will be put in Data block);
@@ -163,33 +164,34 @@
* @return ResultCode (Metadata+Data)
*/
protected ResultCode createResultCode(String resultCode, String details)
{
-
- ResultCode res = new ResultCode();
- Metadata metadata = new Metadata();
- metadata.setId("resultCodeMetadata");
-
- EventType eventType = new EventType();
- eventType.setEventType(resultCode);
- metadata.setEventType(eventType);
+
+ ResultCode res = new ResultCode();
+ Metadata metadata = new Metadata();
+ metadata.setId("resultCodeMetadata");
+
+ EventType eventType = new EventType();
+ eventType.setEventType(resultCode);
+ metadata.setEventType(eventType);
+
+ res.setMetadata(metadata);
+
+ if (details!=null) {
+
+ Data data = new Data();
+
+ Datum datum = new Datum();
+
+ data.setId("resultCodeData");
+ data.setMetadataIdRef("resultCodeMetadata");
+ datum.setValue(details);
+ data.setDatum(datum);
+
+ res.setData(data);
+
+ }
+ return res;
+ }

- res.setMetadata(metadata);
-
- if (details!=null) {
-
- Data data = new Data();
-
- Datum datum = new Datum();
-
- data.setId("resultCodeData");
- data.setMetadataIdRef("resultCodeMetadata");
- datum.setValue(details);
- data.setDatum(datum);
-
- res.setData(data);
-
- }
- return res;
- }

// ----------------------------------------------- Abstract methods

@@ -214,8 +216,8 @@

public Data getData() {
return data;
- }
-
+ }
+
public void setData(Data data) {
this.data = data;
}

Modified:
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsDownloadDBAction.java
===================================================================
---
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsDownloadDBAction.java
2006-08-29 22:33:50 UTC (rev 1581)
+++
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsDownloadDBAction.java
2006-08-31 09:45:29 UTC (rev 1582)
@@ -5,12 +5,10 @@
import org.ggf.ns.nmwg.topology.base.v3_0.*;
import org.ggf.ns.nmwg.topology.l3.v3_0.*;
import org.perfsonar.commons.util.XMLUtils;
-import org.perfsonar.service.commons.exceptions.DataFormatException;
-import org.perfsonar.service.commons.exceptions.RequestException;
-import org.perfsonar.service.commons.exceptions.SystemException;
import org.perfsonar.service.commons.storage.StorageManager;
+import org.perfsonar.service.commons.exceptions.*;

-import java.util.Hashtable;
+import java.util.*;

import java.sql.*; // for jdbc

@@ -52,7 +50,6 @@

public Message performAction(Message request) throws SystemException,
RequestException, DataFormatException {

- Hashtable<Integer, String> nodes_interfaces;
String m;

logger.debug("TopServiceEngine: performing TopsDownloadDBAction...");
@@ -60,38 +57,59 @@
Message response = new Message();

response.setType("TOPSDownloadDBResponse");
- Metadata responseMetadata = new Metadata();
+ // Metadata responseMetadata = new Metadata();

- responseMetadata.setId("TOPSDownloadDBResponseMetadata");
- response.addChild(responseMetadata);
-
Data responseData = new Data();
Data nodesData = new Data();
Data networksData = new Data();

responseData.setId("TOPSDownloadDBResponse");

- responseData.setMetadata(responseMetadata); // Maciej says
.addChild(responseMetadata); is equivalent
responseData.setMetadataIdRef("TOPSDownloadDBResponseMetadata");

// fill the responseData, first networks, nodes afterwards because
nodes will
// use references to the network interfaces

- nodes_interfaces= fillNodesNetworks(networksData);
- //nodes_interfaces= new Hashtable<Integer, String>(1);
- //fillNodes(nodesData, nodes_interfaces);
+ fillNodesNetworks(networksData);
+ fillNodes(nodesData);

// We insert the Networks and the Nodes separately or because adding
networks and Nodes
// doesn't has an ordering, and there after networks and links will
be inter-mixed

responseData.addChild(networksData);
- // responseData.addChild(nodesData);
-
+ responseData.addChild(nodesData);
response.addChild(responseData); // this is equivalent to
response.setData(responseData);

+ networksData.setMetadataIdRef("TOPSDownloadDBResponseMetadata");
+ nodesData.setMetadataIdRef("TOPSDownloadDBResponseMetadata");
+
+ response.addChild(networksData);
+ response.addChild(nodesData);
+
+ // Append success result code
+
+ ResultCode rc = createResultCode("result.success",
"TopsDownloadDBAction: full download of the database successful");
+ Metadata[] responseMetadata = { rc.getMetadata() };
+ Data[] resultData = null;
+
+ if (rc.getData() != null) {
+ resultData = new Data[1];
+ resultData[0] = rc.getData();
+ }
+
+ // responseMetadata.setId("TOPSDownloadDBResponseMetadata");
+
+ response.addChild(resultData[0]);
+
+ for(int j=0; j< responseMetadata.length; j++){
+ response.addChild(responseMetadata[j]);
+ }
+
+ // TODO: remove
+
m= "TopServiceEngine: final response is:\n" +
XMLUtils.serializeXML(response);
logger.debug(m);
-
+
return response;
}

@@ -357,7 +375,7 @@
return conv[ifType];
}

- protected void
fillNetworkInterfaces(org.ggf.ns.nmwg.topology.l3.v3_0.Link link, int
network_oid, Hashtable<Integer, String> nodes_interfaces)
+ protected void
fillNetworkInterfaces(org.ggf.ns.nmwg.topology.l3.v3_0.Link link, int
network_oid)

throws SystemException {

@@ -374,7 +392,6 @@
ResultSet rs;
Long speed;
String interface_ref;
- int i= 0;

try {

@@ -383,8 +400,10 @@

while(rs.next()) {

+ Integer i;

- interface_ref = "private_index: " + i;
+ i= rs.getInt(9); // We use the object id of the interface as
both key and reference
+ interface_ref= i.toString();

org.ggf.ns.nmwg.topology.l3.v3_0.Interface iface=
new org.ggf.ns.nmwg.topology.l3.v3_0.Interface();
@@ -405,20 +424,11 @@

ifindex.setIfIndex(rs.getString(5));
iface.setIfIndexElement(ifindex);
-
- interface_ref+= "snmp_ifindex: " + rs.getString(5);
-
- } else {
-
- interface_ref+= ", snmp_ifindex: unknown";
+
}

iface.setInterfaceIdRef(interface_ref);

- nodes_interfaces.put(rs.getInt(9), interface_ref);
-
- ///
-
if (rs.getString(6) != null) {

org.ggf.ns.nmwg.topology.l3.v3_0.IfDescription
ifdescription=
@@ -452,19 +462,21 @@

link.addChild(iface);

- i++;
-
} // end of while()

} catch (SQLException e) {

- throw new SystemException("TopServiceEngine:
fillNetworkInterfaces: error while fetching from the database:" +
e.getMessage());
+ String m= "TopServiceEngine: fillNetworkInterfaces: error while
fetching from the database: "
+ + e.getMessage();
+
+ logger.error(m);
+ throw new SystemException("error.tops.fetching", m);
}

return;
}

- protected void fillNetwork(Data networksData, int network_oid,
Hashtable<Integer, String> nodes_interfaces) throws SystemException {
+ protected void fillNetwork(Data networksData, int network_oid) throws
SystemException {

String select_network= "SELECT network_type, network_name " +
"FROM network " +
@@ -499,13 +511,11 @@
new org.ggf.ns.nmwg.topology.l3.v3_0.Name();

name.setName(rs.getString(2));
-
link.setNameElement(name);
}

- fillNetworkInterfaces(link, network_oid, nodes_interfaces);
+ fillNetworkInterfaces(link, network_oid);

- logger.debug("fillNetwork: adding link " +rs.getString(1) +",
" +rs.getString(2)+", " +network_oid);
networksData.setChild(link);
}

@@ -514,7 +524,11 @@

} catch (SQLException e) {

- throw new SystemException("TopServiceEngine: fillNetwork: error
while fetching from the database:" + e.getMessage());
+ String m= "TopServiceEngine: fillNetwork: error while fetching
from the database:"
+ + e.getMessage();
+
+ logger.error(m);
+ throw new SystemException("error.tops.fetching", m);
}

return;
@@ -523,7 +537,7 @@
// adds to the response the description all networks of existing nodes
nodes
//

- protected Hashtable<Integer, String> fillNodesNetworks(Data
networksData) throws SystemException {
+ protected void fillNodesNetworks(Data networksData) throws
SystemException {

try {

@@ -562,7 +576,6 @@

rs.next();
rowcount= rs.getInt(1);
- Hashtable<Integer, String> nodes_interfaces= new
Hashtable<Integer, String>(rowcount);

rs= st.executeQuery(select_network_oid);

@@ -571,11 +584,9 @@
network_interface_oid= rs.getInt(1);
network_oid= rs.getInt(2);

- fillNetwork(networksData, network_oid, nodes_interfaces);
+ fillNetwork(networksData, network_oid);

- if (i == 0) {
- break;
- }
+ // if (i == 0) { break;}

i= i+1;
}
@@ -583,27 +594,27 @@
rs.close();
st.close();

- m= "fillNodesNetworks: response is:\n" +
XMLUtils.serializeXML(networksData);
- logger.debug(m);
-
- return nodes_interfaces;
+ return;

} catch (SQLException e) {

- throw new SystemException("TopServiceEngine: fillNodesNetworks:
error while fetching from the database:" + e.getMessage());
+ String m= "TopServiceEngine: fillNodesNetworks: error while
fetching from the database:"
+ + e.getMessage();
+
+ logger.error(m);
+ throw new SystemException("error.tops.fetching", m);
}

}

- protected void fillNodes(Data nodesData, Hashtable<Integer, String>
nodes_interfaces) throws SystemException {
+ protected void fillNodes(Data nodesData) throws SystemException {

String m;
Statement st_nodes, st_interfaces;
ResultSet rs_nodes, rs_interfaces;
- Integer key; // key for the Hashtable
- int i;
int node_id;
String interface_ref;
+ Integer i;

try {

@@ -653,8 +664,6 @@
}

node_id= rs_nodes.getInt(8);
- // m= "fillNodes: want to fill node: " + node_id;
- // logger.debug(m);


//////////////////////////////////////////////////////////////////////
// Get the interfaces of the node and then get the XML
reference to it
@@ -663,32 +672,29 @@
st_interfaces= conn.createStatement();
rs_interfaces=
st_interfaces.executeQuery(select_node_interfaces);

- m= "fillNodes: query is: " + select_node_interfaces;
- logger.debug(m);
-
while(rs_interfaces.next()) {

- key= rs_interfaces.getInt(1);
- interface_ref= nodes_interfaces.get(key);
+ i= rs_interfaces.getInt(1);
+ interface_ref= i.toString(); // We use the object id of
the interface
+ // for reference within the
document

- if (interface_ref == null) {
- interface_ref= "lost reference";
- }
+ /*
+ TODO:

- m= "fillNodes: getting reference for node: " + node_id +
", interface: " + key + ", reference: " + interface_ref;
- logger.debug(m);
+ The following is not possible now (august 2006) and
according
+ to Jason should be done this way. Instead we use base
interfaces
+ and seems to generate proper xml.
+
+ org.ggf.ns.nmwg.topology.l3.v3_0.Interface iface=
+ new org.ggf.ns.nmwg.topology.l3.v3_0.Interface();
+ */

- // TODO: ask if this is the proper way of adding reference
-
- /*
- org.ggf.ns.nmwg.topology.l3.v3_0.Interface iface=
- new org.ggf.ns.nmwg.topology.l3.v3_0.Interface();
+ org.ggf.ns.nmwg.topology.base.v3_0.Interface iface=
+ new org.ggf.ns.nmwg.topology.base.v3_0.Interface();

iface.setInterfaceIdRef(interface_ref);

node.setInterface(iface);
- */
-
}

rs_interfaces.close();
@@ -704,7 +710,11 @@

} catch (SQLException e) {

- throw new SystemException("TopServiceEngine: fillNodes: error
while fetching from the database:" + e.getMessage());
+ m= "TopServiceEngine: fillNodes: error while fetching from the
database:"
+ + e.getMessage();
+
+ logger.error(m);
+ throw new SystemException("error.tops.fetching", m);
}

return;

Modified:
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsJDBCComponent.java
===================================================================
---
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsJDBCComponent.java
2006-08-29 22:33:50 UTC (rev 1581)
+++
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsJDBCComponent.java
2006-08-31 09:45:29 UTC (rev 1582)
@@ -60,7 +60,7 @@
getInstance().getComponent(ComponentNames.LOGGER);

} catch (SystemException e) {
- String m = "TopsJDBCComponent: Cannot get logger component ";
+ String m = "TopsJDBCComponent: Can't obtain Logger component ";
throw new SystemException(m);
}

@@ -71,16 +71,19 @@
AuxiliaryComponentManager.getInstance().
getComponent(ComponentNames.CONFIG);
} catch (SystemException e) {
- String m = "Cannot get config component ";
- throw new SystemException(m);
+
+ String m = "TopsJDBCComponent: Can't obtain Config component ";
+ logger.error(m);
+ throw new SystemException("error.tops.dependency", m);

}


try {
Class.forName("org.postgresql.Driver");
} catch(Exception e) {
- String m = "Cannot get postgresql driver for JDBC access";
- throw new SystemException(m);
+ String m = "TopsJDBCComponent: Can't obtain postgresql driver for
JDBC access";
+ logger.error(m);
+ throw new SystemException("error.tops.dependency", m);
}

String jdbcURI =
config.getProperty("component."+componentName+".jdbc_uri");
@@ -92,8 +95,9 @@
jdbc = DriverManager.getConnection(jdbcURI, jdbcUSER, jdbcPASS);

} catch(Exception e) {
- String m = "TopsJDBCComponent: Cannot get jdbc connection: uri:
" +jdbcURI +", user: " +jdbcUSER +", pass: " +jdbcPASS;
- throw new SystemException(m);
+ String m = "TopsJDBCComponent: Can't obtain jdbc connection:
uri: " +jdbcURI +", user: " +jdbcUSER +", pass: " +jdbcPASS;
+ logger.error(m);
+ throw new SystemException("error.tops.dependency", m);
}



Modified:
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsLSRegistrationComponent.java
===================================================================
---
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsLSRegistrationComponent.java
2006-08-29 22:33:50 UTC (rev 1581)
+++
trunk/perfsonar/src/org/perfsonar/service/topologyService/TopsLSRegistrationComponent.java
2006-08-31 09:45:29 UTC (rev 1582)
@@ -106,8 +106,8 @@
getInstance().getComponent(ComponentNames.LOGGER);

} catch (SystemException e) {
- String m = "TopsLSRegistrationComponent: Cannot get logger
component ";
- throw new SystemException(m);
+
+ throw new SystemException("error.tops.dependency",
"TopsLSRegistrationComponent: Can't obtain Logger component");
}

try {
@@ -115,8 +115,11 @@
AuxiliaryComponentManager.getInstance().
getComponent(ComponentNames.CONFIG);
} catch (SystemException e) {
- String m = "Cannot get config component ";
- throw new SystemException(m);
+
+ String m= "TopsLSRegistrationComponent: Can't obtain Config
component";
+ logger.error(m);
+
+ throw new SystemException("error.tops.dependency", m);
}


@@ -142,6 +145,7 @@
logger.debug("TopsLSRegistrationComponent: parameter
RUN_INTERVAL="+interval);

//get scheduler - parameter "component.CName.scheduler_component"
+
try {
String schedulerVal = config.getProperty(
"component."+componentName+".scheduler_component");
@@ -151,19 +155,25 @@
AuxiliaryComponentManager.getInstance().
getComponent(schedulerVal);

- if (scheduler==null)
- throw new SystemException(
- "TopsLSRegistrationComponent: No such component in
AuxiliaryComponentManager");
+ if (scheduler==null) {
+
+ String m= "TopsLSRegistrationComponent: Can't obtain
scheduler component";
+ logger.error(m);
+ throw new SystemException("error.tops.dependency", m);
+ }

} catch (SystemException e) {
- throw new SystemException("TopsLSRegistrationComponent: no
[component."+
- componentName+".scheduler_component] parameter. "
- +e.getMessage());
+
+ String m= "TopsLSRegistrationComponent: no [component." +
+ componentName+".scheduler_component] parameter. "
+ + e.getMessage();
+
+ logger.error(m);
+ throw new SystemException("error.tops.dependency", m);
}

- //add cleanup action to scheduler
+ // add cleanup action to scheduler
scheduler.addSchedulerTask(interval, this);
-
}


@@ -187,7 +197,6 @@
public static void main(String[] args) throws Exception {

AuxiliaryComponentManager.getInstance();
-
}





  • r1582 - trunk/perfsonar/src/org/perfsonar/service/topologyService, svnlog, 08/31/2006

Archive powered by MHonArc 2.6.16.

Top of Page