--- a/ceph_deploy/hosts/photon/install.py 2017-03-30 23:17:51.357073655 +0000
+++ b/ceph_deploy/hosts/photon/install.py 2017-03-30 21:59:36.921406467 +0000
@@ -0,0 +1,88 @@
+from ceph_deploy.lib import remoto
+from ceph_deploy.hosts.centos.install import repo_install, mirror_install # noqa
+from ceph_deploy.util.paths import gpg
+from ceph_deploy.hosts.common import map_components
+
+
+NON_SPLIT_PACKAGES = ['ceph-osd', 'ceph-mon', 'ceph-mds']
+
+
+def install(distro, version_kind, version, adjust_repos, **kw):
+ packages = map_components(
+ NON_SPLIT_PACKAGES,
+ kw.pop('components', [])
+ )
+ gpgcheck = kw.pop('gpgcheck', 1)
+
+ logger = distro.conn.logger
+ release = distro.release
+ machine = distro.machine_type
+
+ if version_kind in ['stable', 'testing']:
+ key = 'release'
+ else:
+ key = 'autobuild'
+
+ if adjust_repos:
+ if distro.packager.name == 'yum':
+ distro.packager.install('yum-plugin-priorities')
+ # haven't been able to determine necessity of check_obsoletes with DNF
+ distro.conn.remote_module.enable_yum_priority_obsoletes()
+ logger.warning('check_obsoletes has been enabled for Yum priorities plugin')
+
+ if version_kind in ['stable', 'testing']:
+ distro.packager.add_repo_gpg_key(gpg.url(key))
+
+ if version_kind == 'stable':
+ url = 'https://download.ceph.com/rpm-{version}/fc{release}/'.format(
+ version=version,
+ release=release,
+ )
+ elif version_kind == 'testing':
+ url = 'https://download.ceph.com/rpm-testing/fc{release}'.format(
+ release=release,
+ )
+
+ remoto.process.run(
+ distro.conn,
+ [
+ 'rpm',
+ '-Uvh',
+ '--replacepkgs',
+ '--force',
+ '--quiet',
+ '{url}noarch/ceph-release-1-0.fc{release}.noarch.rpm'.format(
+ url=url,
+ release=release,
+ ),
+ ]
+ )
+
+ # 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'])
+ logger.warning('altered ceph.repo priorities to contain: priority=1')
+
+ 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/{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,
+ gpgcheck=gpgcheck,
+ )
+
+ else:
+ raise Exception('unrecognized version_kind %s' % version_kind)
+
+ print packages
+ distro.packager.install(
+ packages
+ )