]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
accept adjust_repos as an argument flag
authorAlfredo Deza <alfredo.deza@inktank.com>
Wed, 4 Sep 2013 20:56:28 +0000 (16:56 -0400)
committerAlfredo Deza <alfredo.deza@inktank.com>
Thu, 5 Sep 2013 13:20:20 +0000 (09:20 -0400)
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
ceph_deploy/hosts/centos/install.py
ceph_deploy/hosts/debian/install.py
ceph_deploy/hosts/fedora/install.py
ceph_deploy/hosts/suse/install.py
ceph_deploy/install.py

index 7629c6c82d7d3f9f557b8148f6fe1e2bac67259f..e06d0aa4bdbea8d356f77ea528c4cd19d68164c6 100644 (file)
@@ -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,
index 07ef17677b2347116fd0126562ca7d94eab0fedd..bd7a8b68c2f1bd895b7512bf44f195fd20eae799 100644 (file)
@@ -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,
index 61df23d2f82eaabca1a2cbd4380f3e2840c3d3fc..2032db62879a585780fc857aa0fdda9e396061d0 100644 (file)
@@ -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,
index cee3f00bd80f8c7a6dc5665875faf0688bf32e1c..203aacf40ebc887000b05531cf1b03937999173f 100644 (file)
@@ -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,
index 5f68284446f34303738b296b798e1bfef94fe946..fd20593130f1421be50efc8bb590688ef451a0ee 100644 (file)
@@ -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',