Create local mirrors for offline installation
[fuel.git] / build / f_isoroot / f_repobuild / opnfv_mirror_conf.py
1 #!/usr/bin/env python
2
3 import os
4 import yaml
5
6 current_snapshot =  os.environ["LATEST_TARGET_UBUNTU"]
7 mos_version = os.environ['MOS_VERSION']
8 openstack_version = os.environ['OPENSTACK_VERSION']
9 mos_ubuntu = os.environ['MIRROR_MOS_UBUNTU']
10 mos_ubuntu_root = os.environ['MIRROR_MOS_UBUNTU_ROOT']
11 mirror_ubuntu = os.environ['MIRROR_UBUNTU_URL']
12 if os.environ.get('BUILD_FUEL_PLUGINS'):
13   plugins = os.environ['BUILD_FUEL_PLUGINS']
14 else:
15   plugins = os.environ['PLUGINS']
16
17
18 configuration_file = open('fuel-mirror/contrib/fuel_mirror/etc/config.yaml').read()
19 conf = yaml.load(configuration_file)
20 conf['pattern_dir'] = '.'
21 conf['openstack_version'] = openstack_version
22 conf['mos_version'] = mos_version
23
24 with open('opnfv-config.yaml', 'w') as outfile:
25   outfile.write( yaml.dump(conf, default_flow_style=False) )
26
27 pattern_file = open('fuel-mirror/contrib/fuel_mirror/data/ubuntu.yaml').read()
28 pattern = yaml.load(pattern_file)
29 pattern['mos_baseurl'] = "http://{}{}".format(mos_ubuntu, mos_ubuntu_root)
30 pattern['ubuntu_baseurl'] = mirror_ubuntu
31 for group in pattern['groups']['mos']:
32   group['uri'] = pattern['mos_baseurl']
33 for group in pattern['groups']['ubuntu']:
34   group['uri'] = pattern['ubuntu_baseurl']
35
36 for plugin in plugins.split():
37   path = "../{}/packages.yaml".format(plugin)
38   if os.path.isfile(path):
39     f = open(path).read()
40     plugin_yaml = yaml.load(f)
41     plugin_set = set(plugin_yaml['packages'])
42     main_set = set(pattern['packages'])
43     new_packages = plugin_set - main_set
44     print "Plugin {} require new packages: {}".format(plugin, ', '.join(new_packages))
45     pattern['packages'] = pattern['packages'] + list(new_packages)
46
47 pattern['requirements']['ubuntu'] = pattern['packages']
48
49 with open('ubuntu.yaml', 'w') as outfile:
50   outfile.write( yaml.safe_dump(pattern, default_flow_style=False) )