= EG-EXP-2: ExoGENI Single Site Acceptance Test = This page captures status for the test case EG-EXP-2, which verifies basic operations of VMs and data flows within one rack. For overall status see the [wiki:GENIRacksHome/ExogeniRacks/AcceptanceTestStatus ExoGENI Acceptance Test Status] page. = Test Status = This section captures the status for each step in the acceptance test plan. || '''Step''' || '''State''' || ''' Ticket ''' || '''Comments''' || || Step 1 ||[[Color(yellow,Complete)]]|| || || || Step 2 ||[[Color(yellow,Complete)]]|| ||Only one supported OS image is available, no image playpen|| || Step 3 ||[[Color(yellow,Complete)]]|| ||listresources does not include list of user images feature|| || Step 4 ||[[Color(yellow,Complete)]]|| || || || Step 5 ||[[Color(yellow,Complete)]]|| || || || Step 6 ||[[Color(yellow,Complete)]]|| || || || Step 7 ||[[Color(yellow,Complete)]]|| || || || Step 8 ||[[Color(yellow,Complete)]]|| || || || Step 9 ||[[Color(yellow,Complete)]]|| || || || Step 10 ||[[Color(yellow,Complete)]]|| ||1 node at BBN, and 1 at RENCI no image playpen|| || Step 11 ||[[Color(yellow,Complete)]]|| || || || Step 12 ||[[Color(yellow,Complete)]]|| || || || Step 13 ||[[Color(yellow,Complete)]]|| || || || Step 14 ||[[Color(yellow,Complete)]]|| || || || Step 15 ||[[Color(yellow,Complete)]]|| || || || Step 16 ||[[Color(yellow,Complete)]]|| || || || Step 17 ||[[Color(yellow,Complete)]]|| || || || Step 18 ||[[Color(yellow,Complete)]]|| || || [[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 = The first experiment in this plane requires that two GPO Ubuntu images have been tested in the ExoGENI image playpen environment and have been uploaded to the [http://geni-images.renci.org/images/ RENCI VM image repository] using available ExoGENI documentation. Also required is that one Ubuntu image is for the VM and one Ubuntu image is for the bare metal node in this test. Based on the approach chosen for ExoGENI, an ''Image Playpen'' system is required to allow user-define OS support. The ''Image Playpen'' was originally planned to be a be available when x3650M4 nodes become available the week of 05/28/2012, but is yet to be available as of 07/26/2012 Both user account used for this test have the following nick_names defined in the omni_config: {{{ exobbn=,https://bbn-hn.exogeni.net:11443/orca/xmlrpc exorci=,https://rci-hn.exogeni.net:11443/orca/xmlrpc exosm=,https://geni.renci.org:11443/orca/xmlrpc }}} ''' Notes:''' [[BR]] 1. Bare Metal nodes are available via ExoSM only. [[BR]] 2. Bare Metal node only support one version at this time. [[BR]] 3. Current test uses 1 Bare metal at BBN and 1 at RENCI. [[BR]] == Step 1. As Experimenter1, request !ListResources from BBN ExoGENI == User account lnevers is used for this tests, and the listresources is requested as follows from the BBN ExoGENI Resource Aggregate: {{{ $ ./src/omni.py -a exobbn listresources --available -o }}} == Step 2. Review advertisement RSpec for a list of OS images which can be loaded, and identify available resources == Feature not available in ExoGENI listresources. Available image information is collected out-of-band, so when custom Images are tested they will not be part of list resources ouptuput. Verification will be based on custom image successful installation and usage in the ExoGENI rack. == Step 3. Verify that the GPO Ubuntu image is available == Same as step 2. == Step 4. Define a request RSpec for two VMs, each with a GPO Ubuntu image == Created the RSpec for the two VMs named [http://groups.geni.net/geni/browser/trunk/GENIRacks/ExoGENI/Spiral4/Rspecs/AcceptanceTests/EG-EXP-2/EG-EXP-2-exp1.rspec EG-EXP-2-exp1.rspec] == Step 5. Create the first slice == {{{ $ omni.py createslice EG-EXP-2-exp1 }}} == Step 6. Create a sliver in the first slice, using the RSpec defined in step 4. == {{{ $ omni.py -a exobbn createsliver EG-EXP-2-exp1 EG-EXP-2-exp1.rspec }}} Verify that the sliver creation was completed, by looking for "'geni_status': 'ready'" in the output of the sliverstatus command: xxxxx {{{ $ omni.py -a exobbn sliverstatus EG-EXP-2-exp1 }}} Once sliver is ready, determine which hosts were assigned: {{{ $ ./src/omni.py -a https://bbn-hn.exogeni.net:11443/orca/xmlrpc listresources EG-EXP-2-exp1 $ egrep hostname EG-EXP-2-exp1-rspec-bbn-hn-exogeni-net-11443-orca.xml }}} == Step 7. Log in to each of the systems, and send traffic to the other system sharing a VLAN == {{{ $ ssh root@192.1.242.11 root@debian:~# ifconfig root@debian:~# ping 172.16.1.1 -c 4 }}} == Step 8. Using root privileges on one of the VMs load a Kernel module. == Once logged in, show current modules loaded, load a module, and then remove the mofule: == Step 9. As Experimenter2, request !ListResources from BBN ExoGENI. == User account lnevers1 will be used for this tests, and the listresources is requested as follows from the BBN ExoGENI rack Head Node: {{{ $ ./src/omni.py -a https://geni.renci.org:11443/orca/xmlrpc listresources --available -o }}} == Step 10. Define a request RSpec for two bare metal nodes, both using the uploaded GPO Ubuntu images. == Create the RSpec the 2 Bare metal nodes. This test is currently modified due to bare metal node availability. The RSpec used has 1 bare metal node at BBN ExoGENI and one at RENCI ExoGENI. == Step 11. Create the second slice. == {{{ $ ./src/omni.py createslice EG-EXP-2-exp2 }}} == Step 12. Create a sliver in the second slice, using the RSpec defined in step 10. == {{{ $ ./src/omni.py -a https://geni.renci.org:11443/orca/xmlrpc createsliver EG-EXP-2-exp2 exo-2vm-1lan.rspec }}} == Step 13. Log in to each of the systems, and send traffic to the other system. == Verify that the sliver creation was completed, by looking for "'geni_status': 'ready'" in the output of the sliverstatus command: {{{ $ ./src/omni.py -a https://geni.renci.org:11443/orca/xmlrpc sliverstatus EG-EXP-2-exp2 }}} Once sliver is ready, determine which hosts were assigned: {{{ $ ./src/omni.py -a https://geni.renci.org:11443/orca/xmlrpc listresources EG-EXP-2-exp2.rspec $ egrep hostname EG-EXP-2-exp2-rspec-geni-renci-org-11443-orca.xml }}} == Step 14. Verify that experimenters 1 and 2 cannot use the control plane to access each other's resources == (e.g. via unauthenticated SSH, shared writable filesystem mount) Attempt to login into other experiment fails and not able to mount other experiment file system. == Step 15. Review system statistics and VM isolation and network isolation on data plane. == Verify that the two experiments cannot interact. Review usage statistics. == Step 16. Verify that each VM has a distinct MAC address for that interface. == Issue ifconfig and verified that each host has unique MAC address. == Step 17. Verify that VMs' MAC addresses are learned on the data plane switch. == Ability to exchange traffic shows that the mac addresses are learned. == Step 18. Stop traffic and delete slivers. == Stopped traffic and deleted sliver at the ExoSM: {{{ $ ./src/omni.py -a https://geni.renci.org:11443/orca/xmlrpc deletesliver EG-EXP-2-exp2 }}}