diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2008-02-15 14:54:25 -0500 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2008-02-15 14:54:25 -0500 |
commit | a47ee22ab684eed992128b60b136fca90ff9f119 (patch) | |
tree | cd55daf8057049368b4aaa6d23c30408eae411d2 /tests | |
parent | 70bfc8f5a3150d09cc064a4c46efcaff80b29904 (diff) | |
parent | a7d67f35019af0c25f133c979112fc6035d7e04c (diff) | |
download | third_party-cobbler-a47ee22ab684eed992128b60b136fca90ff9f119.tar.gz third_party-cobbler-a47ee22ab684eed992128b60b136fca90ff9f119.tar.xz third_party-cobbler-a47ee22ab684eed992128b60b136fca90ff9f119.zip |
Merge branch 'devel'
Merging devel work on 0.7.X/0.8 release with master
Conflicts:
CHANGELOG
cobbler.spec
cobbler/action_import.py
cobbler/utils.py
cobbler/webui/master.py
setup.py
Diffstat (limited to 'tests')
-rw-r--r-- | tests/performance.py | 75 | ||||
-rw-r--r-- | tests/tests.py | 20 |
2 files changed, 86 insertions, 9 deletions
diff --git a/tests/performance.py b/tests/performance.py new file mode 100644 index 0000000..15b9bad --- /dev/null +++ b/tests/performance.py @@ -0,0 +1,75 @@ +# test script to evaluate Cobbler API performance +# +# Michael DeHaan <mdehaan@redhat.com> + +import os +import cobbler.api as capi +import time +import sys +import random + +N = 200 +print "sample size is %s" % N + +api = capi.BootAPI() + +# part one ... create our test systems for benchmarking purposes if +# they do not seem to exist. + +if not api.profiles().find("foo"): + print "CREATE A PROFILE NAMED 'foo' to be able to run this test" + sys.exit(0) + +def random_mac(): + mac = [ 0x00, 0x16, 0x3e, + random.randint(0x00, 0x7f), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff) ] + return ':'.join(map(lambda x: "%02x" % x, mac)) + +print "Deleting autotest entries from a previous run" +time1 = time.time() +for x in xrange(0,N): + try: + sys = api.systems().remove("autotest-%s" % x,with_delete=True) + except: + pass +time2 = time.time() +print "ELAPSED: %s seconds" % (time2 - time1) + +print "Creating test systems from scratch" +time1 = time.time() +for x in xrange(0,N): + sys = api.new_system() + sys.set_name("autotest-%s" % x) + sys.set_mac_address(random_mac()) + sys.set_profile("foo") # assumes there is already a foo + # print "... adding: %s" % sys.name + api.systems().add(sys,save=True,with_sync=False,with_triggers=False) +time2 = time.time() +print "ELAPSED %s seconds" % (time2 - time1) + +for mode2 in [ "fast", "normal", "full" ]: + for mode in [ "on", "off" ]: + + print "Running netboot edit benchmarks (turn %s, %s)" % (mode, mode2) + time1 = time.time() + for x in xrange(0,N): + sys = api.systems().find("autotest-%s" % x) + if mode == "off": + sys.set_netboot_enabled(0) + else: + sys.set_netboot_enabled(1) + # print "... editing: %s" % sys.name + if mode2 == "fast": + api.systems().add(sys, save=True, with_sync=False, with_triggers=False, quick_pxe_update=True) + if mode2 == "normal": + api.systems().add(sys, save=True, with_sync=False, with_triggers=False) + if mode2 == "full": + api.systems().add(sys, save=True, with_sync=True, with_triggers=True) + + time2 = time.time() + print "ELAPSED: %s seconds" % (time2 - time1) + + + diff --git a/tests/tests.py b/tests/tests.py index f81d508..99ba0b9 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -83,22 +83,22 @@ class BootTest(unittest.TestCase): self.assertTrue(distro.set_name("testdistro0")) self.assertTrue(distro.set_kernel(self.fk_kernel)) self.assertTrue(distro.set_initrd(self.fk_initrd)) - self.assertTrue(self.api.distros().add(distro)) - self.assertTrue(self.api.distros().find(name="testdistro0")) + self.assertTrue(self.api.add_distro(distro)) + self.assertTrue(self.api.find_distro(name="testdistro0")) profile = self.api.new_profile() self.assertTrue(profile.set_name("testprofile0")) self.assertTrue(profile.set_distro("testdistro0")) self.assertTrue(profile.set_kickstart(FAKE_KICKSTART)) - self.assertTrue(self.api.profiles().add(profile)) - self.assertTrue(self.api.profiles().find(name="testprofile0")) + self.assertTrue(self.api.add_profile(profile)) + self.assertTrue(self.api.find_profile(name="testprofile0")) system = self.api.new_system() self.assertTrue(system.set_name("drwily.rdu.redhat.com")) self.assertTrue(system.set_mac_address("BB:EE:EE:EE:EE:FF","intf0")) self.assertTrue(system.set_profile("testprofile0")) - self.assertTrue(self.api.systems().add(system)) - self.assertTrue(self.api.systems().find(name="drwily.rdu.redhat.com")) + self.assertTrue(self.api.add_system(system)) + self.assertTrue(self.api.find_system(name="drwily.rdu.redhat.com")) class MultiNIC(BootTest): @@ -121,13 +121,15 @@ class MultiNIC(BootTest): self.assertTrue(system.set_subnet("255.255.255.0","intf4")) self.assertTrue(system.set_dhcp_tag("tag2","intf5")) self.assertTrue(self.api.systems().add(system)) - self.assertTrue(self.api.systems().find(hostname="zero")) + # mixing in some higher level API calls with some lower level internal stuff + # just to make sure it's all good. + self.assertTrue(self.api.find_system(hostname="zero")) self.assertTrue(self.api.systems().find(mac_address="EE:FF:DD:CC:DD:CC")) self.assertTrue(self.api.systems().find(ip_address="127.0.0.5")) - self.assertTrue(self.api.systems().find(virt_bridge="zero")) + self.assertTrue(self.api.find_system(virt_bridge="zero")) self.assertTrue(self.api.systems().find(gateway="192.168.1.25")) self.assertTrue(self.api.systems().find(subnet="255.255.255.0")) - self.assertTrue(self.api.systems().find(dhcp_tag="tag2")) + self.assertTrue(self.api.find_system(dhcp_tag="tag2")) self.assertTrue(self.api.systems().find(dhcp_tag="zero")) # verify that systems has exactly 5 interfaces |