def _copy_outside_keys(self):
"""Copy key from out of the workspace into one"""
paths_map = {}
real_inv = os.path.join(self.path, os.readlink(self.inventory))
for line in fileinput.input(real_inv, inplace=True):
key_defs = re.findall(r"ansible_ssh_private_key_file=\/\S+", line)
for key_def in key_defs:
path = key_def.split("=")[-1]
paths_map.setdefault(path, path)
new_line = line.strip()
for mapped_orig, mapped_new in paths_map.iteritems():
if mapped_orig == mapped_new:
keyfilename = os.path.basename(mapped_orig)
rand_part = next(tempfile._get_candidate_names())
new_fname = "{}-{}".format(keyfilename, rand_part)
shutil.copy2(mapped_orig, os.path.join(
self.path, new_fname))
paths_map[mapped_orig] = os.path.join(
self.path_placeholder, new_fname)
new_fname = paths_map[mapped_orig]
else:
new_fname = mapped_new
new_line = re.sub(mapped_orig, new_fname, new_line)
print(new_line)
评论列表
文章目录