From: Alfredo Deza Date: Wed, 4 Sep 2013 20:56:28 +0000 (-0400) Subject: accept adjust_repos as an argument flag X-Git-Tag: v1.2.4~20^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=25c13ffae1235697f7bc84dcc9d652c30adf0eca;p=ceph-deploy.git accept adjust_repos as an argument flag Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/hosts/centos/install.py b/ceph_deploy/hosts/centos/install.py index 7629c6c..e06d0aa 100644 --- a/ceph_deploy/hosts/centos/install.py +++ b/ceph_deploy/hosts/centos/install.py @@ -3,46 +3,48 @@ from ceph_deploy.util import pkg_managers from ceph_deploy.hosts import common -def install(distro, logger, version_kind, version): +def install(distro, logger, version_kind, version, adjust_repos): release = distro.release machine = distro.sudo_conn.modules.platform.machine() # Get EPEL installed before we continue: - install_epel(distro, logger) + if not adjust_repos: + install_epel(distro, logger) if version_kind in ['stable', 'testing']: key = 'release' else: key = 'autobuild' - check_call( - distro.sudo_conn, - logger, - ['su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key),], - shell=True) + if not adjust_repos: + check_call( + distro.sudo_conn, + logger, + ['su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key),], + shell=True) - if version_kind == 'stable': - url = 'http://ceph.com/rpm-{version}/el6/'.format( - version=version, - ) - elif version_kind == 'testing': - url = 'http://ceph.com/rpm-testing/' - elif version_kind == 'dev': - url = 'http://gitbuilder.ceph.com/ceph-rpm-centos{release}-{machine}-basic/ref/{version}/'.format( - release=release.split(".",1)[0], - machine=machine, - version=version, - ) + if version_kind == 'stable': + url = 'http://ceph.com/rpm-{version}/el6/'.format( + version=version, + ) + elif version_kind == 'testing': + url = 'http://ceph.com/rpm-testing/' + elif version_kind == 'dev': + url = 'http://gitbuilder.ceph.com/ceph-rpm-centos{release}-{machine}-basic/ref/{version}/'.format( + release=release.split(".",1)[0], + machine=machine, + version=version, + ) - check_call( - distro.sudo_conn, - logger, - [ - 'rpm', - '-Uvh', - '--replacepkgs', - '{url}noarch/ceph-release-1-0.el6.noarch.rpm'.format(url=url), - ], - ) + check_call( + distro.sudo_conn, + logger, + [ + 'rpm', + '-Uvh', + '--replacepkgs', + '{url}noarch/ceph-release-1-0.el6.noarch.rpm'.format(url=url), + ], + ) check_call( distro.sudo_conn, diff --git a/ceph_deploy/hosts/debian/install.py b/ceph_deploy/hosts/debian/install.py index 07ef176..bd7a8b6 100644 --- a/ceph_deploy/hosts/debian/install.py +++ b/ceph_deploy/hosts/debian/install.py @@ -3,7 +3,7 @@ from ceph_deploy.util.context import remote from ceph_deploy.hosts import common -def install(distro, logger, version_kind, version): +def install(distro, logger, version_kind, version, adjust_repos): codename = distro.codename machine = distro.sudo_conn.modules.platform.machine() @@ -27,38 +27,39 @@ def install(distro, logger, version_kind, version): ] ) - check_call( - distro.sudo_conn, - logger, - ['wget -q -O- \'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc\' | apt-key add -'.format(key=key)], - shell=True, - ) + if not adjust_repos: + check_call( + distro.sudo_conn, + logger, + ['wget -q -O- \'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc\' | apt-key add -'.format(key=key)], + shell=True, + ) - if version_kind == 'stable': - url = 'http://ceph.com/debian-{version}/'.format( - version=version, - ) - 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( - codename=codename, - machine=machine, - version=version, - ) - else: - raise RuntimeError('Unknown version kind: %r' % version_kind) + if version_kind == 'stable': + url = 'http://ceph.com/debian-{version}/'.format( + version=version, + ) + 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( + codename=codename, + machine=machine, + version=version, + ) + else: + raise RuntimeError('Unknown version kind: %r' % version_kind) - def write_sources_list(url, codename): - """add ceph deb repo to sources.list""" - with file('/etc/apt/sources.list.d/ceph.list', 'w') as f: - f.write('deb {url} {codename} main\n'.format( - url=url, - codename=codename, - )) + def write_sources_list(url, codename): + """add ceph deb repo to sources.list""" + with file('/etc/apt/sources.list.d/ceph.list', 'w') as f: + f.write('deb {url} {codename} main\n'.format( + url=url, + codename=codename, + )) - with remote(distro.sudo_conn, logger, write_sources_list) as remote_func: - remote_func(url, codename) + with remote(distro.sudo_conn, logger, write_sources_list) as remote_func: + remote_func(url, codename) check_call( distro.sudo_conn, diff --git a/ceph_deploy/hosts/fedora/install.py b/ceph_deploy/hosts/fedora/install.py index 61df23d..2032db6 100644 --- a/ceph_deploy/hosts/fedora/install.py +++ b/ceph_deploy/hosts/fedora/install.py @@ -2,7 +2,7 @@ from ceph_deploy.util.wrappers import check_call from ceph_deploy.hosts import common -def install(distro, logger, version_kind, version): +def install(distro, logger, version_kind, version, adjust_repos): release = distro.release machine = distro.sudo_conn.modules.platform.machine() @@ -11,44 +11,45 @@ def install(distro, logger, version_kind, version): else: key = 'autobuild' - check_call( - distro.sudo_conn, - logger, - args='su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key), - shell=True, - ) - - if version_kind == 'stable': - url = 'http://ceph.com/rpm-{version}/fc{release}/'.format( - version=version, - release=release, - ) - elif version_kind == 'testing': - url = 'http://ceph.com/rpm-testing/fc{release}'.format( - release=release, - ) - elif version_kind == 'dev': - url = 'http://gitbuilder.ceph.com/ceph-rpm-fc{release}-{machine}-basic/ref/{version}/'.format( - release=release.split(".", 1)[0], - machine=machine, - version=version, + if not adjust_repos: + check_call( + distro.sudo_conn, + logger, + args='su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key), + shell=True, ) - check_call( - distro.sudo_conn, - logger, - args=[ - 'rpm', - '-Uvh', - '--replacepkgs', - '--force', - '--quiet', - '{url}noarch/ceph-release-1-0.fc{release}.noarch.rpm'.format( - url=url, + if version_kind == 'stable': + url = 'http://ceph.com/rpm-{version}/fc{release}/'.format( + version=version, release=release, - ), - ] - ) + ) + elif version_kind == 'testing': + url = 'http://ceph.com/rpm-testing/fc{release}'.format( + release=release, + ) + elif version_kind == 'dev': + url = 'http://gitbuilder.ceph.com/ceph-rpm-fc{release}-{machine}-basic/ref/{version}/'.format( + release=release.split(".", 1)[0], + machine=machine, + version=version, + ) + + check_call( + distro.sudo_conn, + logger, + args=[ + 'rpm', + '-Uvh', + '--replacepkgs', + '--force', + '--quiet', + '{url}noarch/ceph-release-1-0.fc{release}.noarch.rpm'.format( + url=url, + release=release, + ), + ] + ) check_call( distro.sudo_conn, diff --git a/ceph_deploy/hosts/suse/install.py b/ceph_deploy/hosts/suse/install.py index cee3f00..203aacf 100644 --- a/ceph_deploy/hosts/suse/install.py +++ b/ceph_deploy/hosts/suse/install.py @@ -2,7 +2,7 @@ from ceph_deploy.util.wrappers import check_call from ceph_deploy.hosts import common -def install(distro, logger, version_kind, version): +def install(distro, logger, version_kind, version, adjust_repos): release = distro.release machine = distro.sudo_conn.modules.platform.machine() @@ -16,42 +16,43 @@ def install(distro, logger, version_kind, version): else: distro = 'sles-11sp2' - check_call( - distro.sudo_conn, - logger, - ['su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key)], - shell=True, - ) - - if version_kind == 'stable': - url = 'http://ceph.com/rpm-{version}/{distro}/'.format( - version=version, - distro=distro, - ) - elif version_kind == 'testing': - url = 'http://ceph.com/rpm-testing/{distro}'.format(distro=distro) - elif version_kind == 'dev': - url = 'http://gitbuilder.ceph.com/ceph-rpm-{distro}{release}-{machine}-basic/ref/{version}/'.format( - distro=distro, - release=release.split(".", 1)[0], - machine=machine, - version=version, + if not adjust_repos: + check_call( + distro.sudo_conn, + logger, + ['su -c \'rpm --import "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc"\''.format(key=key)], + shell=True, ) - check_call( - distro.sudo_conn, - logger, - [ - 'rpm', - '-Uvh', - '--replacepkgs', - '--force', - '--quiet', - '{url}noarch/ceph-release-1-0.noarch.rpm'.format( - url=url, - ), - ] - ) + if version_kind == 'stable': + url = 'http://ceph.com/rpm-{version}/{distro}/'.format( + version=version, + distro=distro, + ) + elif version_kind == 'testing': + url = 'http://ceph.com/rpm-testing/{distro}'.format(distro=distro) + elif version_kind == 'dev': + url = 'http://gitbuilder.ceph.com/ceph-rpm-{distro}{release}-{machine}-basic/ref/{version}/'.format( + distro=distro, + release=release.split(".", 1)[0], + machine=machine, + version=version, + ) + + check_call( + distro.sudo_conn, + logger, + [ + 'rpm', + '-Uvh', + '--replacepkgs', + '--force', + '--quiet', + '{url}noarch/ceph-release-1-0.noarch.rpm'.format( + url=url, + ), + ] + ) check_call( distro.sudo_conn, diff --git a/ceph_deploy/install.py b/ceph_deploy/install.py index 5f68284..fd20593 100644 --- a/ceph_deploy/install.py +++ b/ceph_deploy/install.py @@ -166,7 +166,7 @@ def install(args): LOG.info('Distro info: %s %s %s', distro.name, distro.release, distro.codename) rlogger = logging.getLogger(hostname) rlogger.info('installing ceph on %s' % hostname) - distro.install(distro, rlogger, args.version_kind, version) + distro.install(distro, rlogger, args.version_kind, version, args.pkgs_only) distro.sudo_conn.close() @@ -315,6 +315,13 @@ def make(parser): help='install a bleeding edge build from Git branch or tag (default: %(default)s)', ) + version.add_argument( + '--pkgs-only', + action='store_true', + default=False, + help='install packages only, skipping repo setup', + ) + version.set_defaults( func=install, stable='dumpling',