2b7a569499f9044a011fbe4becca2d0050c370e7
[archipelago] / ci / archiptest.py
1 from cluster import *
2 import os
3 from shutil import copy2 as copy
4 import datetime
5
6 class TestCluster(Cluster):
7     def execute_test(self, ci_dir, packages_dir):
8         tests = os.path.join(ci_dir, '../xseg/tools/qa')
9         self.inject_file(tests, '/root')
10         self.inject_file(packages_dir, '/root')
11         cmd = """dpkg -i \
12         libxseg0_*_amd64.deb                    \
13         libxseg0-dbg_*_amd64.deb                \
14         python-xseg_*_amd64.deb                 \
15         python-archipelago_*_amd64.deb          \
16         archipelago-modules-dkms_*_amd64.deb    \
17         archipelago_*_amd64.deb                 \
18         archipelago-dbg_*_amd64.deb             \
19         archipelago-ganeti_*_amd64.deb"""
20         remote_folder = os.path.normpath(packages_dir)
21         remote_folder = os.path.basename(remote_folder)
22         self.execute_command('cd /root/' + remote_folder + ' ; ' + cmd)
23         #self.execute_command('python /root/qa/tests.py -v', verbose=True)
24         self.execute_command('python /root/qa/tests.py -v FiledTest', verbose=True)
25         self.execute_command('python /root/qa/tests.py -v MapperdTest', verbose=True)
26         self.execute_command('python /root/qa/tests.py -v VlmcdTest', verbose=True)
27         self.execute_command('mkdir  -p /srv/archip/blocks')
28         self.execute_command('mkdir  -p /srv/archip/maps')
29         self.execute_command('mkdir  -p /mnt/mountpoint')
30         self.execute_command('archipelago start', verbose=True)
31         self.execute_command('python /root/qa/basictest.py', verbose=True)
32
33 if __name__ == '__main__':
34     now = datetime.datetime.now().strftime('%b-%d-%I%M%p-%G')
35     node = 'archipelago-test ' + now
36     token = os.environ['TOKEN']
37     token = open(token).read().strip()
38     packages_dir = os.environ['PACKAGES_DIR']
39     image_id = os.environ['IMAGE_ID']
40     image_id = open(image_id).read().strip()
41     ci_dir = os.path.dirname(os.path.abspath(__file__))
42     conffile = os.path.join(ci_dir, 'config')
43     tmpfile = '/tmp/tmpconfig_' + now
44     copy(conffile, tmpfile)
45     conffile = tmpfile
46
47     tc = TestCluster(conffile=conffile, token=token, servers=node, image_id=image_id)
48     tc.create()
49     tc.execute_test(ci_dir, packages_dir)
50     os.unlink(conffile)
51     tc.destroy()
52