root / ci / snf-ci @ 3fbbd85d
History | View | Annotate | Download (2.6 kB)
1 | 3fbbd85d | Christos Stavrakakis | #!/usr/bin/env python |
---|---|---|---|
2 | 3fbbd85d | Christos Stavrakakis | |
3 | 3fbbd85d | Christos Stavrakakis | """ |
4 | 3fbbd85d | Christos Stavrakakis | """ |
5 | 3fbbd85d | Christos Stavrakakis | from utils import SynnefoCI |
6 | 3fbbd85d | Christos Stavrakakis | from optparse import OptionParser |
7 | 3fbbd85d | Christos Stavrakakis | |
8 | 3fbbd85d | Christos Stavrakakis | CREATE_SERVER_CMD = "create" |
9 | 3fbbd85d | Christos Stavrakakis | BUILD_SYNNEFO_CMD = "build" |
10 | 3fbbd85d | Christos Stavrakakis | DEPLOY_SYNNEFO_CMD = "deploy" |
11 | 3fbbd85d | Christos Stavrakakis | TEST_SYNNEFO_CMD = "test" |
12 | 3fbbd85d | Christos Stavrakakis | RUN_BURNIN_CMD = "burnin" |
13 | 3fbbd85d | Christos Stavrakakis | ALL_CMDS = "all" |
14 | 3fbbd85d | Christos Stavrakakis | |
15 | 3fbbd85d | Christos Stavrakakis | AVAILABLE_COMMANDS = [ |
16 | 3fbbd85d | Christos Stavrakakis | CREATE_SERVER_CMD, |
17 | 3fbbd85d | Christos Stavrakakis | BUILD_SYNNEFO_CMD, |
18 | 3fbbd85d | Christos Stavrakakis | DEPLOY_SYNNEFO_CMD, |
19 | 3fbbd85d | Christos Stavrakakis | TEST_SYNNEFO_CMD, |
20 | 3fbbd85d | Christos Stavrakakis | RUN_BURNIN_CMD, |
21 | 3fbbd85d | Christos Stavrakakis | ] |
22 | 3fbbd85d | Christos Stavrakakis | |
23 | 3fbbd85d | Christos Stavrakakis | CLEAN_CONFIG_CMDS = [CREATE_SERVER_CMD, ALL_CMDS] |
24 | 3fbbd85d | Christos Stavrakakis | |
25 | 3fbbd85d | Christos Stavrakakis | USAGE = """usage: %%prog [options] command |
26 | 3fbbd85d | Christos Stavrakakis | |
27 | 3fbbd85d | Christos Stavrakakis | command: |
28 | 3fbbd85d | Christos Stavrakakis | * %s Create the slave server |
29 | 3fbbd85d | Christos Stavrakakis | * %s: Create in Synnefo packages in created server |
30 | 3fbbd85d | Christos Stavrakakis | * %s: Deploy Synnefo in created server |
31 | 3fbbd85d | Christos Stavrakakis | * %s: Run Synnefo unittests |
32 | 3fbbd85d | Christos Stavrakakis | * %s: Run snf-burnin in the deployed Synnefo |
33 | 3fbbd85d | Christos Stavrakakis | |
34 | 3fbbd85d | Christos Stavrakakis | * %s: Run all the available commands |
35 | 3fbbd85d | Christos Stavrakakis | """ % tuple([CREATE_SERVER_CMD, |
36 | 3fbbd85d | Christos Stavrakakis | BUILD_SYNNEFO_CMD, |
37 | 3fbbd85d | Christos Stavrakakis | DEPLOY_SYNNEFO_CMD, |
38 | 3fbbd85d | Christos Stavrakakis | TEST_SYNNEFO_CMD, |
39 | 3fbbd85d | Christos Stavrakakis | RUN_BURNIN_CMD, |
40 | 3fbbd85d | Christos Stavrakakis | ALL_CMDS]) |
41 | 3fbbd85d | Christos Stavrakakis | |
42 | 3fbbd85d | Christos Stavrakakis | |
43 | 3fbbd85d | Christos Stavrakakis | def main(): |
44 | 3fbbd85d | Christos Stavrakakis | parser = OptionParser(usage=USAGE) |
45 | 3fbbd85d | Christos Stavrakakis | parser.add_option("-c", "--cloud", dest="kamaki_cloud", default=None, |
46 | 3fbbd85d | Christos Stavrakakis | help="Use specified cloud, as is in .kamakirc"), |
47 | 3fbbd85d | Christos Stavrakakis | parser.add_option("-f", "--flavor", dest="flavor", default=None, |
48 | 3fbbd85d | Christos Stavrakakis | help="Name of flavor to use for the server.") |
49 | 3fbbd85d | Christos Stavrakakis | parser.add_option("-i", "--image", dest="image", default=None, |
50 | 3fbbd85d | Christos Stavrakakis | help="UUID of image to use for the server.") |
51 | 3fbbd85d | Christos Stavrakakis | |
52 | 3fbbd85d | Christos Stavrakakis | (options, args) = parser.parse_args() |
53 | 3fbbd85d | Christos Stavrakakis | |
54 | 3fbbd85d | Christos Stavrakakis | if len(args) != 1: |
55 | 3fbbd85d | Christos Stavrakakis | msg = "ERROR: Command takes exactly one argument" |
56 | 3fbbd85d | Christos Stavrakakis | parser.print_help() |
57 | 3fbbd85d | Christos Stavrakakis | |
58 | 3fbbd85d | Christos Stavrakakis | print msg |
59 | 3fbbd85d | Christos Stavrakakis | return |
60 | 3fbbd85d | Christos Stavrakakis | |
61 | 3fbbd85d | Christos Stavrakakis | command = args[0] |
62 | 3fbbd85d | Christos Stavrakakis | if command == ALL_CMDS: |
63 | 3fbbd85d | Christos Stavrakakis | for cmd in AVAILABLE_COMMANDS: |
64 | 3fbbd85d | Christos Stavrakakis | setattr(options, cmd, True) |
65 | 3fbbd85d | Christos Stavrakakis | elif command not in AVAILABLE_COMMANDS: |
66 | 3fbbd85d | Christos Stavrakakis | msg = "ERROR: Unknown command: %s" % command |
67 | 3fbbd85d | Christos Stavrakakis | parser.print_help() |
68 | 3fbbd85d | Christos Stavrakakis | |
69 | 3fbbd85d | Christos Stavrakakis | print msg |
70 | 3fbbd85d | Christos Stavrakakis | return |
71 | 3fbbd85d | Christos Stavrakakis | else: |
72 | 3fbbd85d | Christos Stavrakakis | setattr(options, command, True) |
73 | 3fbbd85d | Christos Stavrakakis | |
74 | 3fbbd85d | Christos Stavrakakis | cleanup_config = command in CLEAN_CONFIG_CMDS |
75 | 3fbbd85d | Christos Stavrakakis | synnefo_ci = SynnefoCI(cleanup_config=cleanup_config, |
76 | 3fbbd85d | Christos Stavrakakis | cloud=options.kamaki_cloud) |
77 | 3fbbd85d | Christos Stavrakakis | |
78 | 3fbbd85d | Christos Stavrakakis | if getattr(options, CREATE_SERVER_CMD, False): |
79 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.create_server(flavor_id=options.flavor, |
80 | 3fbbd85d | Christos Stavrakakis | image_id=options.image) |
81 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.clone_repo() |
82 | 3fbbd85d | Christos Stavrakakis | if getattr(options, BUILD_SYNNEFO_CMD, False): |
83 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.build_synnefo() |
84 | 3fbbd85d | Christos Stavrakakis | if getattr(options, DEPLOY_SYNNEFO_CMD, False): |
85 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.deploy_synnefo() |
86 | 3fbbd85d | Christos Stavrakakis | if getattr(options, TEST_SYNNEFO_CMD, False): |
87 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.unit_test() |
88 | 3fbbd85d | Christos Stavrakakis | if getattr(options, RUN_BURNIN_CMD, False): |
89 | 3fbbd85d | Christos Stavrakakis | synnefo_ci.run_burnin() |
90 | 3fbbd85d | Christos Stavrakakis | |
91 | 3fbbd85d | Christos Stavrakakis | |
92 | 3fbbd85d | Christos Stavrakakis | if __name__ == "__main__": |
93 | 3fbbd85d | Christos Stavrakakis | main() |