no longer rely on plcsh. Config will either import PLC.Shell or use xmlrpc, so use...
authorTony Mack <tmack@cs.princeton.edu>
Thu, 31 Jan 2008 20:11:02 +0000 (20:11 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Thu, 31 Jan 2008 20:11:02 +0000 (20:11 +0000)
qaapi/qa/tests/add_test_data.py
qaapi/qa/tests/boot_node.py
qaapi/qa/tests/check_boot_state.pyc [new file with mode: 0644]
qaapi/qa/tests/delete_test_data.py
qaapi/qa/tests/get_boot_state.py
qaapi/qa/tests/sync_person_key.py

index d4983d6..9dc84ed 100644 (file)
@@ -1,5 +1,4 @@
-#!/usr/bin/env /usr/share/plc_api/plcsh
-
+#!/usr/bin/python
 import os,sys
 from Test import Test
 from qa import utils
@@ -9,7 +8,8 @@ class add_test_data(Test):
     Adds the test data found in config to the plc db
     """   
     def call(self):
-
+       api = self.config.api
+       auth = self.config.auth
        # Make sure some required fields are in config
        required_fields = ['TEST_SITE_NAME', 'TEST_SITE_LOGIN_BASE', 'TEST_SLICE_NAME', 'TEST_PERSON_EMAIL']
        required_node_fields = ['TEST_NODE_TYPE', 'TEST_NODE_METHOD', 'TEST_NODE_HOSTNAME', 'TEST_NODE_IP',
@@ -70,11 +70,9 @@ class add_test_data(Test):
 
 
        # Add Test site
-       #sites = api.GetSites(auth, {'login_base': site_fields['login_base']})
-       sites = GetSites({'login_base': site_fields['login_base']})
+       sites = api.GetSites(auth, {'login_base': site_fields['login_base']})
        if not sites:
-           #site_id =  api.AddSite(auth, site_fields)
-           site_id = AddSite(site_fields)
+           site_id = api.AddSite(auth, site_fields)
            site_fields['site_id'] = site_id
            site = site_fields
            if self.config.verbose:
@@ -86,11 +84,9 @@ class add_test_data(Test):
 
        # Add Test nodes
        for node_fields in node_list:
-           #nodes = api.GetNodes(auth, [node_fields['hostname']])
-           nodes = GetNodes([node_fields['hostname']])
+           nodes = api.GetNodes(auth, [node_fields['hostname']])
            if not nodes:
-               #node_id = api.AddNode(auth, site_fields['login_base'], node_fields)
-               node_id = AddNode(site_fields['login_base'], node_fields)
+               node_id = api.AddNode(auth, site_fields['login_base'], node_fields)
                node_fields['node_id'] = node_id
                node = node_fields
                nodes.append(node_fields)
@@ -103,8 +99,7 @@ class add_test_data(Test):
 
            # Add node network
            if not node['nodenetwork_ids']:
-               #nodenetwork_id = api.AddNodeNetwork(auth, node_fields['hostname'], node_fields)
-               nodenetwork_id = AddNodeNetwork(node_fields['hostname'], node_fields)
+               nodenetwork_id = api.AddNodeNetwork(auth, node_fields['hostname'], node_fields)
                if self.config.verbose:
                    utils.header("Added test nodenetwork")
            else:
@@ -112,11 +107,9 @@ class add_test_data(Test):
                    utils.header("Nodenetwork found")   
        
        # Add Test slice
-       #slices = api.GetSlices(auth, [slice_fields['name']])
-       slices = GetSlices([slice_fields['name']])
+       slices = api.GetSlices(auth, [slice_fields['name']])
        if not slices:
-           #slice_id = api.AddSlice(auth, slice_fields)
-           slice_id = AddSlice(slice_fields)
+           slice_id = api.AddSlice(auth, slice_fields)
            slice_fields['slice_id'] = slice_id
            slice = slice_fields
            if self.config.verbose:
@@ -130,8 +123,7 @@ class add_test_data(Test):
        node_ids = [n['node_id'] for n in nodes]
        node_ids = filter(lambda node_id: node_id not in slice['node_ids'], node_ids)
        if node_ids:
-           #api.AddSliceToNodes(auth, slice['name'], node_ids)
-           AddSliceToNodes(slice['name'], node_ids)
+           api.AddSliceToNodes(auth, slice['name'], node_ids)
            if self.config.verbose:
                utils.header("Added test slice to test nodes")
        else:
@@ -139,11 +131,9 @@ class add_test_data(Test):
                utils.header("Test slice found on test nodes")
 
        # Add test person
-       #persons = api.GetPersons(auth, [person_fields['email']])
-       persons = GetPersons([person_fields['email']])
+       persons = api.GetPersons(auth, [person_fields['email']])
        if not persons:
-           #person_id = api.AddPerson(auth, person_fields)
-           person_id = AddPerson(person_fields)
+           person_id = api.AddPerson(auth, person_fields)
            person_fields['person_id'] = person_id
            person = person_fields
            if self.config.verbose:
@@ -154,12 +144,10 @@ class add_test_data(Test):
                utils.header("Test person found")
        
        # Add roles to person
-       #api.AddRoleToPerson(auth, 'user', person['email'])
-       AddRoleToPerson('user', person['email'])
+       api.AddRoleToPerson(auth, 'user', person['email'])
        # Add person to site
        if site['site_id'] not in person['site_ids']:   
-           #api.AddPersonToSite(auth, person['email'], site['login_base'])
-           AddPersonToSite(person['email'], site['login_base'])
+           api.AddPersonToSite(auth, person['email'], site['login_base'])
            if self.config.verbose:
                utils.header("Added test person to test site")
        else:
@@ -168,8 +156,7 @@ class add_test_data(Test):
 
        # Add person to slice
        if slice['slice_id'] not in person['slice_ids']:
-            #api.AddPersonToSlice(auth, person_fields['email'], slice_fields['name'])
-           AddPersonToSlice(person_fields['email'], slice_fields['name'])
+            api.AddPersonToSlice(auth, person_fields['email'], slice_fields['name'])
            if self.config.verbose:
                utils.header("Added test person to slice")
        else:
index 5d043c5..cc56c87 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env /usr/share/plc_api/plcsh
+#!/usr/bin/python
 
 import os,sys
 import base64
@@ -13,14 +13,16 @@ class boot_node(Test):
     """
 
     def call(self, hostname, image_type = 'node-iso', disk_size="4G"):
+       api = self.config.api
+       auth = self.config.auth
        tdir = "/tmp/"
        
        # validate hostname
-       nodes = GetNodes([hostname], ['hostname'])
+       nodes = api.GetNodes(auth, [hostname], ['hostname'])
        if not nodes:
            raise Exception, "No such node %(hostname)s" % locals() 
 
-       bootimage = GetBootMedium(hostname, image_type, '')
+       bootimage = api.GetBootMedium(auth, hostname, image_type, '')
        bootimage_path = '/%(tdir)s/%(hostname)s-bootcd.iso' % locals()
 
        if self.config.verbose:
diff --git a/qaapi/qa/tests/check_boot_state.pyc b/qaapi/qa/tests/check_boot_state.pyc
new file mode 100644 (file)
index 0000000..61c50bb
Binary files /dev/null and b/qaapi/qa/tests/check_boot_state.pyc differ
index 431e5de..b6c1f45 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env /usr/share/plc_api/plcsh
+#!/usr/bin/python
 
 import os, sys
 from Test import Test
@@ -11,11 +11,14 @@ class delete_test_data(Test):
     """
 
     def call(self):
-       
+       api = self.config.api
+       auth = self.config.auth 
        site_login_base = self.config.TEST_SITE_LOGIN_BASE
+       slice_name = self.config.TEST_SLICE_NAME
        
        # Deleting the site should delete everything associated with it
-       DeleteSite(site_login_base)
+       # including nodes, persons
+       api.DeleteSite(auth, site_login_base)
        if self.config.verbose:
            utils.header("Test data deleted")
 
index 95dd7c3..bebba96 100644 (file)
@@ -1,3 +1,4 @@
+#!/usr/bin/python
 import os, sys
 import time
 from qa import utils
index aa26046..d836964 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env /usr/share/plc_api/plcsh
+#!/usr/bin/python
 import os, sys
 from Test import Test
 from qa import utils
@@ -11,6 +11,7 @@ class sync_person_key(Test):
     """
 
     def make_keys(self, path, name):
+       
         if not os.path.isdir(path):
             os.mkdir(path)
         key_path = path + os.sep + name
@@ -18,6 +19,8 @@ class sync_person_key(Test):
         (stdout, stderr) = utils.popen(command)
 
     def call(self, email):
+       api = self.config.api
+       auth = self.config.auth
        email_parts = email.split("@")
        keys_filename = email_parts[0]
        keys_path = self.config.KEYS_PATH 
@@ -25,7 +28,7 @@ class sync_person_key(Test):
        public_key_path = private_key_path + ".pub"
        
        # Validate person
-       persons = GetPersons([email], ['person_id', 'key_ids'])
+       persons = api.GetPersons(auth, [email], ['person_id', 'key_ids'])
        if not persons:
            raise Exception, "No such person %(email)s"
        person = persons[0]
@@ -43,19 +46,19 @@ class sync_person_key(Test):
        public_key_file = open(public_key_path, 'r')
        public_key = public_key_file.readline()
                
-       keys = GetKeys(person['key_ids'])
+       keys = api.GetKeys(auth, person['key_ids'])
        if not keys:
            # Add current key to db
            key_fields = {'key_type': 'ssh',
                          'key': public_key}
-           AddPersonKey(person['person_id'], key_fields)
+           api.AddPersonKey(auth, person['person_id'], key_fields)
            if self.config.verbose:
                utils.header("Added public key in %(public_key_path)s to db" % locals() )
        else:
            # keys need to be checked and possibly updated
            key = keys[0]
            if key['key'] != public_key:
-               UpdateKey(key['key_id'], public_key)
+               api.UpdateKey(auth, key['key_id'], public_key)
                if self.config.verbose:
                    utils.header("Updated plc with new public key in %(public_key_path)s " % locals())
            else:
@@ -65,3 +68,4 @@ class sync_person_key(Test):
 if __name__ == '__main__':
     args = tuple(sys.argv[1:])
     sync_person_key()(*args)           
+