[[PageOutline]]
= Detailed test plan for IG-MON-2: GENI Software Configuration Inspection Test =
This page captures status for the test case IG-MON-2, which verifies the ability to determine software configuration in the InstaGENI racks. For overall status see the [wiki:GENIRacksHome/InstageniRacks/AcceptanceTestStatus InstaGENI Acceptance Test Status] page.
''Last update: 2013-03-05''
== Test Status ==
|| '''Step''' || '''State''' || '''Tickets''' || '''Notes''' ||
|| 1 || [[Color(green,Pass)]] || || ||
|| 2 || [[Color(green,Pass)]] || || ||
|| 3 || || || ||
|| 4 || || || ||
[[BR]]
|| '''State Legend''' || '''Description''' ||
|| [[Color(green,Pass)]] || Test completed and met all criteria ||
|| [[Color(#98FB98,Pass: most criteria)]] || Test completed and met most criteria. Exceptions documented ||
|| [[Color(red,Fail)]] || Test completed and failed to meet criteria. ||
|| [[Color(yellow,Complete)]] || Test completed but will require re-execution due to expected changes ||
|| [[Color(orange,Blocked)]] || Blocked by ticketed issue(s). ||
|| [[Color(#63B8FF,In Progress)]] || Currently under test. ||
[[BR]]
= Test Plan Steps =
== Step 1: determine experimental node allocations ==
This step will verify the ability to determine VM in use as well as VMs available as follows:
* On boss and ops, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces (Emulab UI, testbed database) to determine the experimental state of each node.
* For each OpenVZ node found, determine what operating system that node makes available to users.
As a site admin login to https://boss.instageni.gpolab.bbn.com, select "red dot" mode and select pulldown "Experimentation"->"Node Status", which will show this page:
[Image(IG-MON-2-nodes.jpg)]].
On the resulting page select "physical" from the tabular view listing across the top of the panel. This will show all physical systems in the rack, along with the OS running on those nodes.
[[Image(IG-MON-2-physical.jpg)]]
The above shows:
* pc3 is in used by an experiment (EID) named "jbstmp"
* pc4 and pc5 are available
* pc1 and pc2 are part of the "shared-nodes" experiment used to reserve the PCs that provide VMs.
To determine what VMs are in use, while still in the Experimentation"->"Node Status" page (in red dot mode) select "virtual" from the tabular view across the top of the panel, which will provide a list of VMs in use in the rack:
[[Image(IG-MON-2-VMs.jpg)]]
If further information is needed for any of the VMs on the "virtual" table, simply click on the VM "ID" and all VM information will be shown.
== Step 2: determine rack VLAN configuration ==
Determine all VLANs available to experimenters. For each available VLAN, determine whether it is available for exclusive OpenFlow control. This step verifies that the site administrator can determine how many VLANs are available for use and which are for OpenFlow only.
{{{
$ omni.py listresources -a ig-gpo -o
}}}
The output file show the following !OpenFlow VLANs:
{{{
}}}
The following VLAN are available on the switch "procurve2" (dataplane switch) for stitching use:
{{{
3747-3749
false
2644-2649
false
}}}
Additional information can be determined by logging into the dataplane switch and showing VLAN information:
{{{
$ ssh boss.instageni.gpolab.com
[lnevers@boss ~]$ sudo more /usr/testbed/etc/switch.pswd
XXXXX
[lnevers@boss ~]$ ssh manager@procurve2
manager@procurve2's password:
HP-E5406zl# show vlans
Status and Counters - VLAN Information
Maximum VLANs to support : 256
Primary VLAN : DEFAULT_VLAN
Management VLAN : control-hardware
VLAN ID Name | Status Voice Jumbo
------- -------------------------------- + ---------- ----- -----
1 DEFAULT_VLAN | Port-based No No
10 control-hardware | Port-based No No
257 _8 | Port-based No No
1750 _11 | Port-based No No
1755 _347 | Port-based No No
1756 _348 | Port-based No No
1757 _349 | Port-based No No
1758 _350 | Port-based No No
1759 _351 | Port-based No No
3705 _222 | Port-based No No
3742 _481 | Port-based No No
HP-E5406zl# show vlans 1750
Status and Counters - VLAN Information - VLAN 1750
VLAN ID : 1750
Name : _11
Status : Port-based
Voice : No
Jumbo : No
Port Information Mode Unknown VLAN Status
---------------- -------- ------------ ----------
E1 Tagged Learn Up
E4 Tagged Learn Up
E5 Tagged Learn Up
E23 Tagged Learn Up
E24 Tagged Learn Up
}}}
The overall configuration can also be shown on the switch to determine configured VLAN information as well as details for the !OpenFlow VLANs:
{{{
HP-E5406zl# show running-config
<...>
vlan 1
name "DEFAULT_VLAN"
forbid E3,E6
untagged A1-A24,E7-E19,E21-E22
no untagged E1-E6,E20,E23-E24
no ip address
exit
vlan 10
name "control-hardware"
untagged E20
ip address 10.2.1.253 255.255.255.0
ip address 10.3.1.253 255.255.255.0
exit
vlan 1750
name "_11"
tagged E1,E4-E5,E23-E24
no ip address
exit
vlan 3705
name "_222"
tagged E23-E24
no ip address
vlan 1755
name "_347"
tagged E23-E24
no ip address
exit
vlan 1756
name "_348"
tagged E23-E24
no ip address
exit
vlan 1757
name "_349"
tagged E23-E24
no ip address
exit
vlan 1758
name "_350"
tagged E23-E24
no ip address
exit
vlan 1759
name "_351"
tagged E23-E24
no ip address
exit
vlan 257
name "_8"
untagged E3,E6
tagged E1-E2,E4-E5
no ip address
exit
vlan 3742
name "_481"
tagged E1,E4,E24
no ip address
exit
<...>
openflow
vlan 1750
enable
controller "tcp:10.3.1.7:6633" fail-secure on
exit
vlan 1755
enable
controller "tcp:10.3.1.7:6633"
exit
vlan 1756
enable
controller "tcp:10.3.1.7:6633"
exit
vlan 1757
enable
controller "tcp:10.3.1.7:6633"
exit
vlan 1758
enable
controller "tcp:10.3.1.7:6633"
exit
vlan 1759
enable
controller "tcp:10.3.1.7:6633"
exit
exit
}}}
* On boss, use the database to find out the set of VLANs which can be used for dedicated experiments:
{{{
== Step 3: determine which GENI SAs are trusted by InstaGENI AM ==
This step verified that an experimenter can use the trusted SAs and that the site administrator can determine the full set of trusted GENI Slice Authorities:
Use Omni tools with pgeni.gpolab.bbn.com credentials to query the GPO rack. The omni_config is defined as follows:
{{{
[omni]
default_cf = pg
users = lnevers
# ---------- Users ----------
[lnevers]
urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+lnevers
keys = /home/lnevers/.ssh/id_rsa.pub
# ---------- Frameworks ----------
[pg]
type = pg
ch = https://www.emulab.net:12369/protogeni/xmlrpc/ch
sa = https://www.pgeni.gpolab.bbn.com:443/protogeni/xmlrpc/sa
cert = /home/lnevers/.ssl/pgeni/encrypted-cleartext.pem
key = /home/lnevers/.ssl/pgeni/encrypted-cleartext.pem
}}}
Create a slice and a sliver at the GPO InstaGENI:
{{{
$ omni.py createslice ln-pgeni-cred
$ omni.py createsliver ln-pgeni-cred -a ig-gpo ./insta-gpo-1vm.rspec
<...>
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+ln-pgeni-cred expires on 2013-03-06 21:58:49 UTC
<..>
}}}
The Slice urn shows the pgeni.gpolab.bbn.com SA was used to reserve resources within the rack. Before proceeding delete the sliver:
{{{
$ omni.py deletesliver ln-pgeni-cred -a ig-gpo
}}}
To verify support for PG Utah SA, modify the omni_config to use emulab as a default framwork and selcte the urn for the emulab account:
{{{
[omni]
default_cf = emulab
users = lnevers
# ---------- Users ----------
[lnevers]
urn = urn:publicid:IDN+emulab.net+user+lnevers
keys = /home/lnevers/.ssh/id_rsa.pub
# ---------- Frameworks ----------
[emulab]
type = pg
ch = https://www.emulab.net:12369/protogeni/xmlrpc/ch
sa = https://www.emulab.net:12369/protogeni/xmlrpc/sa
cert = ~/.ssl/protogeni/encrypted-cleartext.pem
key = ~/.ssl/protogeni/encrypted-cleartext.pem
verbose=false
}}}
Create a new slice with the PG Utah SA credentials and sliver:
{{{
$ omni.py createslice ln-pgutah-cred
$ omni.py createsliver ln-pgutah-cred -a ig-gpo ./insta-gpo-1vm.rspec
<...>
INFO:omni:Slice urn:publicid:IDN+emulab.net+slice+ln-pgutah-cred expires within 1 day on 2013-03-06 03:06:59 UTC
<...>
}}}
The Slice urn shows the emulab.net SA was used to reserve resources within the rack.
TO BE DONE:
Show
* On boss, use available system data sources and/or AM administrative interfaces to determine which GENI slice authorities the InstaGENI AM trusts.
* On foam, use available system data sources and/or AM administrative interfaces to determine which GENI slice authorities the FOAM AM trusts.
== Step 4: determine rack !OpenFlow state ==
'''Using:'''
* From a login to the dataplane switch, view the !OpenFlow configuration.
* On flowvisor, use fvctl to view the set of devices reporting to the !FlowVisor
* Use the GENI AM API to view the set of datapaths advertised by FOAM
* On boss or ops, use available system or AM tools to determine the configuration which the InstaGENI AM will use to install !OpenFlow configuration on the switch and share it with FOAM
'''Verify:'''
* All datapaths on the rack switch report either to !FlowVisor or directly to experimental controllers
* All datapaths on the rack switch which are shared with !FlowVisor are advertised by FOAM
* All datapaths reporting to !FlowVisor or to FOAM come from the rack switch
* A site administrator can look at flowvisor's state using fvctl
* A site administrator can look at FOAM's state using foamctl
* A site administrator can look at InstaGENI's !OpenFlow configuration