]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
added rhel8 rpm 31391/head
authorracpatel <racpatel@redhat.com>
Mon, 4 Nov 2019 23:56:34 +0000 (15:56 -0800)
committerRachanaben Patel <racpatel@redhat.com>
Tue, 5 Nov 2019 00:40:11 +0000 (16:40 -0800)
Signed-off-by: Rachanaben Patel <racpatel@redhat.com>
1  2 
qa/tasks/set_repo.py

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..60261753203e485e478c652f50bf5d9f349a961c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,158 @@@
++import contextlib
++import logging
++from teuthology import misc as teuthology
++from teuthology.orchestra import run
++from teuthology.parallel import parallel
++
++log = logging.getLogger(__name__)
++
++supported_repos = {'1.3.1': 'https://paste.fedoraproject.org/350766/14600017/raw/',
++                   '1.3.2': 'http://paste.fedoraproject.org/354418/4224131/raw/',
++                   }
++
++rhel_7_rpms = ['rhel-7-server-rpms',
++               'rhel-7-server-optional-rpms',
++               'rhel-7-server-extras-rpms']
++
++rhel_8_rpms = ['rhel-8-for-x86_64-appstream-rpms',
++               'rhel-8-for-x86_64-baseos-rpms']
++
++repos_13x = ['rhel-7-server-rhceph-1.3-mon-rpms',
++             'rhel-7-server-rhceph-1.3-osd-rpms',
++             'rhel-7-server-rhceph-1.3-calamari-rpms',
++             'rhel-7-server-rhceph-1.3-installer-rpms',
++             'rhel-7-server-rhceph-1.3-tools-rpms']
++
++repos_20 = ['rhel-7-server-rhceph-2-mon-rpms',
++             'rhel-7-server-rhceph-2-osd-rpms',
++             'rhel-7-server-rhceph-2-tools-rpms',
++             'rhel-7-server-rhscon-2-agent-rpms',
++             'rhel-7-server-rhscon-2-installer-rpms',
++             'rhel-7-server-rhscon-2-main-rpms']
++
++repos_30 = [ 
++             'rhel-7-server-rhceph-3-mon-rpms',
++             'rhel-7-server-rhceph-3-osd-rpms',
++             'rhel-7-server-rhceph-3-tools-rpms',
++           ]
++
++GA_BUILDS = ['1.3.2',
++             '1.3.3',
++             '2.0',
++             '3.0']
++
++@contextlib.contextmanager
++def task(ctx, config):
++    """
++     Setup downstream repo's thats already released to customers
++     rhbuild:
++        1.3.1
++     repo:
++        2.0: 'repo_url'
++
++    """
++    if config is None:
++        config = {}
++
++    assert isinstance(config, dict), \
++        "task set-repo only supports a dictionary for configuration"
++
++    overrides = ctx.config.get('overrides', {})
++    teuthology.deep_merge(config, overrides.get('set-repo', {}))
++
++    if config.get('repo'):
++        log.info("Updating repo")
++        repo = config.get('repo')
++        supported_repos.update(repo)
++    log.info("Backing up current repo's and disable firewall")
++    for remote in ctx.cluster.remotes.iterkeys():
++        if remote.os.package_type == 'rpm':
++            remote.run(args=['mkdir', 'repo'], check_status=False)
++            remote.run(args=['sudo', 'mv', run.Raw('/etc/yum.repos.d/*'), 'repo/'])
++            remote.run(args=['sudo', 'yum', 'clean', 'metadata'])
++            remote.run(args=['sudo', 'systemctl', 'stop', 'firewalld'], check_status=False)
++
++    build = config.get('rhbuild')
++    repo_url = supported_repos.get(build, None)
++    log.info("Setting the repo for build %s", build)
++    for remote in ctx.cluster.remotes.iterkeys():
++        if remote.os.package_type == 'rpm':
++            if build == '1.3.2' or build == '1.3.3':
++                enable_cdn_repo(remote, repos_13x)
++            elif build == '2.0':
++                enable_cdn_repo(remote, repos_20)
++            elif build == '3.0':
++                enable_cdn_repo(remote, repos_30)
++            else:
++                remote.run(
++                    args=[
++                        'sudo',
++                        'wget',
++                        '-nv',
++                        '-O',
++                        '/etc/yum.repos.d/rh_ceph.repo',
++                        repo_url])
++                remote.run(args=['sudo', 'yum', 'clean', 'metadata'])
++
++    try:
++        yield
++    finally:
++        log.info("Resotring repo's")
++        for remote in ctx.cluster.remotes.iterkeys():
++            if remote.os.package_type == 'rpm':
++                remote.run(args=['sudo', 'cp', run.Raw('repo/*'), '/etc/yum.repos.d/'])
++                remote.run(args=['sudo', 'rm', '/etc/yum.repos.d/rh_ceph.repo'], check_status=False)
++                remote.run(args=['sudo', 'yum', 'clean', 'metadata'])
++                remote.run(args=['sudo', 'rm', '-rf', 'repo'])
++                if build == '1.3.2':
++                    disable_cdn_repo(remote, repos_13x)
++
++def set_cdn_repo(ctx, config):
++    build = config.get('rhbuild')
++    with parallel() as p:
++        for remote in ctx.cluster.remotes.iterkeys():
++            if remote.os.package_type == 'rpm':
++                    if build == '1.3.2' or build == '1.3.3':
++                        p.spawn(enable_cdn_repo, remote, repos_13x)
++                    elif build == '2.0':
++                        p.spawn(enable_cdn_repo, remote, repos_20)
++                    elif build == '3.0':
++                        p.spawn(enable_cdn_repo, remote, repos_30)
++
++def enable_cdn_repo(remote, repos):
++    remote.run(args=['sudo', 'subscription-manager', 'repos', run.Raw('--disable=*')])
++    remote.run(args=['sudo', 'rm', '-rf', run.Raw('/etc/yum.repos.d/*')],
++               check_status=False)
++    for repo in rhel_7_rpms:
++        remote.run(args=['sudo', 'subscription-manager', 'repos', '--enable={r}'.format(r=repo)])
++    for repo in repos:
++        remote.run(args=['sudo', 'subscription-manager', 'repos', '--enable={r}'.format(r=repo)])
++    remote.run(args=['sudo', 'subscription-manager', 'refresh'])
++    remote.run(args=['sudo', 'yum', 'update', 'metadata'])
++
++
++def disable_cdn_repo(remote, repos):
++    for repo in repos:
++        remote.run(args=['sudo', 'subscription-manager', 'repos', '--disable={r}'.format(r=repo)])
++    remote.run(args=['sudo', 'subscription-manager', 'refresh'])
++
++
++def set_repo_simple(remote, config):
++    if config.get('latest'):
++        build_repo = config.get('rhbuild-latest')
++    else:
++        build = config.get('build')
++        build_repo = supported_repos[build]
++    log.info("Setting the repo for build %s", build_repo)
++    if remote.os.package_type == 'rpm':
++        remote.run(args=['sudo', 'rm', run.Raw('/etc/yum.repos.d/*')])
++        remote.run(
++            args=[
++                'sudo',
++                'wget',
++                '-nv',
++                '-O',
++                '/etc/yum.repos.d/rh_ceph.repo',
++                build_repo])
++        remote.run(args=['sudo', 'yum', 'clean', 'metadata'])
++