Browse code

Upgrade ceph-deploy to 1.5.39

- Update ceph-deploy to v1.5.39
- Removes code from the installer which adds ceph repos. Because we aren't using ceph's packages, when the repos are present, ceph-deploy attempts to pull incorrect packages from ceph repos instead of VMWare Photon repos.
- Removes imports from centos since they are not needed
- Changes the installer to yum. It may work with tdnf, but in current state is broken.

Change-Id: I5295d7d98ee8c87b0345d49e10d74fca5af8dab5
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5188
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George

Unknown authored on 2018/05/20 19:37:29
Showing 8 changed files
... ...
@@ -1,37 +1,39 @@
1
-+++ b/ceph_deploy/hosts/__init__.py	2017-03-30 23:27:32.453109790 +0000
2
-@@ -7,7 +7,7 @@ on the type of distribution/version we a
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/__init__.py    2017-04-28 12:32:51.000000000 -0500
2
+@@ -7,7 +7,7 @@
3 3
  import logging
4 4
  from ceph_deploy import exc
5 5
  from ceph_deploy.util import versions
6 6
 -from ceph_deploy.hosts import debian, centos, fedora, suse, remotes, rhel
7 7
 +from ceph_deploy.hosts import debian, centos, fedora, suse, remotes, rhel, photon
8 8
  from ceph_deploy.connection import get_connection
9
- 
9
+
10 10
  logger = logging.getLogger()
11
-@@ -68,7 +68,7 @@ def get(hostname,
11
+@@ -68,7 +68,7 @@
12 12
      module.distro = module.normalized_name
13
-     module.is_el = module.normalized_name in ['redhat', 'centos', 'fedora', 'scientific', 'oracle']
13
+     module.is_el = module.normalized_name in ['redhat', 'centos', 'fedora', 'scientific', 'oracle', 'virtuozzo']
14 14
      module.is_rpm = module.normalized_name in ['redhat', 'centos',
15
--                                               'fedora', 'scientific', 'suse', 'oracle']
16
-+                                               'fedora', 'scientific', 'suse', 'oracle', 'photon']
15
+-                                               'fedora', 'scientific', 'suse', 'oracle', 'virtuozzo']
16
++                                               'fedora', 'scientific', 'suse', 'oracle', 'virtuozzo', 'photon']
17 17
      module.is_deb = not module.is_rpm
18 18
      module.release = release
19 19
      module.codename = codename
20
-@@ -97,6 +97,7 @@ def _get_distro(distro, fallback=None, u
20
+@@ -97,7 +97,8 @@
21 21
          'redhat': centos,
22 22
          'fedora': fedora,
23 23
          'suse': suse,
24
-+        'photon': photon,
24
+-        'virtuozzo' : centos
25
++        'virtuozzo' : centos,
26
++        'photon': photon
25 27
          }
26
- 
28
+
27 29
      if distro == 'redhat' and use_rhceph:
28
-@@ -115,6 +116,8 @@ def _normalized_distro_name(distro):
29
-         return 'oracle'
30
-     elif distro.startswith(('suse', 'opensuse')):
30
+@@ -118,6 +119,8 @@
31 31
          return 'suse'
32
-+    elif distro.startswith('photon'):
33
-+        return 'photon'
34 32
      elif distro.startswith('centos'):
35 33
          return 'centos'
34
++    elif distro.startswith('photon'):
35
++        return 'photon'
36 36
      elif distro.startswith('linuxmint'):
37
+         return 'ubuntu'
38
+     elif distro.startswith('virtuozzo'):
... ...
@@ -1,9 +1,9 @@
1
-+++ b/ceph_deploy/util/pkg_managers.py	2017-03-30 21:06:24.369709803 +0000
2
-@@ -181,6 +181,13 @@ class Yum(RPMManagerBase):
1
+--- ceph-deploy-1.5.39/ceph_deploy/util/pkg_managers.py 2016-08-15 07:34:53.000000000 -0500
2
+@@ -181,6 +181,13 @@
3 3
      executable = 'yum'
4 4
      name = 'yum'
5
- 
5
+
6 6
 +class Tdnf(RPMManagerBase):
7 7
 +    """
8 8
 +    The Tdnf Package manager
... ...
@@ -11,6 +11,6 @@
11 11
 +
12 12
 +    executable = 'tdnf'
13 13
 +    name = 'tdnf'
14
- 
14
+
15 15
  class Apt(PackageManager):
16 16
      """
