]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
debian install fully converted
authorAlfredo Deza <alfredo@deza.pe>
Mon, 29 Jul 2013 19:28:48 +0000 (15:28 -0400)
committerAlfredo Deza <alfredo@deza.pe>
Mon, 29 Jul 2013 19:28:48 +0000 (15:28 -0400)
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
ceph_deploy/hosts/debian/install.py

index 724cdb71eab6bfe2dbd292aedd35aa5a0a212d81..5c69258d9d2d573197f20bdd853b01d6156ac4bd 100644 (file)
@@ -1,18 +1,22 @@
+from ceph_deploy.util.wrappers import check_call
+from ceph_deploy.util.context import remote
 
 
-def install(release, codename, version_kind, version):
-    import platform
-    import subprocess
+def install(distro, logger, version_kind, version):
+    codename = distro.codename
+    machine = distro.sudo_conn.modules.platform.machine()
 
     if version_kind in ['stable', 'testing']:
         key = 'release'
     else:
         key = 'autobuild'
 
-    subprocess.check_call(
-        args='wget -q -O- \'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/{key}.asc\' | apt-key add -'.format(key=key),
+    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(
@@ -23,29 +27,34 @@ def install(release, codename, version_kind, version):
     elif version_kind == 'dev':
         url = 'http://gitbuilder.ceph.com/ceph-deb-{codename}-{machine}-basic/ref/{version}'.format(
             codename=codename,
-            machine=platform.machine(),
+            machine=machine,
             version=version,
             )
     else:
         raise RuntimeError('Unknown version kind: %r' % version_kind)
 
-    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,
+                    ))
 
-    subprocess.check_call(
-        args=[
-            'apt-get',
-            '-q',
-            'update',
-            ],
+    with remote(distro.sudo_conn, logger, write_sources_list) as remote_func:
+        remote_func(url, codename)
+
+    check_call(
+        distro.sudo_conn,
+        logger,
+        ['apt-get', '-q', 'update'],
         )
 
     # TODO this does not downgrade -- should it?
-    subprocess.check_call(
-        args=[
+    check_call(
+        distro.sudo_conn,
+        logger,
+        [
             'env',
             'DEBIAN_FRONTEND=noninteractive',
             'DEBIAN_PRIORITY=critical',