Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tower_inventory module fails to create smart inventory #6250

Closed
kedark3 opened this issue Mar 10, 2020 · 2 comments
Closed

Tower_inventory module fails to create smart inventory #6250

kedark3 opened this issue Mar 10, 2020 · 2 comments
Assignees
Labels
component:api component:awx_collection issues related to the collection for controlling AWX type:bug

Comments

@kedark3
Copy link

kedark3 commented Mar 10, 2020

ISSUE TYPE
  • Bug Report
SUMMARY

When trying to use Tower_inventory module to create smart inventory, it fails with server error.

ENVIRONMENT
* Tower version: 3.6.2
* AWX install method: linux using bundle
* Ansible version: 2.9.1 on Tower, 2.9.2 on my local system from where I run the playbook
* Operating System: not relevant I believe
* Web Browser: N/A
STEPS TO REPRODUCE

Use following content to create inventory:

  - name: Test Inventory - Smart
    organization: Default
    description: created by Ansible Playbook
    state: present
    kind: smart
    host_filter: ansible
EXPECTED RESULTS

Smart Inventory should be created

ACTUAL RESULTS
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
    fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
    mod_name, mod_fname, mod_loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/tmp/ansible_tower_inventory_payload_Ptt6kB/ansible_tower_inventory_payload.zip/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py", line 130, in <module>
  File "/tmp/ansible_tower_inventory_payload_Ptt6kB/ansible_tower_inventory_payload.zip/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py", line 116, in main
  File "/usr/lib/python2.7/site-packages/tower_cli/models/base.py", line 720, in modify
    return self.write(pk, create_on_missing=create_on_missing, force_on_exists=True, **kwargs)
  File "/usr/lib/python2.7/site-packages/tower_cli/models/base.py", line 424, in write
    r = getattr(client, method.lower())(url, data=kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 578, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/lib/python2.7/site-packages/tower_cli/api.py", line 262, in request
    raise exc.ServerError('The Tower server sent back a server error. '
tower_cli.exceptions.ServerError: The Tower server sent back a server error. Please try again later.

failed: [dhcp-3-213.vms.sat.rdu2.redhat.com] (item={'name': 'Test Inventory - Smart', 'organization': 'Default', 'description': 'created by Ansible Playbook', 'state': 'present', 'kind': 'smart', 'host_filter': 'ansible'}) => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "description": "created by Ansible Playbook",
        "host_filter": "ansible",
        "kind": "smart",
        "name": "Test Inventory - Smart",
        "organization": "Default",
        "state": "present"
    },
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\n    fname, loader, pkg_name)\n  File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\n    mod_name, mod_fname, mod_loader, pkg_name)\n  File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n    exec code in run_globals\n  File \"/tmp/ansible_tower_inventory_payload_Ptt6kB/ansible_tower_inventory_payload.zip/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py\", line 130, in <module>\n  File \"/tmp/ansible_tower_inventory_payload_Ptt6kB/ansible_tower_inventory_payload.zip/ansible/modules/web_infrastructure/ansible_tower/tower_inventory.py\", line 116, in main\n  File \"/usr/lib/python2.7/site-packages/tower_cli/models/base.py\", line 720, in modify\n    return self.write(pk, create_on_missing=create_on_missing, force_on_exists=True, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/tower_cli/models/base.py\", line 424, in write\n    r = getattr(client, method.lower())(url, data=kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 578, in post\n    return self.request('POST', url, data=data, json=json, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/tower_cli/api.py\", line 262, in request\n    raise exc.ServerError('The Tower server sent back a server error. '\ntower_cli.exceptions.ServerError: The Tower server sent back a server error. Please try again later.\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

@beeankha beeankha added the component:awx_collection issues related to the collection for controlling AWX label Mar 10, 2020
@AlanCoding
Copy link
Member