... ...
@@ -1,5 +1,5 @@
1
-+++ b/ceph_deploy/hosts/photon/__init__.py	2017-03-30 21:10:40.613127409 +0000
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/photon/__init__.py     2018-05-19 00:37:38.354704247 -0500
2 2
 @@ -0,0 +1,23 @@
3 3
 +from . import mon  # noqa
4 4
 +from ceph_deploy.hosts.centos.install import repo_install  # noqa
... ...
@@ -23,4 +23,4 @@
23 23
 +    return 'systemd'
24 24
 +
25 25
 +def get_packager(module):
26
-+        return pkg_managers.Tdnf(module)
26
++        return pkg_managers.Yum(module)
... ...
@@ -1,14 +1,18 @@
1
-+++ b/ceph_deploy/hosts/photon/install.py	2017-03-30 21:59:36.921406467 +0000
2
-@@ -0,0 +1,88 @@
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/photon/install.py      2018-05-19 00:37:38.354704247 -0500
2
+@@ -0,0 +1,33 @@
3 3
 +from ceph_deploy.lib import remoto
4
-+from ceph_deploy.hosts.centos.install import repo_install, mirror_install  # noqa
5 4
 +from ceph_deploy.util.paths import gpg
6 5
 +from ceph_deploy.hosts.common import map_components
7 6
 +
8 7
 +
9 8
 +NON_SPLIT_PACKAGES = ['ceph-osd', 'ceph-mon', 'ceph-mds']
10 9
 +
10
++def repo_install():
11
++    pass
12
++
13
++def mirror_install():
14
++    pass
11 15
 +
12 16
 +def install(distro, version_kind, version, adjust_repos, **kw):
