-
Notifications
You must be signed in to change notification settings - Fork 3
/
wscript
56 lines (42 loc) · 1.69 KB
/
wscript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#! /usr/bin/env python
# encoding: utf-8
from waflib.Configure import conf
import yaml
from lib import AWS
from lib import glue
APPNAME = 'Platform'
VERSION = '0.0.1'
def generate_final_playbook(task):
task.outputs[0].write("\n\n".join([file(play.abspath()).read() for play in task.inputs]))
def options(ctx):
"""Configuration step for the platform."""
ctx.add_option('--skip-local-check', action='store', default=False, help='Skip vagrant and VirtualBox checks.')
def configure(ctx):
"""Configure step for the platform."""
ctx.env.platform = yaml.load(open('platform.yml'))
def build(ctx):
"""Build step for the platform."""
ctx(rule=AWS.generate_vpc_template, source='platform.yml', target='vpc_template.json')
ctx(rule=AWS.generate_vpc_playbook, source='vpc_template.json', target='vpc.playbook')
ctx(rule=AWS.generate_management_host_playbook, source='vpc.playbook', target='management.playbook')
ctx(rule=generate_final_playbook, source=['vpc.playbook', 'management.playbook'], target='platform.playbook')
ctx(rule=glue.run_ansible, source='platform.playbook')
@conf
def check(ctx):
"""Check that all dependencies are installed and at least the minimum required version."""
print('Looking for dependencies...')
from lib.tests import boto_test
from lib.tests import ansible_test
from lib.tests import vagrant_test
from lib.tests import virtualbox_test
try:
boto_test.test()
ansible_test.test()
if not ctx.options.skip_local_check:
vagrant_test.test()
virtualbox_test.test()
except Exception as inst:
print '\033[0;31m'
print inst
print '\033[0m'
exit(1)