:param remote: the teuthology.orchestra.remote.Remote object
:param project: the project whose repos need modification
"""
+ repo_path = '/etc/yum.repos.d/%s.repo' % project
remote.run(
args=[
- 'sudo',
- 'sed',
- '-i',
- '-e',
- run.Raw(
- '\':a;N;$!ba;s/enabled=1\\ngpg/enabled=1\\npriority=1\\ngpg/g\''),
+ 'if', 'test', '-f', repo_path, run.Raw(';'), 'then',
+ 'sudo', 'sed', '-i', '-e',
+ run.Raw('\':a;N;$!ba;s/enabled=1\\ngpg/enabled=1\\npriority=1\\ngpg/g\''),
'-e',
run.Raw("'s;ref/[a-zA-Z0-9_-]*/;{uri}/;g'".format(uri=uri)),
- '/etc/yum.repos.d/%s.repo' % project,
+ repo_path, run.Raw(';'), 'fi'
]
)
new_host = teuth_config.gitbuilder_host
if new_host == old_host:
return
+ repo_path = '/etc/yum.repos.d/%s.repo' % project
host_sed_expr = "'s/{0}/{1}/'".format(old_host, new_host)
remote.run(
- args=['sudo', 'sed', '-i', '-e', run.Raw(host_sed_expr),
- '/etc/yum.repos.d/%s.repo' % project]
+ args=[
+ 'if', 'test', '-f', repo_path, run.Raw(';'), 'then',
+ 'sudo', 'sed', '-i', '-e', run.Raw(host_sed_expr),
+ repo_path, run.Raw(';'), 'fi']
)