from ceph_deploy.util import templates, pkg_managers
from ceph_deploy.lib import remoto
-from ceph_deploy.util.paths import gpg
import logging
LOG = logging.getLogger(__name__)
def install(distro, version_kind, version, adjust_repos, **kw):
- # note: when split packages for ceph land for Suse,
+ # note: when split packages for ceph land for SUSE,
# `kw['components']` will have those. Unused for now.
- release = distro.release
- machine = distro.machine_type
-
- if version_kind in ['stable', 'testing']:
- key = 'release'
- else:
- key = 'autobuild'
-
-
- distro_name = None
- if distro.codename == 'Mantis':
- distro_name = 'opensuse12.2'
-
- if (distro.name == "SUSE Linux Enterprise Server") and (str(distro.release) == "11"):
- distro_name = 'sles11'
-
- if distro_name == None:
- LOG.warning('Untested version of %s: assuming compatible with SUSE Linux Enterprise Server 11', distro.name)
- distro_name = 'sles11'
-
-
- if adjust_repos:
- # Work around code due to bug in SLE 11
- # https://bugzilla.novell.com/show_bug.cgi?id=875170
- protocol = "https"
- if distro_name == 'sles11':
- protocol = "http"
- remoto.process.run(
- distro.conn,
- [
- 'rpm',
- '--import',
- gpg.url(key, protocol=protocol)
- ]
- )
-
- if version_kind == 'stable':
- url = 'http://ceph.com/rpm-{version}/{distro}/'.format(
- version=version,
- distro=distro_name,
- )
- elif version_kind == 'testing':
- url = 'http://ceph.com/rpm-testing/{distro}/'.format(distro=distro_name)
- elif version_kind == 'dev':
- url = 'http://gitbuilder.ceph.com/ceph-rpm-{distro}{release}-{machine}-basic/ref/{version}/'.format(
- distro=distro_name,
- release=release.split(".", 1)[0],
- machine=machine,
- version=version,
- )
-
- remoto.process.run(
- distro.conn,
- [
- 'rpm',
- '-Uvh',
- '--replacepkgs',
- '--force',
- '--quiet',
- '{url}ceph-release-1-0.noarch.rpm'.format(
- url=url,
- ),
- ]
- )
-
- remoto.process.run(
- distro.conn,
- [
- 'zypper',
- '--non-interactive',
- 'refresh'
- ],
- )
-
- remoto.process.run(
- distro.conn,
- [
- 'zypper',
- '--non-interactive',
- '--quiet',
- 'install',
- 'ceph',
- 'ceph-radosgw',
- ],
- )
+ packages = ['ceph', 'ceph-radosgw']
+ pkg_managers.zypper_refresh(distro.conn)
+ pkg_managers.zypper(distro.conn, packages)
def mirror_install(distro, repo_url, gpg_url, adjust_repos, **kw):