Revision 775dd780
[RM-12553] Expand PackageManager interface to handle repos
Refs: #12553
Signed-off-by: Travis Rhoden <trhoden@redhat.com>
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