From 19d782e3c8dae9f11bd08e44115f20d1ab4edab3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 29 Aug 2015 10:27:00 -0400 Subject: [PATCH] install: add support for --dev-commit Adjusted centos, debian, fedora. suse and rhel don't seem to pay attention to version_kind... :/ Signed-off-by: Sage Weil --- ceph_deploy/hosts/centos/install.py | 10 +++++++--- ceph_deploy/hosts/debian/install.py | 5 +++-- ceph_deploy/hosts/fedora/install.py | 10 +++++++--- ceph_deploy/install.py | 7 +++++++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ceph_deploy/hosts/centos/install.py b/ceph_deploy/hosts/centos/install.py index dca9998..868858e 100644 --- a/ceph_deploy/hosts/centos/install.py +++ b/ceph_deploy/hosts/centos/install.py @@ -63,7 +63,7 @@ def install(distro, version_kind, version, adjust_repos, **kw): key = 'autobuild' if adjust_repos: - if version_kind != 'dev': + if version_kind in ['stable', 'testing']: distro.packager.add_repo_gpg_key(gpg.url(key)) if version_kind == 'stable': @@ -84,20 +84,24 @@ def install(distro, version_kind, version, adjust_repos, **kw): ], ) - if version_kind == 'dev': + elif version_kind in ['dev', 'dev_commit']: logger.info('skipping install of ceph-release package') logger.info('repo file will be created manually') mirror_install( distro, - 'http://gitbuilder.ceph.com/ceph-rpm-centos{release}-{machine}-basic/ref/{version}/'.format( + 'http://gitbuilder.ceph.com/ceph-rpm-centos{release}-{machine}-basic/{sub}/{version}/'.format( release=release.split(".", 1)[0], machine=machine, + sub='ref' if version_kind == 'dev' else 'sha1', version=version), gpg.url(key), adjust_repos=True, extra_installs=False ) + else: + raise Exception('unrecognized version_kind %s' % version_kind) + # set the right priority logger.warning('ensuring that /etc/yum.repos.d/ceph.repo contains a high priority') distro.conn.remote_module.set_repo_priority(['Ceph', 'Ceph-noarch', 'ceph-source']) diff --git a/ceph_deploy/hosts/debian/install.py b/ceph_deploy/hosts/debian/install.py index 5eb538f..0547f1c 100644 --- a/ceph_deploy/hosts/debian/install.py +++ b/ceph_deploy/hosts/debian/install.py @@ -35,10 +35,11 @@ def install(distro, version_kind, version, adjust_repos, **kw): ) elif version_kind == 'testing': url = 'http://ceph.com/debian-testing/' - elif version_kind == 'dev': - url = 'http://gitbuilder.ceph.com/ceph-deb-{codename}-{machine}-basic/ref/{version}'.format( + elif version_kind in ['dev', 'dev_commit']: + url = 'http://gitbuilder.ceph.com/ceph-deb-{codename}-{machine}-basic/{sub}/{version}'.format( codename=codename, machine=machine, + sub='ref' if version_kind == 'dev' else 'sha1', version=version, ) else: diff --git a/ceph_deploy/hosts/fedora/install.py b/ceph_deploy/hosts/fedora/install.py index 6fb5d7a..c2a8690 100644 --- a/ceph_deploy/hosts/fedora/install.py +++ b/ceph_deploy/hosts/fedora/install.py @@ -28,7 +28,7 @@ def install(distro, version_kind, version, adjust_repos, **kw): distro.conn.remote_module.enable_yum_priority_obsoletes() logger.warning('check_obsoletes has been enabled for Yum priorities plugin') - if version_kind != 'dev': + if version_kind in ['stable', 'testing']: distro.packager.add_repo_gpg_key(gpg.url(key)) if version_kind == 'stable': @@ -61,20 +61,24 @@ def install(distro, version_kind, version, adjust_repos, **kw): distro.conn.remote_module.set_repo_priority(['Ceph', 'Ceph-noarch', 'ceph-source']) logger.warning('altered ceph.repo priorities to contain: priority=1') - if version_kind == 'dev': + elif version_kind in ['dev', 'dev_commit']: logger.info('skipping install of ceph-release package') logger.info('repo file will be created manually') mirror_install( distro, - 'http://gitbuilder.ceph.com/ceph-rpm-fc{release}-{machine}-basic/ref/{version}/'.format( + 'http://gitbuilder.ceph.com/ceph-rpm-fc{release}-{machine}-basic/{sub}/{version}/'.format( release=release.split(".", 1)[0], machine=machine, + sub='ref' if version_kind == 'dev' else 'sha1', version=version), gpg.url(key), adjust_repos=True, extra_installs=False ) + else: + raise Exception('unrecognized version_kind %s' % version_kind) + distro.packager.install( packages ) diff --git a/ceph_deploy/install.py b/ceph_deploy/install.py index 9115c85..fafb2f1 100644 --- a/ceph_deploy/install.py +++ b/ceph_deploy/install.py @@ -478,6 +478,13 @@ def make(parser): help='install a bleeding edge build from Git branch\ or tag (default: %(default)s)', ) + version.add_argument( + '--dev-commit', + nargs='?', + action=StoreVersion, + metavar='COMMIT', + help='install a bleeding edge build from Git commit', + ) version.set_defaults( stable=None, # XXX deprecated in favor of release -- 2.47.3