]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
[RM-12553] Call add_repo() to create repo file
authorTravis Rhoden <trhoden@redhat.com>
Tue, 4 Aug 2015 05:03:24 +0000 (22:03 -0700)
committerTravis Rhoden <trhoden@redhat.com>
Tue, 4 Aug 2015 19:16:24 +0000 (12:16 -0700)
Refs: #12553

Signed-off-by: Travis Rhoden <trhoden@redhat.com>
ceph_deploy/repo.py

index adb00e99017998d954690f4133eeedf873c9dcd3..f40806ae53a996879dc8e5c0618f128d92b0ffca 100644 (file)
@@ -7,6 +7,47 @@ from ceph_deploy.cliutil import priority
 LOG = logging.getLogger(__name__)
 
 
+def install_repo(distro, args, cd_conf, rlogger):
+    if args.repo_name in cd_conf.get_repos():
+        LOG.info('will use repository %s from ceph-deploy config', args.repo_name)
+        options = dict(cd_conf.items(args.repo_name))
+        extra_repos = cd_conf.get_list(args.repo_name, 'extra-repos')
+        try:
+            repo_url = options.pop('baseurl')
+            gpg_url = options.pop('gpgkey', None)
+        except KeyError as err:
+            raise RuntimeError(
+                'missing required key: %s in config section: %s' % (err, args.repo_name)
+            )
+    else:
+        repo_url = args.repo_url
+        gpg_url = args.gpg_url
+        extra_repos = []
+
+    repo_url = repo_url.strip('/')  # Remove trailing slashes
+    distro.packager.add_repo(
+        args.repo_name,
+        repo_url,
+        gpg_url=gpg_url
+    )
+
+    for xrepo in extra_repos:
+        rlogger.info('adding extra repo: %s' % xrepo)
+        options = dict(cd_conf.items(xrepo))
+        try:
+            repo_url = options.pop('baseurl')
+            gpg_url = options.pop('gpgkey', None)
+        except KeyError as err:
+            raise RuntimeError(
+                'missing required key: %s in config section: %s' % (err, xrepo)
+            )
+        distro.packager.add_repo(
+            args.repo_name,
+            repo_url,
+            gpg_url=gpg_url
+        )
+
+
 def repo(args):
     cd_conf = getattr(args, 'cd_conf', None)
 
@@ -27,7 +68,8 @@ def repo(args):
 
         if args.remove:
             distro.packager.remove_repo(args.repo_name)
-
+        else:
+            install_repo(distro, args, cd_conf, rlogger)
 
 
 @priority(70)