We are using PingER, perfSONAR/NDT and PlanetLab landmarks for geolocation in TULIP. PlanetLab landmarks are manually updated with the help of perl script "insert_planetlab.pl" which is under the tulip directory /afs/slac.stanford.edu/package/pinger/tulip. This script loops over monthly active hosts in PlanetLab and inserts new one based on their availability. PingER nodes are updated with the help of automated script "create_sites-xml"(updated by trscrontab job running at 2:40am in pinger@pinger.slac.stanford.edu) which is located under TULIP directory.
We can also update landmarks manually using the following process. To update/add new nodes first we need to skim through the table schema to get to know mandatory and optional fields. Schema for reference is as under
Code Block |
---|
+----------------------+--------------+------+-----+---------------------+-------+
| Field | Type | Null |Key| Default | Required|
+----------------------+--------------+------+-----+---------------------+-------+
| nodeID | int(11) | | | 0 | 0 |
| name | varchar(80) | | | | 0 |
| hostName | varchar(80) | YES | | NULL | 1 |
| ipv4Addr | varchar(15) | YES | | NULL | 1 |
| domain | varchar(80) | YES | | NULL | 1 |
| description | varchar(200) | YES | | NULL | 0 |
| pingerNickname | varchar(50) | YES | | NULL | 0 |
| pingerMonitor | tinyint(1) | YES | | NULL | 0 |
| pingerBeacon | tinyint(1) | YES | | NULL | 0 |
| notCheckedAtSlac | tinyint(1) | YES | | NULL | 0 |
| enabled | tinyint(1) | YES | | 1 | 1 |
| institution | varchar(100) | YES | | NULL | 1 |
| city | varchar(100) | YES | | NULL | 1 |
| state | varchar(100) | YES | | NULL | 0 |
| country | varchar(100) | YES | | NULL | 1 |
| continent | varchar(100) | YES | | NULL | 1 |
| latitude | float | YES | | NULL | 1 |
| longitude | float | YES | | NULL | 1 |
| serviceInterfaceType | varchar(30) | YES | | NULL | 1 |
| planetLabScript | varchar(120) | YES | | NULL | 0 |
| pingURL | varchar(120) | YES | | NULL | 1 |
| tracerouteURL | varchar(120) | YES | | NULL | 1 |
| pingPacketSize | int(11) | YES | | NULL | 0 |
| tulipScalingFactor | smallint(6) | YES | | NULL | 0 |
| tulipTier | smallint(6) | YES | | NULL | 1 |
| lastUpdateDate | timestamp | YES | | 0000-00-00 00:00:00| 0 |
| comments | text | YES | | NULL | 0 |
+----------------------+--------------+------+-----+---------------------+-------+
|
The users enabled to access the various hosts are:
Code Block |
---|
+---------------+---------------+
| user | host |
+---------------+---------------+
| scs_tulip_uro | 10.% |
| scs_tulip_uro | 134.79.% |
| scs_tulip_u | 134.79.104.80 |=pinger
| scs_tulip_uro | 172.% |
| scs_tulip_uro | 192.168.% |
+---------------+---------------+
|
- There are some mandatory fields required to make the TULIP work. The list is given in the Required column of above table.
- Process for making change in database
- Login to tulip database (username and password available in escrow -c iepm iepmacct Note: It works from pinger@pinger.slac.stanford.edu
Code Block |
---|
24cottrell@pinger:~>mysql -h mysql-node01 -P 3307 -u scs_tulip_u -p scs_tulip
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with \-A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 664 to server version: 4.1.22-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
|
The password is in escrow edit -c iepm iepmacct
or can be obtained by calling (assuming you have the right AFS privs): Code Block |
---|
require "/afs/slac/g/scs/net/pinger/bin/admin.pl";\\
my $wrdw = >pwd('tulip');
|
or by looking in /afs/slac/package/pinger/tulip/dbPwd/pws-tulip- Change the database to tulip by cmd
Code Block |
---|
mysql> use scs_tulip;
Database changed
|
- Now insert new records using the following sql cmd; in this instance we are using ipv4Addr = 141.22.213.35;
Code Block |
---|
insert into landmarks (hostName,ipv4Addr,enabled,latitude,longitude,serviceInterfaceType,tracerouteURL,
tulipTier,domain,pingURL,city,country,continent)
values ('pinger.stanford.edu','171.66.6.39', 1 ,'37.4285','-122.178','PingER',
'http://pinger.stanford.edu/cgi-bin/traceroute.pl?','1','stanford.edu',
'http://pinger.stanford.edu/cgi-bin/traceroute.pl?function=ping','Menlo Park','United States','North America');
|
- Or you can update an existing record, e.g.
Code Block |
---|
mysql> update landmarks set latitude='31.4190' where
hostname like '%www-wanmon.slac.stanford.edu%';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
|
- Update Sites.xml so that it can now use the updated landmarks using following cmd Note: you might have to execute kinit and enter pinger password to get permission.
Code Block |
---|
/afs/slac/package/pinger/tulip/create_sites-xml.pl > ! /afs/slac/www/comp/net/wan-mon/tulip/sites.xml
|
Displaying the database
Use http://www-wanmon.slac.stanford.edu/cgi-wrap/reflector.cgi?function=landmarks