From f595c31b29147efb1410756b491ff7bf48d256ec Mon Sep 17 00:00:00 2001 From: Michal Skalski Date: Thu, 28 Jan 2016 15:28:07 +0100 Subject: Create local mirrors for offline installation - switch to fuel-mirror [1] - plugin developers can create packages.yaml file with names of required packages - use custom configuration for fuel-bootstrap which always point to local repositories - delay process of bootstrap image creation until mirrors will be ready [1] https://github.com/openstack/fuel-mirror Change-Id: Ie4a47c8cc13d9ded8c6b5fe48cdcbfeb1f6277a4 Signed-off-by: Michal Skalski --- build/f_isoroot/f_repobuild/opnfv_mirror_conf.py | 50 ++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 build/f_isoroot/f_repobuild/opnfv_mirror_conf.py (limited to 'build/f_isoroot/f_repobuild/opnfv_mirror_conf.py') diff --git a/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py b/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py new file mode 100755 index 000000000..9abd0242b --- /dev/null +++ b/build/f_isoroot/f_repobuild/opnfv_mirror_conf.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +import os +import yaml + +current_snapshot = os.environ["LATEST_TARGET_UBUNTU"] +mos_version = os.environ['MOS_VERSION'] +openstack_version = os.environ['OPENSTACK_VERSION'] +mos_ubuntu = os.environ['MIRROR_MOS_UBUNTU'] +mos_ubuntu_root = os.environ['MIRROR_MOS_UBUNTU_ROOT'] +mirror_ubuntu = os.environ['MIRROR_UBUNTU_URL'] +if os.environ.get('BUILD_FUEL_PLUGINS'): + plugins = os.environ['BUILD_FUEL_PLUGINS'] +else: + plugins = os.environ['PLUGINS'] + + +configuration_file = open('fuel-mirror/contrib/fuel_mirror/etc/config.yaml').read() +conf = yaml.load(configuration_file) +conf['pattern_dir'] = '.' +conf['openstack_version'] = openstack_version +conf['mos_version'] = mos_version + +with open('opnfv-config.yaml', 'w') as outfile: + outfile.write( yaml.dump(conf, default_flow_style=False) ) + +pattern_file = open('fuel-mirror/contrib/fuel_mirror/data/ubuntu.yaml').read() +pattern = yaml.load(pattern_file) +pattern['mos_baseurl'] = "http://{}{}".format(mos_ubuntu, mos_ubuntu_root) +pattern['ubuntu_baseurl'] = mirror_ubuntu +for group in pattern['groups']['mos']: + group['uri'] = pattern['mos_baseurl'] +for group in pattern['groups']['ubuntu']: + group['uri'] = pattern['ubuntu_baseurl'] + +for plugin in plugins.split(): + path = "../{}/packages.yaml".format(plugin) + if os.path.isfile(path): + f = open(path).read() + plugin_yaml = yaml.load(f) + plugin_set = set(plugin_yaml['packages']) + main_set = set(pattern['packages']) + new_packages = plugin_set - main_set + print "Plugin {} require new packages: {}".format(plugin, ', '.join(new_packages)) + pattern['packages'] = pattern['packages'] + list(new_packages) + +pattern['requirements']['ubuntu'] = pattern['packages'] + +with open('ubuntu.yaml', 'w') as outfile: + outfile.write( yaml.safe_dump(pattern, default_flow_style=False) ) -- cgit 1.2.3-korg