/
SConscript
113 lines (99 loc) · 4.35 KB
/
SConscript
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# -*- mode: python; -*-
#
# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
#
import os
Import('CfgmEnv')
env = CfgmEnv.Clone()
sources = [
'setup.py',
'requirements.txt',
'run_tests.sh',
'test-requirements.txt',
'.testr.conf',
'.coveragerc',
'MANIFEST.in',
'svc_monitor/__init__.py',
'svc_monitor/svc_monitor.py',
'svc_monitor/instance_manager.py',
'svc_monitor/virtual_machine_manager.py',
'svc_monitor/vrouter_instance_manager.py',
'svc_monitor/config_db.py',
'svc_monitor/db.py',
'svc_monitor/loadbalancer_agent.py',
'svc_monitor/logger.py',
'svc_monitor/nova_client.py',
'svc_monitor/scheduler/__init__.py',
'svc_monitor/scheduler/vrouter_scheduler.py',
'svc_monitor/services/__init__.py',
'svc_monitor/services/loadbalancer/__init__.py',
'svc_monitor/services/loadbalancer/drivers/__init__.py',
'svc_monitor/services/loadbalancer/drivers/abstract_driver.py',
'svc_monitor/services/loadbalancer/drivers/f5/__init__.py',
'svc_monitor/services/loadbalancer/drivers/f5/f5_driver.py',
'svc_monitor/services/loadbalancer/drivers/ha_proxy/__init__.py',
'svc_monitor/services/loadbalancer/drivers/ha_proxy/driver.py',
'svc_monitor/snat_agent.py',
'svc_monitor/tests/__init__.py',
'svc_monitor/tests/test_vrouter_instance_manager.py',
'svc_monitor/tests/test_virtual_machine_manager.py',
'svc_monitor/tests/test_dep_track.py',
'svc_monitor/tests/test_snat.py',
'svc_monitor/tests/scheduler/__init__.py',
'svc_monitor/tests/scheduler/test_vrouter_schedulers.py',
]
sources += env.SandeshGenPy('svc_mon_introspect.sandesh',
'svc_monitor/sandesh/', False)
cd_cmd = 'cd ' + Dir('.').path + ' && '
sdist_gen = env.Command('dist', sources, cd_cmd + 'python setup.py sdist')
env.Alias('controller/src/config/svc_monitor:sdist', sdist_gen)
test_sources = sources
packages = [
'%s/api-lib/dist/vnc_api-0.1dev.tar.gz' % env['TOP'],
'%s/config/common/dist/cfgm_common-0.1dev.tar.gz' % env['TOP'],
'%s/discovery/client/dist/discoveryclient-0.1dev.tar.gz' % env['TOP'],
'%s/sandesh/common/dist/sandesh-common-0.1dev.tar.gz' % env['TOP'],
'%s/tools/sandesh/library/python/dist/sandesh-0.1dev.tar.gz' % env['TOP'],
]
def BuildPyTestSetup(env, target, source):
file = open(target[0].abspath, 'w')
file.write("[easy_install]\nfind_links =")
for pkg in source:
dependency = env.File(pkg)
file.write(" %s" % os.path.dirname(dependency.abspath))
file.write("\n")
file.close()
return
if 'install' in BUILD_TARGETS:
install_cmd = env.Command(None, sources,
cd_cmd + 'python setup.py install %s' %
env['PYTHON_INSTALL_OPT'])
env.Alias('install', install_cmd)
env.Alias('install', env.Install(env['INSTALL_CONF'], 'contrail-svc-monitor.conf'))
env.Alias('install', env.InstallAs( env['INSTALL_INITD'] +
'/contrail-svc-monitor', 'contrail-svc-monitor.initd.supervisord'))
env.Alias('install', env.Install(env['INSTALL_CONF']+
'/supervisord_config_files', 'contrail-svc-monitor.ini'))
buildspace_link = os.environ.get('CONTRAIL_REPO')
if buildspace_link:
# in CI environment shebang limit exceeds for python
# in easy_install/pip, reach to it via symlink
top_path = buildspace_link + '/' + Dir('.').path
top_dir = Dir(top_path)
else:
top_dir = Dir('.')
# unit test
cov_cmd = env.Command('coveragetest.log', sdist_gen,
'cd ' + Dir(top_dir).path + ' && python setup.py run_tests --coverage 2>&1 | tee coveragetest.log')
test_cmd = env.Command('test.log', sdist_gen,
'cd ' + Dir(top_dir).path + ' && python setup.py run_tests 2>&1 | tee test.log')
test_depends = ['/config/common/dist/cfgm_common-0.1dev.tar.gz',
'/api-lib/dist/vnc_api-0.1dev.tar.gz',
'/discovery/client/dist/discoveryclient-0.1dev.tar.gz',
'/tools/sandesh/library/python/dist/sandesh-0.1dev.tar.gz',
'/sandesh/common/dist/sandesh-common-0.1dev.tar.gz',
'/config/api-server/dist/vnc_cfg_api_server-0.1dev.tar.gz',]
env.Depends(test_cmd, [env['TOP']+x for x in test_depends])
env.Depends(cov_cmd, [env['TOP']+x for x in test_depends])
env.Alias('controller/src/config/svc_monitor:test', test_cmd)
env.Alias('controller/src/config/svc_monitor:coverage', cov_cmd)