Project

General

Profile

Revision 775dd780

ID775dd7807d98977f1bdbc1073e3c63be27ebbc5a
Parent 655e6f35
Child 5f674ac7

Added by Travis Rhoden over 8 years ago

[RM-12553] Expand PackageManager interface to handle repos

Refs: #12553

Signed-off-by: Travis Rhoden <>

View differences:

ceph_deploy/util/pkg_managers.py
207 207
        """Clean metadata/cache"""
208 208
        raise NotImplementedError()
209 209

  
210
    def add_repo_gpg_key(self, url):
211
        """Add given GPG key for repo verification"""
212
        raise NotImplementedError()
213

  
214
    def add_repo(self, name, url, **kw):
215
        """Add/rewrite a repo file"""
216
        raise NotImplementedError()
217

  
210 218

  
211 219
class RPMManagerBase(PackageManager):
212 220
    """
......
326 334
        cmd = self.executable + ['update']
327 335
        return self._run(cmd)
328 336

  
337
    def add_repo_gpg_key(self, url):
338
        gpg_path = url.split('file://')[-1]
339
        if not url.startswith('file://'):
340
            cmd = ['wget', '-O', 'release.asc', url ]
341
            self._run(cmd, stop_on_nonzero=False)
342
        gpg_file = 'release.asc' if not url.startswith('file://') else gpg_path
343
        cmd = ['apt-key', 'add', gpg_file]
344
        self._run(cmd)
345

  
346
    def add_repo(self, name, url, **kw):
347
        gpg_url = kw.pop('gpg_url', None)
348
        if gpg_url:
349
            self.add_repo_gpg_key(gpg_url)
350

  
351
        safe_filename = '%s.list' % name.replace(' ', '-')
352
        self.remote_conn.remote_module.write_sources_list(
353
            url,
354
            self.remote_info.codename,
355
            safe_filename
356
        )
357

  
329 358

  
330 359
class Zypper(PackageManager):
331 360
    """

Also available in: Unified diff