Statistics
| Branch: | Tag: | Revision:

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
        print
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
        print
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()