...
Code Block |
---|
<nmtb:topology xmlns:nmtl2="http://ogf.org/schema/network/topology/l2/20070707/" xmlns:nmtl3="http://ogf.org/schema/network/topology/l3/20070707/" xmlns:nmtl4="http://ogf.org/schema/network/topology/l4/20070707/" xmlns:nmtb="http://ogf.org/schema/network/topology/base/20070707/"> [% FOREACH node = nodes %] <nmtb:node id="urn:ogf:network:domain=[% node.domain %]:node=[% node.id %]"> <nmtb:name type="string">[% node.name %]</nmtb:name> <nmtb:hostName>[% node.hostName %]</nmtb:hostName> <nmtb:description>[% node.description %]</nmtb:description> [% FOREACH contact = node.contact %] <nmtb:contact priority="[% contact.priority %]"> [% IF contact.administrator %]<nmtb:administrator>[% contact.administrator %]</nmtb:administrator>[% END %] [% IF contact.email %]<nmtb:email>[% contact.email %]</nmtb:email>[% END %] [% IF contact.phoneNumber %]<nmtb:phoneNumber>[% contact.phoneNumber %]</nmtb:phoneNumber>[% END %] [% IF contact.institution %]<nmtb:institution>[% contact.institution %]</nmtb:institution>[% END %] </nmtb:contact> [% END %] <nmtb:location> [% IF node.location.institution %]<nmtb:institution>[% node.location.institution %]</nmtb:institution>[% END %] [% IF node.location.country %]<nmtb:country>[% node.location.country %]</nmtb:country>[% END %] [% IF node.location.zipcode %]<nmtb:zipcode>[% node.location.zipcode %]</nmtb:zipcode>[% END %] [% IF node.location.state %]<nmtb:state>[% node.location.state %]</nmtb:state>[% END %] [% IF node.location.city %]<nmtb:city>[% node.location.city %]</nmtb:city>[% END %] [% IF node.location.streetAddress %]<nmtb:streetAddress>[% node.location.streetAddress %]</nmtb:streetAddress>[% END %] [% IF node.location.floor %]<nmtb:floor>[% node.location.floor %]</nmtb:floor>[% END %] [% IF node.location.room %]<nmtb:room>[% node.location.room %]</nmtb:room>[% END %] [% IF node.location.cage %]<nmtb:cage>[% node.location.cage %]</nmtb:cage>[% END %] [% IF node.location.rack %]<nmtb:rack>[% node.location.rack %]</nmtb:rack>[% END %] [% IF node.location.shelf %]<nmtb:shelf>[% node.location.shelf %]</nmtb:shelf>[% END %] [% IF node.location.longitude %]<nmtb:longitude>[% node.location.longitude %]</nmtb:longitude>[% END %] [% IF node.location.latitude %]<nmtb:latitude>[% node.location.latitude %]</nmtb:latitude>[% END %] </nmtb:location> <nmtl3:port id="urn:ogf:network:domain=[% node.domain %]:node=[% node.id %]:port=[% node.port.ipAddress %]"> <nmtl3:ipAddress type="IPv4">[% node.port.ipAddress %]</nmtl3:ipAddress> </nmtl3:port> [% IF node.comments %]<nmtb:comments>[% node.comments %]</nmtb:comments>[% END %] </nmtb:node> [% END %] </nmtb:topology> |
Creation of 'store' file
running the following will generate the xml topology store file:
Code Block |
---|
[ytl@pinger:~/Work/perfSONAR/perfSONAR-PS/trunk/perfSONAR-PS/MA/PingER]$ ./pinger_topology.pl > pinger_topology.xml
|
An example snippet of the xml is here:
Code Block |
---|
<nmtb:topology xmlns:nmtl2="http://ogf.org/schema/network/topology/l2/20070707/"
xmlns:nmtl3="http://ogf.org/schema/network/topology/l3/20070707/" xmlns:nmtl4="http://ogf.org/schema/network/topology/l4/20070707
/"
xmlns:nmtb="http://ogf.org/schema/network/topology/base/20070707/">
<nmtb:node id="urn:ogf:network:domain=lanl.gov:node=www">
<nmtb:name type="string">www</nmtb:name>
<nmtb:hostName>www.lanl.gov</nmtb:hostName>
<nmtb:description></nmtb:description>
<nmtb:location>
<nmtb:institution>Los Alamos National Laboratory</nmtb:institution>
<nmtb:country>United States</nmtb:country>
<nmtb:state>NM</nmtb:state>
<nmtb:city>Los Alamos</nmtb:city>
<nmtb:longitude>35.73</nmtb:longitude>
<nmtb:latitude>-105.15</nmtb:latitude>
</nmtb:location>
<nmtl3:port id="urn:ogf:network:domain=lanl.gov:node=www:port=204.121.x.y">
<nmtl3:ipAddress type="IPv4">204.121.x.y</nmtl3:ipAddress>
</nmtl3:port>
</nmtb:node>
<nmtb:node id="urn:ogf:network:domain=cnea.gov.ar:node=eros">
<nmtb:name type="string">eros</nmtb:name>
<nmtb:hostName>eros.cnea.gov.ar</nmtb:hostName>
<nmtb:description></nmtb:description>
<nmtb:location>
<nmtb:institution>Tandar/CNEA</nmtb:institution>
<nmtb:country>Argentina</nmtb:country>
<nmtb:city>Buenos Aires</nmtb:city>
<nmtb:longitude>-34.617</nmtb:longitude>
<nmtb:latitude>-58.400</nmtb:latitude>
</nmtb:location>
<nmtl3:port id="urn:ogf:network:domain=cnea.gov.ar:node=eros:port=168.96.x.y">
<nmtl3:ipAddress type="IPv4">168.96.x.y</nmtl3:ipAddress>
</nmtl3:port>
<nmtb:comments>[Beacon - Argentina monitoring, add 12/8/0] (Tandar - Particle Accelerator/CNEA, Centro Atomico Constituyentes
(CAC), Buenos
Aires campus, Argentina)</nmtb:comments>
</nmtb:node>
...
|
(note some ip;s were stripped for security)
Deployment and configuration of Topology Service
Currently the various perfSONAR services are still under development, so this step should be a lot simpler in the future (not that it isn't now)
The service will be deployed on
Code Block |
---|
http://lhcopnmon1-mgm.fnal.gov:8083/perfSONAR_PS/services/topology
|
Check out source from SVN
We will create a directory called perfSONAR
and checkout the current snapshot to it.
Code Block |
---|
[iepm-bw@lhcopnmon1-mgm ~]$ mkdir perfSONAR
[iepm-bw@lhcopnmon1-mgm ~]$ cd perfSONAR/
[iepm-bw@lhcopnmon1-mgm perfSONAR]$ /usr/bin/svn co https://svn.internet2.edu/svn/perfSONAR-PS .
|
After a bit of time, all of the snapshot will be put inside.
The directory that we are interested in is at:
Code Block |
---|
./branches/merge/services/Topology
|
Configuration
There is a config file available to automate much of the install:
Code Block |
---|
[iepm-bw@lhcopnmon1-mgm Topology]$ ./configure.pl
-- perfSONAR-PS Topology MA Configuration --
- [press enter for the default choice] -
What file should I write the configuration to? [topology.conf]:
Enter the listen port [8083]:
Enter the listen end point [/perfSONAR_PS/services/topology]:
Enter the maximum number of children processes (0 means infinite) [4]:
Enter number of seconds a child can process before it is stopped (0 means infinite) [0]: 180
Enter the directory containing the XML Database (if relative, it's relative to the installation directory) [xmldb]:
Enter the filename for the XML Database [topology.dbxml]:
Is this service read-only? [1]:
Will this service register with an LS [1]:
Enter the number of minutes between LS registrations [30]:
URL of an LS to register with [http://perfSONAR2.cis.udel.edu:8181/perfSONAR_PS/services/LS]: http://patdev0.internet2.edu:6666/perfSONAR_PS/services/LS
Enter a name for this service [Topology MA]:
Enter the service type [MA]:
Enter a service description [Topology MA]:
External hostname for this service []:
External hostname for this service []: lhcopnmon1-mgm
Writing topology.conf: done.
Checking dependencies for desired configuration...
mkdir /root/.cpan: Permission denied at /usr/lib/perl5/5.8.5/CPAN.pm line 2342
|
Needs root. dont' have it. Stalled.