Traceback (most recent call last):
  File "/Users/alancoding/Documents/tower/awx/main/utils/filters.py", line 359, in query_from_string
    res = boolExpr.parseString('(' + filter_string + ')')
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1939, in parseString
    raise exc
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1929, in parseString
    loc, tokens = self._parse(instring, 0)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 6030, in parseImpl
    self.expr.tryParse(instring, loc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1722, in tryParse
    return self._parse(instring, loc, doActions=False)[0]
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 6030, in parseImpl
    self.expr.tryParse(instring, loc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1722, in tryParse
    return self._parse(instring, loc, doActions=False)[0]
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4037, in parseImpl
    loc, exprtokens = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 6030, in parseImpl
    self.expr.tryParse(instring, loc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1722, in tryParse
    return self._parse(instring, loc, doActions=False)[0]
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4430, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 6030, in parseImpl
    self.expr.tryParse(instring, loc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1722, in tryParse
    return self._parse(instring, loc, doActions=False)[0]
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4020, in parseImpl
    loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4237, in parseImpl
    raise maxException
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4222, in parseImpl
    ret = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1669, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 4037, in parseImpl
    loc, exprtokens = e._parse(instring, loc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 1673, in _parseNoCache
    loc, tokens = self.parseImpl(instring, preloc, doActions)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/pyparsing.py", line 2877, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pyparsing.ParseException: Expected {or term | and term}, found ')'  (at char 8), (line:1, col:9)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/alancoding/Documents/tower/awx/api/serializers.py", line 1601, in validate_host_filter
    SmartFilter().query_from_string(host_filter)
  File "/Users/alancoding/Documents/tower/awx/main/utils/filters.py", line 361, in query_from_string
    raise RuntimeError(u"Invalid query %s" % filter_string_raw)
RuntimeError: Invalid query ansible

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/serializers.py", line 493, in to_internal_value
    validated_value = validate_method(validated_value)
  File "/Users/alancoding/Documents/tower/awx/api/serializers.py", line 1603, in validate_host_filter
    raise models.base.ValidationError(e)
django.core.exceptions.ValidationError: ['Invalid query ansible']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/fields.py", line 239, in get_error_detail
    error_dict = exc_info.error_dict
AttributeError: 'ValidationError' object has no attribute 'error_dict'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/alancoding/Documents/tower/awx_collection/test/awx/test_inventory.py", line 48, in test_smart_inventory_create
    result = run_module('tower_inventory', module_args, admin_user)
  File "/Users/alancoding/Documents/tower/awx_collection/test/awx/conftest.py", line 133, in rf
    resource_module.main()
  File "/Users/alancoding/Documents/tower/awx_collection/plugins/modules/tower_inventory.py", line 144, in main
    module.create_or_update_if_needed(inventory, inventory_fields, endpoint='inventories', item_type='inventory')
  File "/Users/alancoding/Documents/tower/awx_collection/plugins/module_utils/tower_api.py", line 584, in create_or_update_if_needed
    return self.create_if_needed(existing_item, new_item, endpoint, handle_response=handle_response, on_create=on_create, item_type=item_type)
  File "/Users/alancoding/Documents/tower/awx_collection/plugins/module_utils/tower_api.py", line 495, in create_if_needed
    response = self.post_endpoint(endpoint, **{'data': new_item})
  File "/Users/alancoding/Documents/tower/awx_collection/plugins/module_utils/tower_api.py", line 213, in post_endpoint
    return self.make_request('POST', endpoint, **kwargs)
  File "/Users/alancoding/Documents/tower/awx_collection/plugins/module_utils/tower_api.py", line 310, in make_request
    response = self.session.open(method, self.url.geturl(), headers=headers, validate_certs=self.verify_ssl, follow_redirects=True, data=data)
  File "/Users/alancoding/Documents/tower/awx_collection/test/awx/conftest.py", line 104, in new_open
    r = new_request(self, method, url, **kwargs)
  File "/Users/alancoding/Documents/tower/awx_collection/test/awx/conftest.py", line 84, in new_request
    django_response = rf(url, user=request_user, expect=None, **kwargs_copy)
  File "/Users/alancoding/Documents/tower/awx/main/tests/functional/conftest.py", line 624, in rf
    response = view(request, *view_args, **view_kwargs)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/Users/alancoding/Documents/tower/awx/api/generics.py", line 297, in dispatch
    return super(APIView, self).dispatch(request, *args, **kwargs)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/views.py", line 495, in dispatch
    response = self.handle_exception(exc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/views.py", line 455, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/views.py", line 492, in dispatch
    response = handler(request, *args, **kwargs)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/generics.py", line 244, in post
    return self.create(request, *args, **kwargs)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/mixins.py", line 20, in create
    serializer.is_valid(raise_exception=True)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/serializers.py", line 236, in is_valid
    self._validated_data = self.run_validation(self.initial_data)
  File "/Users/alancoding/Documents/tower/awx/api/serializers.py", line 562, in run_validation
    return super(BaseSerializer, self).run_validation(data)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/serializers.py", line 434, in run_validation
    value = self.to_internal_value(data)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/serializers.py", line 497, in to_internal_value
    errors[field.field_name] = get_error_detail(exc)
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/fields.py", line 244, in get_error_detail
    for error in exc_info.error_list]
  File "/Users/alancoding/.virtualenvs/awx_collection/lib/python3.6/site-packages/rest_framework/fields.py", line 244, in <listcomp>
    for error in exc_info.error_list]
TypeError: unsupported operand type(s) for %: 'RuntimeError' and 'tuple'

👀

@squidboylan
Copy link
Contributor

tested by #6297

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:api component:awx_collection issues related to the collection for controlling AWX type:bug
Projects
None yet
Development

No branches or pull requests

6 participants