diff options
author | Matt Martz <matt@sivel.net> | 2019-09-04 16:06:43 -0500 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2019-09-04 18:01:46 -0700 |
commit | ab6efcd6cc3201029fb9dd3d465bc4908b339c16 (patch) | |
tree | 5e669e3cb5e782b5f4058e771e1a62cddf5bee26 | |
parent | 23a79ecc77ca767a13f027393fba63705e4a5e2c (diff) | |
download | ansible-ab6efcd6cc3201029fb9dd3d465bc4908b339c16.tar.gz |
[stable-2.9] Don't truncate the last character from galaxy urls. Fixes #61624 (#61775)
(cherry picked from commit 8214d18)
Co-authored-by: Matt Martz <matt@sivel.net>
-rw-r--r-- | changelogs/fragments/61624-fix-galaxy-url-building.yml | 2 | ||||
-rw-r--r-- | lib/ansible/galaxy/api.py | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/changelogs/fragments/61624-fix-galaxy-url-building.yml b/changelogs/fragments/61624-fix-galaxy-url-building.yml new file mode 100644 index 0000000000..8227977e47 --- /dev/null +++ b/changelogs/fragments/61624-fix-galaxy-url-building.yml @@ -0,0 +1,2 @@ +bugfixes: +- ansible-galaxy - Fix url building to not truncate the URL (https://github.com/ansible/ansible/issues/61624) diff --git a/lib/ansible/galaxy/api.py b/lib/ansible/galaxy/api.py index 29a09fd9e6..0bede3bc4d 100644 --- a/lib/ansible/galaxy/api.py +++ b/lib/ansible/galaxy/api.py @@ -271,7 +271,7 @@ class GalaxyAPI: raise AnsibleError("Invalid role name (%s). Specify role as format: username.rolename" % role_name) url = _urljoin(self.api_server, self.available_api_versions['v1'], "roles", - "?owner__username=%s&name=%s" % (user_name, role_name))[:-1] + "?owner__username=%s&name=%s" % (user_name, role_name)) data = self._call_galaxy(url) if len(data["results"]) != 0: return data["results"][0] @@ -287,7 +287,7 @@ class GalaxyAPI: results = [] try: url = _urljoin(self.api_server, self.available_api_versions['v1'], "roles", role_id, related, - "?page_size=50")[:-1] + "?page_size=50") data = self._call_galaxy(url) results = data['results'] done = (data.get('next_link', None) is None) @@ -307,7 +307,7 @@ class GalaxyAPI: Fetch the list of items specified. """ try: - url = _urljoin(self.api_server, self.available_api_versions['v1'], what, "?page_size")[:-1] + url = _urljoin(self.api_server, self.available_api_versions['v1'], what, "?page_size") data = self._call_galaxy(url) if "results" in data: results = data['results'] @@ -328,7 +328,7 @@ class GalaxyAPI: @g_connect(['v1']) def search_roles(self, search, **kwargs): - search_url = _urljoin(self.api_server, self.available_api_versions['v1'], "search", "roles", "?")[:-1] + search_url = _urljoin(self.api_server, self.available_api_versions['v1'], "search", "roles", "?") if search: search_url += '&autocomplete=' + to_text(urlquote(to_bytes(search))) @@ -382,7 +382,7 @@ class GalaxyAPI: @g_connect(['v1']) def delete_role(self, github_user, github_repo): url = _urljoin(self.api_server, self.available_api_versions['v1'], "removerole", - "?github_user=%s&github_repo=%s" % (github_user, github_repo))[:-1] + "?github_user=%s&github_repo=%s" % (github_user, github_repo)) data = self._call_galaxy(url, auth_required=True, method='DELETE') return data |