pythonmulesoftmule-esbjython-2.7ciscoconfparse

How to fix "AttributeError: 'module' object has no attribute 'SOL_UDP'" error in Python Connector Mule


I'm trying to execute a basic script to return Cisco Config File as a JSON Format, and I have a success process over Python2.7.16 and Python 3.7.3, but when I'm trying to execute the same script over Python Connector for Mule ESB I receive the error refered in the title of this thread.

This is for a Mule feature, the Python connector script in this tool, works with a Jython 2.7.1, and is loaded as a library for the Mule.

I expect the output as a JSON file but actual output is:

Root Exception stack trace:
Traceback (most recent call last):
  File "<script>", line 2, in <module>
  File "C:\Python27\Lib\site-packages\ciscoconfparse\__init__.py", line 1, in <module>
    from ciscoconfparse import *
  File "C:\Python27\Lib\site-packages\ciscoconfparse\ciscoconfparse.py", line 17, in <module>
    from models_cisco import IOSHostnameLine, IOSRouteLine, IOSIntfLine
  File "C:\Python27\Lib\site-packages\ciscoconfparse\models_cisco.py", line 8, in <module>
    from ccp_util import _IPV6_REGEX_STR_COMPRESSED1, _IPV6_REGEX_STR_COMPRESSED2
  File "C:\Python27\Lib\site-packages\ciscoconfparse\ccp_util.py", line 16, in <module>
    from dns.resolver import Resolver
  File "C:\Python27\Lib\site-packages\dns\resolver.py", line 1148, in <module>
    _protocols_for_socktype = {
AttributeError: 'module' object has no attribute 'SOL_UDP'

Solution

  • resolver.py

    The only thing I had to do was comment that line in the script resolver.py and in this way the script on Anypoint Studio ran smoothly.

    Thanks for your help, I hope that this helps to other people.