Galaxy: User Can't Delete Role if github repo was already deleted

Created on 19 Sep 2018  路  6Comments  路  Source: ansible/galaxy

Bug Report

SUMMARY

I'd like to delete this role, but get an error.

STEPS TO REPRODUCE
ansible-galaxy delete robertdebock ansible-role-iptables
ERROR! Galaxy user robertdebock does not have access to repo robertdebock/ansible-role-iptables
EXPECTED RESULTS

I'd like the role to be removed.

ACTUAL RESULTS
ansible-galaxy 2.6.3
  config file = /home/robertdb/Documents/ansible/mvps/ansible.cfg
  configured module search path = [u'/home/robertdb/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible-galaxy
  python version = 2.7.15 (default, May 16 2018, 17:50:09) [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)]
Using /home/robertdb/Documents/ansible/ansible.cfg as config file
Opened /home/robertdb/.ansible_galaxy
https://galaxy.ansible.com/api/v1/removerole/?github_user=robertdebock&github_repo=ansible-role-iptables
ERROR! Galaxy user robertdebock does not have access to repo robertdebock/ansible-role-iptables

When I visit the API, I see the same error on a DELETE method:

HTTP 400 Bad Request
Allow: DELETE, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "detail": "Galaxy user robertdebock does not have access to repo robertdebock/ansible-role-iptables"
}

I have the feeling that I'm making a mistake, but am not sure what the mistake is.

arebackend prioritlow typbug

All 6 comments

@robertdebock

Deleted. The API failed to remove it because the repository on GitHub was already removed or missing.

We need to refactor the API endpoint for removing a role. The current endpoint /api/v1/removerole/ should be deprecated (need to keep it around for legacy ansible-galaxy), and replaced with a more restful compliant endpoint.

The current endpoint checks GitHub to see if the user has access to the repository, and if so, allows the delete operation to proceed. Instead, it should check if the user is an owner of the Namespace.

@robertdebock

Deleted. The API failed to remove it because the repository on GitHub was already removed or missing.

Can I ask to delete another one:
https://galaxy.ansible.com/robertdebock/tower

@robertdebock

Your tower role is deleted.

I'm having a similar issue:

My role python_pip was connected to ansible-role-python-pip (See: all dashed) which was renamed to ansible-role-python_pip (See that underscore?). Now imports fail:

Starting import: task_id=390442, repository=robertdebock/ansible-role-python_pip

===== LINTING ROLE: python_pip =====
yamllint OK.
ansible-lint OK.

Updating repository name "ansible-role-python_pip" -> "python_pip"
===== IMPORTING ROLE: python_pip =====
Adding role metadata tags
Adding role platforms

Task "390442" failed: duplicate key value violates unique constraint "main_repository_provider_namespace_id_name_8d721418_uniq" DETAIL: Key (provider_namespace_id, name)=(3967, python_pip) already exists.

@chouseknecht, can you link python_pip to https://github.com/robertdebock/ansible-role-python_pip ?

@robertdebock

The python_pip role seems to be importing successfully. Just ran an import of it. See import results here.

Closing. If there is still something needing resolution, please open a new issue, and we'll get on it. Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rshad picture rshad  路  3Comments

dallinb picture dallinb  路  5Comments

robertdebock picture robertdebock  路  7Comments

trishnaguha picture trishnaguha  路  7Comments

jeremyn picture jeremyn  路  6Comments