aboutsummaryrefslogtreecommitdiffstats
path: root/build/f_isoroot/f_repobuild
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-09-05 13:25:08 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-09-05 13:25:08 +0000
commita1a413ad65c31ebf5dc42924f7ed04ab02a04872 (patch)
treebfe49085fe03cc6578ca9cd00ea82802bb57d1be /build/f_isoroot/f_repobuild
parent14d7bf43d3790a0a5fb69c9eff0e93b9fd63c5ba (diff)
parent1b89628e4571a65245a743e4a85d38438a119b3d (diff)
Merge "build, deploy: Remove obsolete Fuel@Openstack code"
Diffstat (limited to 'build/f_isoroot/f_repobuild')
-rw-r--r--build/f_isoroot/f_repobuild/.gitignore4
-rw-r--r--build/f_isoroot/f_repobuild/Makefile88
-rw-r--r--build/f_isoroot/f_repobuild/config.mk23
-rw-r--r--build/f_isoroot/f_repobuild/opnfv_config.yaml174
-rwxr-xr-xbuild/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py280
-rwxr-xr-xbuild/f_isoroot/f_repobuild/select_ubuntu_repo.sh103
6 files changed, 0 insertions, 672 deletions
diff --git a/build/f_isoroot/f_repobuild/.gitignore b/build/f_isoroot/f_repobuild/.gitignore
deleted file mode 100644
index 09baca85d..000000000
--- a/build/f_isoroot/f_repobuild/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-packetary
-fuel-web
-nailgun
-opnfv_config
diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile
deleted file mode 100644
index c61d1adf5..000000000
--- a/build/f_isoroot/f_repobuild/Makefile
+++ /dev/null
@@ -1,88 +0,0 @@
-##############################################################################
-# Copyright (c) 2015,2016 Ericsson AB, Enea AB and others.
-# stefan.k.berg@ericsson.com
-# jonas.bjurel@ericsson.com
-# Alexandru.Avadanii@enea.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-SHELL := /bin/bash
-TOP := $(shell pwd)
-
-include ../../config.mk
-include config.mk
-
-export MOS_VERSION
-export MIRROR_UBUNTU_OPNFV_PATH:=$(TOP)/nailgun/mirrors/ubuntu
-
-.PHONY: all
-all: nailgun
-
-nailgun:
- sudo apt-get install -y createrepo git libxml2-dev libxslt1-dev \
- python-dev zlib1g-dev
- rm -Rf nailgun packetary opnfv_config && mkdir opnfv_config
- # We will analyze fuel-web's fixture files for package lists
- ln -sf ${F_SUBMOD_DIR}/fuel-web fuel-web
- # Same for fuel-agent's bootstrap package list
- ln -sf ${F_SUBMOD_DIR}/fuel-agent fuel-agent
- git clone --quiet $(PACKETARY_REPO)
- if [ -n $(PACKETARY_COMMIT) ]; then \
- git -C packetary checkout $(PACKETARY_COMMIT); \
- fi
- sudo pip install -U -r ./packetary/requirements.txt
- sudo pip install -U ./packetary
- # Handle config and mirror build in one place
- ./opnfv_mirror_ubuntu.py
- # Store artifact in cache straight away if caching is enabled
- # (no .cacheid will be present unless this is a cached build)
- test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
-
-.PHONY: clean
-clean:
- @rm -rf ../release/opnfv/nailgun nailgun packetary fuel-web opnfv_config
-
-.PHONY: release
-release:nailgun
- @rm -Rf ../release/opnfv/nailgun
- @mkdir -p ../release/opnfv
- @cp -Rp nailgun ../release/opnfv/nailgun
-
-############################################################################
-# Cache operations - only used when building through ci/build.sh
-############################################################################
-
-# Create a unique hash to be used for getting and putting cache, based on:
-# - Year and week (causing the cache to be rebuilt weekly)
-# - The contents of this Makefile + all sh,mk,py,yaml files in CWD
-# - repo packages fingerprint
-# - repo arch list
-.cacheid:
- date +"Repocache %G%V" > .cachedata
- sha1sum Makefile *.{sh,mk,py,yaml} >> .cachedata
- $(CACHETOOL) packages >> .cachedata
- echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- cat .cachedata | $(CACHETOOL) getid > .cacheid
-
-# Clean local data related to caching - called prior to ordinary build
-.PHONY: clean-cache
-clean-cache: clean
- rm -f .cachedata .cacheid
-
-# Try to download cache - called prior to ordinary build
-.PHONY: get-cache
-get-cache: .cacheid
- @if $(CACHETOOL) check $(shell cat .cacheid); then \
- $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\
- else \
- echo "No cache item found for $(shell cat .cacheid)" ;\
- exit 0;\
- fi
-
-# Store cache if not already stored - called after ordinary build
-.PHONY: put-cache
-put-cache: .cacheid
- @tar cf - nailgun | $(CACHETOOL) put $(shell cat .cacheid)
diff --git a/build/f_isoroot/f_repobuild/config.mk b/build/f_isoroot/f_repobuild/config.mk
deleted file mode 100644
index 68101d6ec..000000000
--- a/build/f_isoroot/f_repobuild/config.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Ericsson AB, Enea AB and others.
-# stefan.k.berg@ericsson.com
-# jonas.bjurel@ericsson.com
-# Alexandru.Avadanii@enea.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Use a recent master commit, since tags/branches are not yet mature
-export PACKETARY_REPO?=https://github.com/openstack/packetary
-export PACKETARY_COMMIT?=c3c2069e2ec46b35eb342386efbf366bb6340027
-
-# arm64 Ubuntu mirror is separated from archive.ubuntu.com
-export MIRROR_UBUNTU_URL_arm64=http://ports.ubuntu.com/ubuntu-ports/
-export MIRROR_UBUNTU_ROOT_arm64=ubuntu-ports
-
-# Merge all local mirror repo components/section into single "main"
-# NOTE: When changing this, make sure to also update all consumer config, like:
-# - fuel-menu/fuelmenu/settings.yaml
-export MIRROR_UBUNTU_MERGE=true
diff --git a/build/f_isoroot/f_repobuild/opnfv_config.yaml b/build/f_isoroot/f_repobuild/opnfv_config.yaml
deleted file mode 100644
index bf3913cc4..000000000
--- a/build/f_isoroot/f_repobuild/opnfv_config.yaml
+++ /dev/null
@@ -1,174 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Enea AB and others.
-# Alexandru.Avadanii@enea.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# REPO definitions
-
-# Based on old fuel-mirror data [1], adapted for OPNFV and packetary.
-# NOTE: 'uri' field will be added by opnfv_mirror_ubuntu.py from ENV.
-# [1] https://github.com/openstack/fuel-mirror/blob/stable/mitaka/
-# contrib/fuel_mirror/data/ubuntu.yaml
-
-# Main is a required parameter which defines what repository will be used
-# for images creation and that mirror should contain all packages for minimal
-# system creation.
-groups:
- ubuntu:
- - name: "ubuntu"
- main: true
- suite: "xenial"
- section:
- - "main"
- - "multiverse"
- - "restricted"
- - "universe"
- type: "deb"
- priority: null
-
- - name: "ubuntu-updates"
- suite: "xenial-updates"
- section:
- - "main"
- - "multiverse"
- - "restricted"
- - "universe"
- type: "deb"
- priority: null
-
- - name: "ubuntu-security"
- suite: "xenial-security"
- section:
- - "main"
- - "multiverse"
- - "restricted"
- - "universe"
- type: "deb"
- priority: null
-
- mos:
- - name: "mos"
- suite: "mos$mos_version"
- section:
- - "main"
- - "restricted"
- type: "deb"
- priority: 1000
-
- - name: "mos-updates"
- suite: "mos$mos_version-updates"
- section:
- - "main"
- - "restricted"
- type: "deb"
- priority: 1000
-
- - name: "mos-security"
- suite: "mos$mos_version-security"
- section:
- - "main"
- - "restricted"
- type: "deb"
- priority: 1000
-
- - name: "mos-holdback"
- suite: "mos$mos_version-holdback"
- section:
- - "main"
- - "restricted"
- type: "deb"
- priority: 1000
-
-# PACKAGES
-
-# This section lists packages that should be present in the local Ubuntu mirror,
-# but are not direct dependencies of any other packages from MOS or Ubuntu.
-# e.g.: additional kernels, bootloaders etc.
-
-packages:
- - name: "vgabios"
-# Packages are required to build bootstrap images for a system.
-# The mirror should contiain such packages in addition to local mirror.
- - name: "acpi-support"
- - name: "anacron"
- - name: "aptitude"
- - name: "atop"
- - name: "acct"
- - name: "bash-completion"
- - name: "bc"
- - name: "build-essential"
- - name: "ceph"
- - name: "cloud-init"
- - name: "conntrackd"
- - name: "cpu-checker"
- - name: "cpufrequtils"
- - name: "debconf-utils"
- - name: "devscripts"
- - name: "fping"
- - name: "galera-3"
- - name: "git"
- - name: "grub-pc"
- - name: "htop"
- - name: "hwloc"
- - name: "ifenslave"
- - name: "iperf"
- - name: "iptables-persistent"
- - name: "irqbalance"
- - name: "language-pack-en"
- - name: "libapache2-mod-fastcgi"
- - name: "libnss3-tools"
- - name: "linux-headers-generic-lts-xenial"
- - name: "linux-image-generic-lts-xenial"
- - name: "live-boot"
- - name: "livecd-rootfs"
- - name: "mc"
- - name: "memcached"
- - name: "mongodb-server"
- - name: "monit"
- - name: "msmtp-mta"
- - name: "multipath-tools"
- - name: "multipath-tools-boot"
- - name: "nginx"
- - name: "ntp"
- - name: "openssh-server"
- - name: "pcs"
- - name: "percona-toolkit"
- - name: "percona-xtrabackup"
- - name: "pm-utils"
- - name: "postfix"
- - name: "puppet"
- - name: "python-lesscpy"
- - name: "python-mysqldb"
- - name: "python-pip"
- - name: "radosgw"
- - name: "rbd-fuse"
- - name: "rsyslog-gnutls"
- - name: "rsyslog-relp"
- - name: "screen"
- - name: "squashfs-tools"
- - name: "swift-plugin-s3"
- - name: "sysfsutils"
- - name: "sysstat"
- - name: "telnet"
- - name: "tmux"
- - name: "traceroute"
- - name: "ubuntu-standard"
- - name: "vim"
- - name: "virt-what"
- - name: "xinetd"
- - name: "xmlstarlet"
- - name: "tftpd-hpa"
- - name: "syslinux"
-
-# OPNFV BLACKLIST
-
-# Packetary's dependency solving mechanism brings in more than one alternative
-# For example, "Depends: upstart | systemd-sysv" brings both packages, which
-# leads to debootstrap using "upstart" (1st option available in local repo).
-
-opnfv_blacklist:
- - name: "upstart"
diff --git a/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py b/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py
deleted file mode 100755
index 7c383639e..000000000
--- a/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py
+++ /dev/null
@@ -1,280 +0,0 @@
-#!/usr/bin/env python
-##############################################################################
-# Copyright (c) 2015,2016 Ericsson AB, Mirantis Inc., Enea AB and others.
-# mskalski@mirantis.com
-# Alexandru.Avadanii@enea.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-"""Build multiarch partial local Ubuntu mirror using packetary"""
-
-##############################################################################
-# Design quirks / workarounds:
-# 1. Fuel-agent uses `debootstrap` to build bootstrap and target chroots from
-# the local mirror; which only uses the "main" component from the first
-# repository, i.e. does not include "updates"/"security".
-# In order to fullfill all debootstrap dependencies in "main" repo, we will
-# do an extra packetary run using a reduced scope:
-# - only "main" component of the first mirror;
-# - reduced package dependency list (without MOS/OPNFV plugin deps).
-# 2. If repo structure is not mandatory to be in sync with official mirrors,
-# we can mitigate the issue by "merging" all repo-components into a single
-# "main".
-##############################################################################
-# Mirror build steps (for EACH architecture in UBUNTU_ARCH):
-# 1. Collect bootstrap package deps from fuel-agent's <settings.yaml.sample>;
-# 2. Collect all fixture release packages from fuel-web's <openstack.yaml>;
-# 3. Parse new "opnfv_config.yaml" list of packages (from old fuel-mirror);
-# 4. Inherit enviroment variable(s) for mirror URLs, paths etc.
-# - Allow arch-specific overrides for each env var;
-# 5. Mirror config is defined based on common config + OPNFV overrides;
-# - Convert old configuration format to packetary style where needed;
-# 6. Package lists are defined based on common config + OPNFV deps;
-# - Keep track of "main" packages separately, required by debootstrap;
-# 7. Clone/update all mirror components;
-# 8. IF mirror merging is disabled:
-# - Clone/update "main" mirror component (fix missing debootstrap deps);
-# 9. IF mirror merging is enabled:
-# - Use `dpkg-scanpackages` to filter out old versions of duplicate pkgs;
-# - Run `packetary create` on the set of downloaded packages, merging
-# them on the fly into a single-component mirror;
-##############################################################################
-
-from copy import deepcopy
-import os
-import shutil
-import sys
-import yaml
-from contextlib import contextmanager
-from cStringIO import StringIO
-from packetary.cli.app import main
-
-@contextmanager
-def capture_stdout(output):
- """Context manager for capturing stdout"""
- stdout = sys.stdout
- sys.stdout = output
- yield
- sys.stdout = stdout
-
-# FIXME: Find a better approach for eliminating duplicate logs than this
-def force_logger_reload():
- """Force logger reload (ugly hack to prevent log duplication)"""
- for mod in sys.modules.keys():
- if mod.startswith('logging'):
- try:
- reload(sys.modules[mod])
- except:
- pass
-
-def get_unres_pkgs(architecture, cfg_mirror):
- """Determine missing package dependecies for a mirror defition"""
- unresolved_pkgs = list()
- packetary_output = StringIO()
- with capture_stdout(packetary_output):
- main('unresolved -a {0} -r {1} -c name version --sep ;'
- .format(_ARCH[architecture], cfg_mirror).split(' '))
- for dep_pkg in packetary_output.getvalue().splitlines():
- if dep_pkg.startswith('#'):
- continue
- dep = dep_pkg.split(';')
- unresolved_pkgs += [{'name': dep[0], 'version': dep[1]}]
- force_logger_reload()
- return unresolved_pkgs
-
-def from_legacy_pkglist(legacy_pkglist):
- """Package list conversion from `old fuel-mirror` to `packetary` style"""
- pkglist = list()
- for pkg in legacy_pkglist:
- pkglist += [{'name': pkg}]
- return pkglist
-
-def to_legacy_pkglist(pkglist):
- """Package list conversion from `packetary` style to `old fuel-mirror`"""
- legacy_pkglist = list()
- for pkg in pkglist:
- legacy_pkglist.append(pkg['name'])
- return legacy_pkglist
-
-def legacy_diff(base_pkglist, new_pkglist, requester, architecture):
- """Package list diff (old format)"""
- diff_set = set(new_pkglist)
- if base_pkglist:
- diff_set -= set(base_pkglist)
- if diff_set:
- print(' * {0} requires new packages for architecture [{1}]: {2}'
- .format(requester, architecture, ', '.join(diff_set)))
- return list(diff_set)
-
-def do_local_repo(architecture, cfg_repo, cfg_packages_paths):
- """Create single-component local repo (one architecture per call)"""
- # Packetary does not use a global config file, so pass old settings here.
- main('create -t deb -a {0} --repository {1} --package-files {2}'
- ' --ignore-errors-num 2 --retries-num 3 --threads-num 10'
- .format(_ARCH[architecture], cfg_repo, cfg_packages_paths).split(' '))
- force_logger_reload()
-
-def do_partial_mirror(architecture, cfg_mirror, cfg_packages):
- """Clone partial local mirror (one architecture per call)"""
- # Note: '-d .' is ignored, as each mirror defines its own path.
- main('clone -t deb -a {0} -r {1} -R {2} -d .'
- ' --ignore-errors-num 2 --retries-num 3 --threads-num 10'
- .format(_ARCH[architecture], cfg_mirror, cfg_packages).split(' '))
- force_logger_reload()
-
-def write_cfg_file(cfg_mirror, data):
- """Write configuration (yaml) file (package list / mirror defition)"""
- with open(cfg_mirror, 'w') as outfile:
- outfile.write(yaml.safe_dump(data, default_flow_style=False))
-
-def get_env(env_var, architecture=None):
- """Evaluate architecture-specific overrides of env vars"""
- if architecture:
- env_var_arch = '{0}_{1}'.format(env_var, architecture)
- if os.environ.get(env_var_arch):
- return os.environ[env_var_arch]
- if os.environ.get(env_var):
- return os.environ[env_var]
- return None
-
-# Architecture name mapping (dpkg:packetary) for packetary CLI invocation
-_ARCH = {
- "i386": "i386",
- "amd64": "x86_64",
- "arm64": "aarch64",
-}
-
-# Arch-indepedent configuration (old fuel-mirror + OPNFV extra packages)
-CFG_D = 'opnfv_config'
-CFG_OPNFV = 'opnfv_config.yaml'
-MOS_VERSION = get_env('MOS_VERSION')
-UBUNTU_ARCH = get_env('UBUNTU_ARCH')
-MIRROR_UBUNTU_PATH = get_env('MIRROR_UBUNTU_OPNFV_PATH')
-MIRROR_UBUNTU_TMP_PATH = '{0}.tmp'.format(MIRROR_UBUNTU_PATH)
-MIRROR_UBUNTU_MERGE = get_env('MIRROR_UBUNTU_MERGE')
-CFG_MM_UBUNTU = '{0}/ubuntu_mirror_local.yaml'.format(CFG_D)
-FUEL_BOOTSTRAP_CLI_FILE = open('fuel-agent/contrib/fuel_bootstrap/'
- 'fuel_bootstrap_cli/fuel_bootstrap/settings.yaml.sample').read()
-FUEL_BOOTSTRAP_CLI = yaml.load(FUEL_BOOTSTRAP_CLI_FILE)
-FIXTURE_FILE = open('fuel-web/nailgun/nailgun/fixtures/openstack.yaml').read()
-FIXTURE = yaml.load(FIXTURE_FILE)
-OPNFV_CFG_YAML = open(CFG_OPNFV).read()
-OPNFV_CFG = yaml.load(OPNFV_CFG_YAML)
-
-# Create local partial mirror using packetary, one arch at a time
-for arch in UBUNTU_ARCH.split(' '):
- # Mirror / Package env vars, arch-overrideable
- mos_ubuntu = get_env('MIRROR_MOS_UBUNTU', arch)
- mos_ubuntu_root = get_env('MIRROR_MOS_UBUNTU_ROOT', arch)
- mirror_ubuntu = get_env('MIRROR_UBUNTU_URL', arch)
- plugins = get_env('BUILD_FUEL_PLUGINS', arch)
- if plugins is None:
- plugins = get_env('PLUGINS', arch)
-
- # Mirror / Package list configuration files (arch-specific)
- cfg_m_mos = '{0}/mos_{1}_mirror.yaml'.format(CFG_D, arch)
- cfg_m_ubuntu = '{0}/ubuntu_{1}_mirror.yaml'.format(CFG_D, arch)
- cfg_p_ubuntu = '{0}/ubuntu_{1}_packages.yaml'.format(CFG_D, arch)
- cfg_m_ubuntu_main = '{0}/ubuntu_{1}_mirror_main.yaml'.format(CFG_D, arch)
- cfg_p_ubuntu_main = '{0}/ubuntu_{1}_packages_main.yaml'.format(CFG_D, arch)
-
- # Mirror config fork before customizing (arch-specific)
- arch_mos = 'mos_{0}'.format(arch)
- arch_ubuntu = 'ubuntu_{0}'.format(arch)
- arch_packages = 'packages_{0}'.format(arch)
- OPNFV_CFG['groups'][arch_mos] = deepcopy(OPNFV_CFG['groups']['mos'])
- OPNFV_CFG['groups'][arch_ubuntu] = deepcopy(OPNFV_CFG['groups']['ubuntu'])
- OPNFV_CFG[arch_packages] = OPNFV_CFG['packages']
-
- # Mirror config update & conversion to packetary input
- group_main_ubuntu = dict()
- for group in OPNFV_CFG['groups'][arch_mos]:
- group['uri'] = "http://{}{}".format(mos_ubuntu, mos_ubuntu_root)
- group['suite'] = group['suite'].replace('$mos_version', MOS_VERSION)
- for group in OPNFV_CFG['groups'][arch_ubuntu]:
- group['uri'] = mirror_ubuntu
- # FIXME: At `create`, packetary insists on copying all pkgs to dest dir,
- # so configure it for another dir, which will replace the orig.
- group['path'] = MIRROR_UBUNTU_TMP_PATH
- if not group_main_ubuntu and 'main' in group:
- group_main_ubuntu = [deepcopy(group)]
- group_main_ubuntu[0]['section'] = ['main']
-
- # Mirror config dump: MOS (for dep resolution), Ubuntu, Ubuntu[main]
- write_cfg_file(cfg_m_mos, OPNFV_CFG['groups'][arch_mos])
- write_cfg_file(cfg_m_ubuntu, OPNFV_CFG['groups'][arch_ubuntu])
- if MIRROR_UBUNTU_MERGE is None:
- write_cfg_file(cfg_m_ubuntu_main, group_main_ubuntu)
- else:
- # FIXME: For multiarch, only one dump would be enough
- group_main_ubuntu[0]['origin'] = 'Ubuntu'
- group_main_ubuntu[0]['path'] = MIRROR_UBUNTU_PATH
- group_main_ubuntu[0]['uri'] = MIRROR_UBUNTU_PATH
- write_cfg_file(CFG_MM_UBUNTU, group_main_ubuntu[0])
-
- # Collect package dependencies from:
- ## 1. fuel_bootstrap_cli (bootstrap image additional packages)
- legacy_unresolved = legacy_diff(None, FUEL_BOOTSTRAP_CLI['packages'] + [
- FUEL_BOOTSTRAP_CLI['kernel_flavor'],
- FUEL_BOOTSTRAP_CLI['kernel_flavor'].replace('image', 'headers')],
- 'Bootstrap', arch)
- ## 2. openstack.yaml FIXTURE definition (default target image packages)
- for release in FIXTURE:
- editable = release['fields']['attributes_metadata']['editable']
- if 'provision' in editable and 'packages' in editable['provision']:
- release_pkgs = editable['provision']['packages']['value'].split()
- legacy_unresolved += legacy_diff(legacy_unresolved, release_pkgs,
- 'Release {0}'.format(release['fields']['name']), arch)
- ## 3. OPNFV additional packages (includes old fuel-mirror ubuntu.yaml pkgs)
- unresolved = dict()
- unresolved['mandatory'] = 'exact'
- unresolved['packages'] = from_legacy_pkglist(legacy_unresolved)
- if 'packages' in OPNFV_CFG:
- legacy_diff(legacy_unresolved, to_legacy_pkglist(OPNFV_CFG['packages']),
- 'OPNFV config', arch)
- unresolved['packages'] += OPNFV_CFG['packages']
-
- # OPNFV plugins dependency resolution
- if plugins:
- for plugin in plugins.split():
- path = "../{}/packages.yaml".format(plugin)
- if os.path.isfile(path):
- f = open(path).read()
- plugin_yaml = yaml.load(f)
- new_pkgs = legacy_diff(
- to_legacy_pkglist(unresolved['packages']),
- plugin_yaml['packages'], 'Plugin {0}'.format(plugin), arch)
- unresolved['packages'] += from_legacy_pkglist(new_pkgs)
-
- # Package list (reduced, i.e. no MOS deps, but with OPNFV plugin deps)
- if MIRROR_UBUNTU_MERGE is None:
- write_cfg_file(cfg_p_ubuntu_main, unresolved)
-
- # Mirror package list (full, including MOS/OPNFV plugin deps)
- unresolved['packages'] += get_unres_pkgs(arch, cfg_m_mos)
- write_cfg_file(cfg_p_ubuntu, unresolved)
- do_partial_mirror(arch, cfg_m_ubuntu, cfg_p_ubuntu)
- if MIRROR_UBUNTU_MERGE is None:
- # Ubuntu[main] must be evaluated after Ubuntu
- do_partial_mirror(arch, cfg_m_ubuntu_main, cfg_p_ubuntu_main)
-
-if MIRROR_UBUNTU_MERGE is None:
- shutil.move(MIRROR_UBUNTU_TMP_PATH, MIRROR_UBUNTU_PATH)
-else:
- # Construct single-component mirror from all components
- for arch in UBUNTU_ARCH.split(' '):
- cfg_pp_ubuntu = '{0}/ubuntu_{1}_packages_paths.yaml'.format(CFG_D, arch)
- # OPNFV blacklist
- opnfv_blacklist = to_legacy_pkglist(OPNFV_CFG['opnfv_blacklist'])
- # FIXME: We need scanpackages to omit older DEBs
- # Inspired from http://askubuntu.com/questions/198474/
- os.system('dpkg-scanpackages -a {0} {1} 2>/dev/null | '
- 'grep -e "^Filename:" | sed "s|Filename: |- file://|g" | '
- 'grep -v -E "\/({2})_" > {3}'
- .format(arch, MIRROR_UBUNTU_TMP_PATH,
- '|'.join(opnfv_blacklist), cfg_pp_ubuntu))
- do_local_repo(arch, CFG_MM_UBUNTU, cfg_pp_ubuntu)
- shutil.rmtree(MIRROR_UBUNTU_TMP_PATH)
diff --git a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
deleted file mode 100755
index c8c86db53..000000000
--- a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/bash
-
-UBUNTU_DISTRO="xenial"
-BLACKLIST="http://mirrors.se.eu.kernel.org/ubuntu/"
-#BLACKLIST+=" http://foo.bar"
-
-cleanup() {
- rm -f $TMPFILE
-}
-
-debugmsg() {
- test -n "$DEBUG" && echo "$@" >&2
-}
-
-
-# Check if url is blacklisted in this script
-blacklisted () {
- for blackurl in $BLACKLIST
- do
- if [ "$1" == "$blackurl" ]; then
- return 0
- fi
- done
- return 1
-}
-
-
-# Check mirror's integrity
-check_mirror () {
- mirror=$1
- status=0
- for packdir in dists/${UBUNTU_DISTRO}-updates/main/binary-amd64 \
- dists/${UBUNTU_DISTRO}-updates/restricted/binary-amd64 \
- dists/${UBUNTU_DISTRO}-updates/universe/binary-amd64 \
- dists/${UBUNTU_DISTRO}-updates/multiverse/binary-amd64 \
- dists/${UBUNTU_DISTRO}-security/main/binary-amd64 \
- dists/${UBUNTU_DISTRO}-security/restricted/binary-amd64 \
- dists/${UBUNTU_DISTRO}-security/universe/binary-amd64 \
- dists/${UBUNTU_DISTRO}-security/multiverse/binary-amd64 \
- dists/${UBUNTU_DISTRO}-proposed/main/binary-amd64 \
- dists/${UBUNTU_DISTRO}-proposed/restricted/binary-amd64 \
- dists/${UBUNTU_DISTRO}-proposed/universe/binary-amd64 \
- dists/${UBUNTU_DISTRO}-proposed/multiverse/binary-amd64 \
- dists/${UBUNTU_DISTRO}/main/binary-amd64 \
- dists/${UBUNTU_DISTRO}/restricted/binary-amd64 \
- dists/${UBUNTU_DISTRO}/universe/binary-amd64 \
- dists/${UBUNTU_DISTRO}/multiverse/binary-amd64 \
- dists/${UBUNTU_DISTRO}-backports/main/binary-amd64 \
- dists/${UBUNTU_DISTRO}-backports/restricted/binary-amd64 \
- dists/${UBUNTU_DISTRO}-backports/universe/binary-amd64 \
- dists/${UBUNTU_DISTRO}-backports/multiverse/binary-amd64
- do
- for packfile in Release Packages.gz
- do
- if [ $status -ne 1 ]; then
- curl --output /dev/null --silent --head --fail \
- $mirror/$packdir/$packfile
- if [ $? -ne 0 ]; then
- debugmsg "$mirror: Faulty (at least missing $packdir/$packfile)"
- status=1
- fi
- fi
- done
- done
- return $status
-}
-
-if [ "$1" == "-d" ]; then
- DEBUG=1
-fi
-
-# Hardcode for testing purposes
-# DEBUG=1
-
-TMPFILE=$(mktemp /tmp/mirrorsXXXXX)A
-trap cleanup exit
-
-# Generate a list of mirrors considered as "up"
-curl -s https://launchpad.net/ubuntu/+archivemirrors | \
- grep -P -B8 "statusUP|statusONE|statusSIX" | \
- grep -o -P "(f|ht)tp.*\"" | \
- sed 's/"$//' | sort | uniq > $TMPFILE
-
-# Iterate over "close" mirror, check that they are considered up
-# and sane.
-for url in $(curl -s http://mirrors.ubuntu.com/mirrors.txt)
-do
- if ! grep -q $url $TMPFILE; then
- debugmsg "$url Faulty (detected by Ubuntu)"
- elif blacklisted $url; then
- debugmsg "$url blacklisted"
- elif [ -z $BESTURL ]; then
- if grep -q $url $TMPFILE && check_mirror $url; then
- debugmsg "$url: OK (setting as primary URL)"
- BESTURL=$url
- test -z "$DEBUG" && break
- fi
- else
- grep -q $url $TMPFILE && check_mirror $url && debugmsg "$url: OK"
- fi
-done
-
-echo "$BESTURL"