13 17
 +    packages = map_components(
... ...
@@ -18,7 +22,7 @@
18 18
 +    gpgcheck = kw.pop('gpgcheck', 1)
19 19
 +
20 20
 +    logger = distro.conn.logger
21
-+    release = distro.release
21
++    release = 'el7'
22 22
 +    machine = distro.machine_type
23 23
 +
24 24
 +    if version_kind in ['stable', 'testing']:
... ...
@@ -26,65 +30,6 @@
26 26
 +    else:
27 27
 +        key = 'autobuild'
28 28
 +
29
-+    if adjust_repos:
30
-+        if distro.packager.name == 'yum':
31
-+            distro.packager.install('yum-plugin-priorities')
32
-+            # haven't been able to determine necessity of check_obsoletes with DNF
33
-+            distro.conn.remote_module.enable_yum_priority_obsoletes()
34
-+            logger.warning('check_obsoletes has been enabled for Yum priorities plugin')
35
-+
36
-+        if version_kind in ['stable', 'testing']:
37
-+            distro.packager.add_repo_gpg_key(gpg.url(key))
38
-+
39
-+            if version_kind == 'stable':
40
-+                url = 'https://download.ceph.com/rpm-{version}/fc{release}/'.format(
41
-+                    version=version,
42
-+                    release=release,
43
-+                    )
44
-+            elif version_kind == 'testing':
45
-+                url = 'https://download.ceph.com/rpm-testing/fc{release}'.format(
46
-+                    release=release,
47
-+                    )
48
-+
49
-+            remoto.process.run(
50
-+                distro.conn,
51
-+                [
52
-+                    'rpm',
53
-+                    '-Uvh',
54
-+                    '--replacepkgs',
55
-+                    '--force',
56
-+                    '--quiet',
57
-+                    '{url}noarch/ceph-release-1-0.fc{release}.noarch.rpm'.format(
58
-+                        url=url,
59
-+                        release=release,
60
-+                        ),
61
-+                ]
62
-+            )
63
-+
64
-+            # set the right priority
65
-+            logger.warning('ensuring that /etc/yum.repos.d/ceph.repo contains a high priority')
66
-+            distro.conn.remote_module.set_repo_priority(['Ceph', 'Ceph-noarch', 'ceph-source'])
67
-+            logger.warning('altered ceph.repo priorities to contain: priority=1')
68
-+
69
-+        elif version_kind in ['dev', 'dev_commit']:
70
-+            logger.info('skipping install of ceph-release package')
71
-+            logger.info('repo file will be created manually')
72
-+            mirror_install(
73
-+                distro,
74
-+                'http://gitbuilder.ceph.com/ceph-rpm-fc{release}-{machine}-basic/{sub}/{version}/'.format(
75
-+                    release=release.split(".", 1)[0],
76
-+                    machine=machine,
77
-+                    sub='ref' if version_kind == 'dev' else 'sha1',
78
-+                    version=version),
79
-+                gpg.url(key),
80
-+                adjust_repos=True,
81
-+                extra_installs=False,
82
-+                gpgcheck=gpgcheck,
83
-+            )
84
-+
85
-+        else:
86
-+            raise Exception('unrecognized version_kind %s' % version_kind)
87
-+
88 29
 +    print packages
89 30
 +    distro.packager.install(
90 31
 +        packages
... ...
@@ -1,5 +1,5 @@
1
-+++ b/ceph_deploy/hosts/photon/mon/__init__.py	2017-03-30 22:44:04.737113094 +0000
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/photon/mon/__init__.py 2018-05-19 00:38:33.724706913 -0500
2 2
 @@ -0,0 +1,2 @@
3 3
 +from ceph_deploy.hosts.common import mon_add as add  # noqa
4 4
 +from ceph_deploy.hosts.common import mon_create as create  # noqa
... ...
@@ -1,5 +1,5 @@
1
-+++ b/ceph_deploy/hosts/photon/uninstall.py	2017-03-30 21:39:56.753696000 +0000
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/photon/uninstall.py    2018-05-19 00:37:38.354704247 -0500
2 2
 @@ -0,0 +1,8 @@
3 3
 +def uninstall(distro, purge=False):
4 4
 +    packages = [
... ...
@@ -1,15 +1,15 @@
1
-+++ b/ceph_deploy/hosts/remotes.py	2017-03-30 21:54:58.410977997 +0000
2
-@@ -14,6 +14,12 @@ def platform_information(_linux_distribu
1
+--- ceph-deploy-1.5.39/ceph_deploy/hosts/remotes.py     2017-09-01 06:30:23.000000000 -0500
2
+@@ -14,6 +14,12 @@
3 3
      """ detect platform information from remote host """
4 4
      linux_distribution = _linux_distribution or platform.linux_distribution
5 5
      distro, release, codename = linux_distribution()
6
++
6 7
 +    if 'photon' in distro.lower():
7 8
 +        distro = 'photon'
8
-+        release = '1.0'
9
++        release = '2.0'
9 10
 +        codename = 'photon'
10 11
 +
11
-+
12 12
      if not codename and 'debian' in distro.lower():  # this could be an empty string in Debian
13 13
          debian_codenames = {
14
-             '8': 'jessie',
14
+             '10': 'buster',
... ...
@@ -1,16 +1,16 @@
1 1
 %{!?python2_sitelib: %global python2_sitelib %(python2 -c "from distutils.sysconfig import get_python_lib;print(get_python_lib())")}
2 2
 
3 3
 Name:           ceph-deploy
4
-Version:        1.5.37
5
-Release:        3%{?dist}
4
+Version:        1.5.39
5
+Release:        1%{?dist}
6 6
 Url:            http://ceph.com/
7 7
 Summary:        Admin and deploy tool for Ceph
8 8
 License:        MIT
9 9
 Group:          System/Filesystems
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
12
-Source0:        https://pypi.python.org/packages/23/f0/f144b1b55534a3e10d269dbfbe092e0aaa1c4b826c24f5df9320ae9bdfce/%{name}-%{version}.tar.gz
13
-%define sha1 ceph-deploy=5c19b318320f2729c5b15da7159aa9824b885c1a
12
+Source0:        https://files.pythonhosted.org/packages/63/59/c2752952b7867faa2d63ba47c47da96e2f43f5124029975b579020df3665/%{name}-%{version}.tar.gz
13
+%define sha1 ceph-deploy=7aba578569c05425f68253181b5114130b2a259c
14 14
 Patch0:		ceph-deploy-init.patch
15 15
 Patch1:		ceph-deploy-package-manager.patch
16 16
 Patch2:		ceph-deploy-remote.patch
... ...
@@ -58,6 +58,8 @@ install -m 0755 -D scripts/ceph-deploy $RPM_BUILD_ROOT/usr/bin
58 58
 %{_bindir}/ceph-deploy
59 59
 
60 60
 %changelog
61
+*   Fri May 18 2018 Grant Curell <grant.curell@salientcrgt.com> 1.5.39-1
62
+-   Upgrading to version 1.5.39
61 63
 *   Thu Jun 01 2017 Dheeraj Shetty <dheerajs@vmware.com> 1.5.37-3
62 64
 -   Use python2 explicitly
63 65
 *   Tue Apr 25 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.5.37-2