We use the "tulip" database to generate our sites.xml which is further used in probing the landmarks. We added pingER nodes from the Nodedetails database to the tulip database but with some defined rules. We only added those nodes which contain a traceroute server. To implement this and make it working we developed three packages.
...
In order to build this module we used some predefined perl modules and scripts. To get data from node details database we used require '/afs/slac/package/netmon/pinger/nodes.cf' and we used standard package Text::CSV_XS to convert our data in coma comma separated values. In order to define our node to be a candidate for a tulip landmark we tested it for a few conditions which include that the node must have traceroute server, it should not be set to NOT-SET and it's project type should not be set to "D" which means deleted as per node details nodedetails database semantics. The nodes which qualified these conditions we were put them in into a separate array. This array is used by insert_sites-xml.pl to insert these sites to Tulip database
...
This perl script is used to create the insert query from the data of above nodes. Again using the perl package Text::CSV_XS we divide our data into seperate separate chunks. The data is then feeded fed to the structure which contains parameters for the query. This script resolves each hosts with host names taken from nodedetainodesnodedetailnodes.pm this helps in eliminating bad hosts if existsthey exist. Before inserting new nodes into database it checks weather the node is in nodedetail or not. We use ipv4Addr as our unique key. We traverse through the tulip database and check if there exists some node with the same ipv4addr if it exists we ignore the entry and if not we go ahead with inserting it in the database.
...
This perl script is used to create the sites.xml file which is further used in our TULIP project as a source for node information and landmarks. This perl module uses the template libraray library in order to generate required xml. It treverses traverses through tulip database and gets each node, checks the service type and generate generates the file with all the available parameters in the database.