diff --git a/awx/main/tasks.py b/awx/main/tasks.py index a844edc6b1..78d0029804 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -479,7 +479,10 @@ class RunProjectUpdate(BaseTask): # FIXME: Need to somehow escape single/double quotes in username/password extra_vars['scm_username'] = scm_username extra_vars['scm_password'] = scm_password - scm_url = update_scm_url(scm_type, scm_url, False, False) + if scm_url_parts.scheme == 'svn+ssh': + scm_url = update_scm_url(scm_type, scm_url, scm_username, False) + else: + scm_url = update_scm_url(scm_type, scm_url, False, False) elif scm_url_parts.scheme == 'ssh': scm_url = update_scm_url(scm_type, scm_url, scm_username, False) else: @@ -489,7 +492,10 @@ class RunProjectUpdate(BaseTask): if scm_type == 'svn': extra_vars['scm_username'] = scm_username extra_vars['scm_password'] = '' - scm_url = update_scm_url(scm_type, scm_url, False, False) + if scm_url_parts.scheme == 'svn+ssh': + scm_url = update_scm_url(scm_type, scm_url, scm_username, False) + else: + scm_url = update_scm_url(scm_type, scm_url, False, False) else: scm_url = update_scm_url(scm_type, scm_url, scm_username, False) return scm_url, extra_vars diff --git a/awx/main/tests/projects.py b/awx/main/tests/projects.py index 16baa7c655..e757033846 100644 --- a/awx/main/tests/projects.py +++ b/awx/main/tests/projects.py @@ -742,18 +742,18 @@ class ProjectUpdatesTest(BaseTransactionTest): ('hg', 'https://user:pass@host.xz/path/to/repo/#rev', None, 'https://testuser:pass@host.xz/path/to/repo/#rev', 'https://testuser:testpass@host.xz/path/to/repo/#rev'), ('hg', 'https://user:pass@host.xz:8443/path/to/repo#rev', None, 'https://testuser:pass@host.xz:8443/path/to/repo#rev', 'https://testuser:testpass@host.xz:8443/path/to/repo#rev'), # - ssh://[user@]host[:port]/[path][#revision] - ('hg', 'ssh://host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser:testpass@host.xz/path/to/repo/'), - ('hg', 'ssh://host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser:testpass@host.xz:1022/path/to/repo'), - ('hg', 'ssh://user@host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', 'ssh://testuser:testpass@host.xz/path/to/repo/'), - ('hg', 'ssh://user@host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', 'ssh://testuser:testpass@host.xz:1022/path/to/repo'), - ('hg', 'ssh://user:pass@host.xz/path/to/repo/', None, 'ssh://testuser:pass@host.xz/path/to/repo/', 'ssh://testuser:testpass@host.xz/path/to/repo/'), - ('hg', 'ssh://user:pass@host.xz:1022/path/to/repo', None, 'ssh://testuser:pass@host.xz:1022/path/to/repo', 'ssh://testuser:testpass@host.xz:1022/path/to/repo'), - ('hg', 'ssh://host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser:testpass@host.xz/path/to/repo/#rev'), - ('hg', 'ssh://host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser:testpass@host.xz:1022/path/to/repo#rev'), - ('hg', 'ssh://user@host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', 'ssh://testuser:testpass@host.xz/path/to/repo/#rev'), - ('hg', 'ssh://user@host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', 'ssh://testuser:testpass@host.xz:1022/path/to/repo#rev'), - ('hg', 'ssh://user:pass@host.xz/path/to/repo/#rev', None, 'ssh://testuser:pass@host.xz/path/to/repo/#rev', 'ssh://testuser:testpass@host.xz/path/to/repo/#rev'), - ('hg', 'ssh://user:pass@host.xz:1022/path/to/repo#rev', None, 'ssh://testuser:pass@host.xz:1022/path/to/repo#rev', 'ssh://testuser:testpass@host.xz:1022/path/to/repo#rev'), + ('hg', 'ssh://host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', ValueError), + ('hg', 'ssh://host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', ValueError), + ('hg', 'ssh://user@host.xz/path/to/repo/', None, 'ssh://testuser@host.xz/path/to/repo/', ValueError), + ('hg', 'ssh://user@host.xz:1022/path/to/repo', None, 'ssh://testuser@host.xz:1022/path/to/repo', ValueError), + ('hg', 'ssh://user:pass@host.xz/path/to/repo/', ValueError, ValueError, ValueError), + ('hg', 'ssh://user:pass@host.xz:1022/path/to/repo', ValueError, ValueError, ValueError), + ('hg', 'ssh://host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', ValueError), + ('hg', 'ssh://host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', ValueError), + ('hg', 'ssh://user@host.xz/path/to/repo/#rev', None, 'ssh://testuser@host.xz/path/to/repo/#rev', ValueError), + ('hg', 'ssh://user@host.xz:1022/path/to/repo#rev', None, 'ssh://testuser@host.xz:1022/path/to/repo#rev', ValueError), + ('hg', 'ssh://user:pass@host.xz/path/to/repo/#rev', ValueError, ValueError, ValueError), + ('hg', 'ssh://user:pass@host.xz:1022/path/to/repo#rev', ValueError, ValueError, ValueError), # Special case for bitbucket URLs: ('hg', 'ssh://hg@bitbucket.org/foo/bar', None, ValueError, ValueError), ('hg', 'ssh://hg@altssh.bitbucket.org:443/foo/bar', None, ValueError, ValueError),