Commit db36c41c by James Tanner

Addresses #6908 Strip usernames and passwords from apt_repository filenames

parent f6190015
...@@ -133,12 +133,22 @@ class SourcesList(object): ...@@ -133,12 +133,22 @@ class SourcesList(object):
def _suggest_filename(self, line): def _suggest_filename(self, line):
def _cleanup_filename(s): def _cleanup_filename(s):
return '_'.join(re.sub('[^a-zA-Z0-9]', ' ', s).split()) return '_'.join(re.sub('[^a-zA-Z0-9]', ' ', s).split())
def _strip_username_password(s):
if '@' in s:
s = s.split('@', 1)
s = s[-1]
return s
# Drop options and protocols. # Drop options and protocols.
line = re.sub('\[[^\]]+\]', '', line) line = re.sub('\[[^\]]+\]', '', line)
line = re.sub('\w+://', '', line) line = re.sub('\w+://', '', line)
# split line into valid keywords
parts = [part for part in line.split() if part not in VALID_SOURCE_TYPES] parts = [part for part in line.split() if part not in VALID_SOURCE_TYPES]
# Drop usernames and passwords
parts[0] = _strip_username_password(parts[0])
return '%s.list' % _cleanup_filename(' '.join(parts[:1])) return '%s.list' % _cleanup_filename(' '.join(parts[:1]))
def _parse(self, line, raise_if_invalid_or_disabled=False): def _parse(self, line, raise_if_invalid_or_disabled=False):
...@@ -358,6 +368,7 @@ def main(): ...@@ -358,6 +368,7 @@ def main():
install_python_apt(module) install_python_apt(module)
repo = module.params['repo'] repo = module.params['repo']
open("/tmp/awx.log", "a").write("repo: %s\n" % repo)
state = module.params['state'] state = module.params['state']
update_cache = module.params['update_cache'] update_cache = module.params['update_cache']
sourceslist = None sourceslist = None
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment