Skip to content
A set of scripts that stress, test and profile Nova deployments
Python Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
old
.gitignore
README.mkd
perf_runner.py
run_tests.py
test_check_for_one_ami.py
test_floating_allocate.py
test_floating_associate.py
test_floating_terminate_disassociate.py
test_instance_correct_ip.py
test_instance_io.py
test_instance_ping_google.py
test_keypair.py
test_l3_instance_network_settings.py
test_ping_one_instance.py
test_run_one_instance.py
test_sg_create.py
test_sg_good_bad_source_group.py
test_sg_instance_block_all.py
test_spawn_speed.py
test_ssh_one_instance.py

README.mkd

Tarkin - Nova Test Harness

Setup Nova Credentials

  • Source novarc

    $ . novarc
    

Functional Tests

  • Run One Test

    $ python test_l3_instance_network_settings.py
    
  • Run All Tests

    $ python run_tests.py
    

Performance Tests

  • Run 2 workers concurrently each iterating 30 tests

    $ python perf_runner.py -t test_sg_create -i 30 -w 2
    
  • Run 2 workers concurrently each iterating 30 times for two tests

    $ python perf_runner.py -t test_sg_create,test_ssh_one_instance -i 30 -w 2 
    

Tests Defined

  • check_for_one_ami - This test checks to see if there is at least on AMI available

  • instance_correct_ip - This test will spawn a VM and run ifconfig in the VM to see if the ip of eth0 is the same IP scheduled by Nova to the VM.

  • instance_io - Basic disk I/O benchmark test

  • instance_ping_google - This test will log into a VM and attempt to ping google using an IP address as well as a DNS name.

  • keypair - This test will generate a random named keypair

  • l3_instance_network_settings - This test does several network related tests from a VM: Private IPv4 matches what is listed in ifconfig, The netmask is 255.255.255.252 (/30), The broadcast IP is (private IP plus 1), The last 4 octets of MAC address contains IP address, The routing table of VM has proper gateway address, The default gateway can be pinged

  • ping_one_instance - This test will choose the first available AMI, spawn and attempt to ping it

  • run_one_instance - This test will choose the first available AMI, spawn and wait for it to get into running state.

  • sg_create - This test will create a randomly named security group

  • sg_good_bad_source_group - This test will create three groups, one group called 'dest' can only receive ICMP and SSH connections from the 'good' group. 'bad' is not trusted by 'dest' group. The tests include 'good' group attempting to ping and SSH to dest group as well as 'bad' group attempting to ping and SSH into 'dest' group.

  • sg_instance_block_all - A VM is spawn and is associated with an empy security group. The test is to make sure that the VM is not pingable.

  • spawn_speed - Test is used to calculate the average time to spawn a VM

  • ssh_one_instance - This test will spawn a VM and attempt to run 'uptime' via ssh

Example Output

jc@z3:~/jc/tarkin_natter/tarkin$ . novarc

jc@z3:~/jc/tarkin_natter/tarkin$ python run_tests.py

# Running: test_check_for_one_ami

CheckForOneAMI PASS (time_elapsed:0.169898033142)

# Running: test_floating_allocate

FloatingAllocate_allocate PASS ()

FloatingAllocate_release PASS ()

# Running: test_instance_correct_ip

InstanceCorrectIP PASS (instance_id:i-00000696)

# Running: test_instance_ping_google

InstancePingGoogle_ping_ip PASS ()

InstancePingGoogle_ping_dns PASS ()

# Running: test_keypair

KeyPair PASS ()

# Running: test_l3_instance_network_settings

L3InstanceNetworkSettings_correct_ip PASS ()

L3InstanceNetworkSettings_correct_netmask PASS ()

L3InstanceNetworkSettings_correct_broadcast PASS ()

L3InstanceNetworkSettings_correct_mac PASS ()

L3InstanceNetworkSettings_correct_gw PASS ()

L3InstanceNetworkSettings_ping_gw PASS ()

# Running: test_ping_one_instance

PingOneInstance PASS (time_till_ping:16.7450270653)

# Running: test_run_one_instance

RunOneInstance PASS (time_till_running:9.87155604362)

# Running: test_sg_create

SGCreate PASS (ellapsed_time:0.100999116898)

# Running: test_sg_good_bad_source_group

SGGoodBadSourceGroup_good_ping_dest PASS ()

SGGoodBadSourceGroup_bad_ping_dest PASS ()

SGGoodBadSourceGroup_good_ssh_dest PASS ()

SGGoodBadSourceGroup_bad_ssh_dest PASS ()

# Running: test_sg_instance_block_all

SGInstanceBlockAll PASS ()

# Running: test_spawn_speed

SpawnSpeed PASS (time_till_ping:32.6743571758, ip:10.10.0.74, time_till_running:26.166697979)

# Running: test_ssh_one_instance

SSHOneInstance PASS ()

# Running: test_floating_associate

FloatingAssociateassoc PASS ()

FloatingAssociateping PASS ()

FloatingAssociaterelease PASS ()

FloatingAssociatedisassoc PASS ()

  • The format is: TEST_NAME PASS|FAIL (ADDITIONAL_INFO)

Notes

  • Currently requires eventlet 0.9.15, 0.9.16 has bugs that don't work with paramiko
Something went wrong with that request. Please try again.