...
Code Block |
---|
... <nmwg:store xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" type="LSStore"> <nmwg:metadata xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status"> <perfsonar:subject xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/"> <psservice:service xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/"> <psservice:accessPoint>http://packrat.internet2.edu:5801/perfSONAR_PS/services/status</psservice:accessPoint> <psservice:serviceType>MA</psservice:serviceType> <psservice:serviceDescription>Link Status Measurement Archive</psservice:serviceDescription> </psservice:service> </perfsonar:subject> </nmwg:metadata> </nmwg:store> <nmwg:store xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" type="LSStore-control"> <nmwg:metadata id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status-control" metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status" xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"> <nmwg:parameters id="control-parameters"> <nmwg:parameter name="timestamp"> <nmtm:time type="unix" xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/">1191967524</nmtm:time> </nmwg:parameter> </nmwg:parameters> </nmwg:metadata> </nmwg:store> <nmwg:store xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" type="LSStore"> <nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status/1191881560/0" metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status"> <nmwg:metadata id="meta0"> <nmwg:subject id="sub0"> <nmtopo_aug:link xmlns:nmtopo="http://ogf.org/schema/network/topology/base/20070828/" xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/" id="urn:ogf:network:domain=I2:node=rtr.wash:port=so-1%2F1%2F0.0:link=ATLA to WASH OC192" /> </nmwg:subject> <nmwg:eventType>Link.Status</nmwg:eventType> <nmwg:eventType>http://ggf.org/ns/nmwg/characteristic/link/status/20070809</nmwg:eventType> </nmwg:metadata> </nmwg:data> </nmwg:store> ... |
Get All Topology Info
So say we wanted to get all the (meta)data from the LS which corresponds to Topology information, we should send the following XQuery:
Code Block |
---|
declare namespace nmwg="http://ggf.org/ns/nmwg/base/2.0/";
/nmwg:store/nmwg:data[child::nmwg:metadata/nmwg:eventType='http://ggf.org/ns/nmwg/topology/query/all/20070809']
|
Code Block |
---|
[ytl@Yees-Ubuntu:~/Work/perfSONAR/perfSONAR-PS/trunk/perfSONAR-PS/client]$ ./client.pl http://patdev0.internet2.edu:6666/perfSONAR_PS/services/LS /tmp/test.xml | sed s:'>':'>':g | sed s:'<':'<':g | sed s:'"':'"':g | tidy
2007/10/09 14:29:16 DEBUG> Transport.pm:469 perfSONAR_PS::Transport::makeEnvelope - Envelope created.
2007/10/09 14:29:16 DEBUG> Transport.pm:488 perfSONAR_PS::Transport::sendReceive - Sending information to "http://patdev0.internet2.edu:6666//perfSONAR_PS/services/LS".
2007/10/09 14:29:16 DEBUG> Transport.pm:505 perfSONAR_PS::Transport::sendReceive - Response returned.
No warnings or errors were found.
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="message.11295574" messageIdRef="msg1" type="LSQueryResponse">
<nmwg:metadata xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="metadata.2482130" metadataIdRef="meta1"></nmwg:metadata>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="data.16850367" metadataIdRef="metadata.2482130">
<psservice:datum xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:8089/perfSONAR_PS/services/topology/1191881181/0"
metadataIdRef="http://packrat.internet2.edu:8089/perfSONAR_PS/services/topology">
<nmwg:metadata id="meta17737387">
<nmwg:subject id="sub0">
<ctrlplane_jun:domain xmlns:CtrlPlane="http://ogf.org/schema/network/topology/ctrlPlane/20070626/"
xmlns:ctrlplane_jun="http://ogf.org/schema/network/topology/ctrlPlane/20070626/" id="urn:ogf:network:domain=293" />
</nmwg:subject>
<nmwg:eventType>topology</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/query/all/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/query/xquery/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/add/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/update/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/replace/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:5800/perfSONAR_PS/services/topology/1191881224/0"
metadataIdRef="http://packrat.internet2.edu:5800/perfSONAR_PS/services/topology">
<nmwg:metadata id="meta9650481">
<nmwg:subject id="sub0">
<nmtopo_aug:domain xmlns:nmtb="http://ogf.org/schema/network/topology/base/20070828/"
xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/" id="urn:ogf:network:domain=I2" />
</nmwg:subject>
<nmwg:eventType>topology</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/query/all/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/query/xquery/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/add/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/update/20070809</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/topology/change/replace/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
</psservice:datum>
</nmwg:data>
</nmwg:message>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
Link Status
This is how we query for all the link status:
Code Block |
---|
declare namespace nmwg="http://ggf.org/ns/nmwg/base/2.0/";
/nmwg:store/nmwg:data[child::nmwg:metadata/nmwg:eventType='http://ggf.org/ns/nmwg/characteristic/link/status/20070809']
|
Which basically tells the LS to return all nmwg::data
elements that have (nested) child eventType of the link status as defined. This returns:
Code Block |
---|
[ytl@Yees-Ubuntu:~/Work/perfSONAR/perfSONAR-PS/trunk/perfSONAR-PS/client]$ ./client.pl http://patdev0.internet2.edu:6666/perfSONAR_PS/services/LS /tmp/test.xml | sed s:'>':'>':g | sed s:'<':'<':g | sed s:'"':'"':g | tidy
2007/10/09 14:24:59 DEBUG> Transport.pm:469 perfSONAR_PS::Transport::makeEnvelope - Envelope created.
2007/10/09 14:24:59 DEBUG> Transport.pm:488 perfSONAR_PS::Transport::sendReceive - Sending information to "http://patdev0.internet2.edu:6666//perfSONAR_PS/services/LS".
2007/10/09 14:25:00 DEBUG> Transport.pm:505 perfSONAR_PS::Transport::sendReceive - Response returned.
No warnings or errors were found.
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="message.6379216" messageIdRef="msg1" type="LSQueryResponse">
<nmwg:metadata xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="metadata.12038437" metadataIdRef="meta1"></nmwg:metadata>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="data.11853357" metadataIdRef="metadata.12038437">
<psservice:datum xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status/1191881560/0"
metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status">
<nmwg:metadata id="meta0">
<nmwg:subject id="sub0">
<nmtopo_aug:link xmlns:nmtopo="http://ogf.org/schema/network/topology/base/20070828/"
xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/"
id="urn:ogf:network:domain=I2:node=rtr.wash:port=so-1%2F1%2F0.0:link=ATLA to WASH OC192" />
</nmwg:subject>
<nmwg:eventType>Link.Status</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/characteristic/link/status/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status/1191881560/1"
metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status">
<nmwg:metadata id="meta1">
<nmwg:subject id="sub0">
<nmtopo_aug:link xmlns:nmtopo="http://ogf.org/schema/network/topology/base/20070828/"
xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/"
id="urn:ogf:network:domain=I2:node=rtr.atla:port=so-0%2F0%2F0.0:link=ATLA to WASH OC192" />
</nmwg:subject>
<nmwg:eventType>Link.Status</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/characteristic/link/status/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status/1191881560/2"
metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status">
<nmwg:metadata id="meta2">
<nmwg:subject id="sub0">
<nmtopo_aug:link xmlns:nmtopo="http://ogf.org/schema/network/topology/base/20070828/"
xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/"
id="urn:ogf:network:domain=I2:node=rtr.losa:port=so-0%2F1%2F0.0:link=Layer3 Backbone LOSA to SEAT" />
</nmwg:subject>
<nmwg:eventType>Link.Status</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/characteristic/link/status/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status/1191881560/3"
metadataIdRef="http://packrat.internet2.edu:5801/perfSONAR_PS/services/status">
<nmwg:metadata id="meta3">
<nmwg:subject id="sub0">
<nmtopo_aug:link xmlns:nmtopo="http://ogf.org/schema/network/topology/base/20070828/"
xmlns:nmtopo_aug="http://ogf.org/schema/network/topology/base/20070828/"
id="urn:ogf:network:domain=I2:node=rtr.atla:port=so-4%2F0%2F0.0:link=ATLA-HOUS OC-192" />
</nmwg:subject>
<nmwg:eventType>Link.Status</nmwg:eventType>
<nmwg:eventType>http://ggf.org/ns/nmwg/characteristic/link/status/20070809</nmwg:eventType>
</nmwg:metadata>
</nmwg:data>
...
|
Querying for Services
So say we just want to find out where to get MA information from, we can do a direct query for the services that are registered with the following xquery:
Code Block |
---|
declare namespace nmwg="http://ggf.org/ns/nmwg/base/2.0/";
declare namespace perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
declare namespace psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";
/nmwg:store/nmwg:metadata/perfsonar:subject[child::psservice:service]
|
Notice that because of the extra namespaces in the new tags, we have to declare them prior to use.
Code Block |
---|
[ytl@Yees-Ubuntu:~/Work/perfSONAR/perfSONAR-PS/trunk/perfSONAR-PS/client]$ ./client.pl http://patdev0.internet2.edu:6666/perfSONAR_PS/services/LS /tmp/test.xml | sed s:'>':'>':g | sed s:'<':'<':g | sed s:'"':'"':g
2007/10/09 14:34:11 DEBUG> Transport.pm:469 perfSONAR_PS::Transport::makeEnvelope - Envelope created.
2007/10/09 14:34:11 DEBUG> Transport.pm:488 perfSONAR_PS::Transport::sendReceive - Sending information to "http://patdev0.internet2.edu:6666//perfSONAR_PS/services/LS".
2007/10/09 14:34:12 DEBUG> Transport.pm:505 perfSONAR_PS::Transport::sendReceive - Response returned.
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="message.9290927" messageIdRef="msg1" type="LSQueryResponse">
<nmwg:metadata xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="metadata.9639414" metadataIdRef="meta1">
</nmwg:metadata>
<nmwg:data xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="data.9852913" metadataIdRef="metadata.9639414">
<psservice:datum xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/"><perfsonar:subject xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/">
<psservice:service xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<psservice:serviceName>Internet2 SNMP MA #2</psservice:serviceName>
<psservice:accessPoint>http://patdev0.internet2.edu:8080/perfSONAR_PS/services/snmpMA</psservice:accessPoint>
<psservice:serviceType>MA</psservice:serviceType>
<psservice:serviceDescription>perfSONAR_PS SNMP MA Located in Ann Arbor, MI</psservice:serviceDescription>
</psservice:service>
</perfsonar:subject>
<perfsonar:subject xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/">
<psservice:service xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<psservice:serviceName>Topology MA</psservice:serviceName>
<psservice:accessPoint>http://packrat.internet2.edu:8089/perfSONAR_PS/services/topology</psservice:accessPoint>
<psservice:serviceType>MA</psservice:serviceType>
<psservice:serviceDescription>Topology Measurement Archive</psservice:serviceDescription>
</psservice:service>
</perfsonar:subject>
<perfsonar:subject xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/">
<psservice:service xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<psservice:accessPoint>http://packrat.internet2.edu:5800/perfSONAR_PS/services/topology</psservice:accessPoint>
<psservice:serviceType>MA</psservice:serviceType>
<psservice:serviceDescription>Topology Measurement Archive</psservice:serviceDescription>
</psservice:service>
</perfsonar:subject>
<perfsonar:subject xmlns:perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/">
<psservice:service xmlns:psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/">
<psservice:accessPoint>http://packrat.internet2.edu:5801/perfSONAR_PS/services/status</psservice:accessPoint>
<psservice:serviceType>MA</psservice:serviceType>
<psservice:serviceDescription>Link Status Measurement Archive</psservice:serviceDescription>
</psservice:service>
</perfsonar:subject>
</psservice:datum>
</nmwg:data>
</nmwg:message>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
so we have returned two Topology services on packrat on ports 8089 and 5800, one link status MA and one SNMP MA.