ZeroTier Merged in the Development Version of OpenWISP

133 views
Skip to first unread message

Federico Capoano

unread,
Oct 11, 2023, 11:17:26 AM10/11/23
to open...@googlegroups.com
Hi everyone!

I just wanted to let you know that I just finished merging the work to integrate ZeroTier into the development version of OpenWISP, find more information on how to set this up here: https://openwisp.io/docs/user/zerotier.html

This feature will be shipped in the next release, if you want to try it before then you can do so by deploying the development version of OpenWISP, to do that you need to use the latest master of the ansible-openwisp2 role.

Many thanks to Aryaman for working on this during the last Google Summer of Code under the guidance of Gagan Deep, Ajay Tripathi and myself.

I am proud of the result we have achieved, as the first iteration I think it's really good.

I am eager to see this work deployed all around the world!

Best regards
Federico Capoano

Michele Salerno

unread,
Nov 14, 2023, 12:45:59 PM11/14/23
to open...@googlegroups.com

Hi,

I followed the guide and everything works.
I only have one error in the topology, I created the script as described in the guide https://openwisp.io/docs/user/network-topology.html

This is my output:

root@controller:~ # /opt/send-zt-topology.sh 
<!doctype html><html lang="en"><head><title>Server Error (500)</title></head><body><h1>Server Error (500)</h1><p></p></body></html>root@controller:~ # 

What could be the problem?

Thanks.

Beste regards,

Michele Salerno


Il 11/10/23 17:17, Federico Capoano ha scritto:
--
You received this message because you are subscribed to the Google Groups "OpenWISP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openwisp+u...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/openwisp/CAAGgX6%2B8%3DHk41uALBvPei6D7EhgjLKPaDzCYZhXz%3DUf0O5AuUA%40mail.gmail.com.
-- 
Informativa Privacy - Ai sensi del D. Lgs n. 196/2003 (Codice Privacy) si precisa che le informazioni contenute in questo messaggio sono riservate e ad uso esclusivo del destinatario. Qualora il messaggio in parola Le fosse pervenuto per errore, La preghiamo di eliminarlo senza copiarlo e di non inoltrarlo a terzi, dandocene gentilmente comunicazione. Grazie.

Privacy Information - This message, for the D. Lgs n. 196/2003 (Privacy Code), may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.

Federico Capoano

unread,
Nov 14, 2023, 3:17:22 PM11/14/23
to open...@googlegroups.com
Please share the log output from /opt/openwisp2/log/openwisp2.log


Michele Salerno

unread,
Nov 14, 2023, 3:22:57 PM11/14/23
to open...@googlegroups.com
root@controller:openwisp2 # tail -f /opt/openwisp2/log/openwisp2.log
option[selected]:not(option[selected] ~ option[selected]) ', ('Unknown pseudo-class', 'has')
[WARNING 2023-11-14 20:20:02,730] module: __init__, process: 228744, thread: 140337855625024
Invalid or unsupported selector 'select:not(:has(option[selected])) option:first-of-type,
option[selected]:not(option[selected] ~ option[selected]) ', ('Unknown pseudo-class', 'has')
[WARNING 2023-11-14 20:20:02,743] module: __init__, process: 228742, thread: 139758430725952
Invalid or unsupported selector 'select:not(:has(option[selected])) option:first-of-type,
option[selected]:not(option[selected] ~ option[selected]) ', ('Unknown pseudo-class', 'has')
[ERROR 2023-11-14 20:21:00,924] module: log, process: 197536, thread: 140067354400576
Internal Server Error: /api/v1/network-topology/topology/2307fb3c-4035-4ee3-8868-f807339efb78/receive/
Traceback (most recent call last):
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/module_loading.py", line 30, in import_string
    return cached_import(module_path, class_name)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/module_loading.py", line 16, in cached_import
    return getattr(module, class_name)
AttributeError: module 'netdiff' has no attribute 'ZeroTierParser'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
    return view_func(*args, **kwargs)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/views/generic/base.py", line 104, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/opt/openwisp2/env/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/api/views.py", line 144, in post
    topology.receive(request.data)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 371, in receive
    self.update(data)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 314, in update
    diff = self.diff(data)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 140, in diff
    if isinstance(data, self.parser_class):
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 105, in parser_class
    return import_string(self.parser)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/module_loading.py", line 32, in import_string
    raise ImportError(
ImportError: Module "netdiff" does not define a "ZeroTierParser" attribute/class



Il 14/11/23 21:17, Federico Capoano ha scritto:

Federico Capoano

unread,
Nov 14, 2023, 3:23:46 PM11/14/23
to open...@googlegroups.com
I think you need to upgrade your netdiff and network-topology modules to the latest development version.

F.

Michele Salerno

unread,
Nov 14, 2023, 3:29:40 PM11/14/23
to open...@googlegroups.com
I update with ansible-galaxy install -r requirements.yml -force and run
playbook

my requirements.yml

---
collections:
  - name: community.general

roles:
  - src: https://github.com/openwisp/ansible-openwisp2.git
    version: master
    name: openwisp.openwisp2

  - src: https://github.com/mikysal78/Stouts.openvpn.git
    name: Stouts.openvpn

  - src: https://github.com/openwisp/ansible-openwisp-wifi-login-pages.git
    version: master
    name: openwisp-wifi-login-pages

  - src: https://github.com/mikysal78/iptables.git
    version: master
    name: openwisp2-iptables

  - name: geerlingguy.postgresql

  - src: nkakouros.easyrsa

  - src: mikysal78.ninux_common

  - src: geerlingguy.certbot

Il 14/11/23 21:23, Federico Capoano ha scritto:
> I think you need to upgrade your netdiff and network-topology modules
> to the latest development version.

Michele Salerno

unread,
Nov 14, 2023, 4:04:12 PM11/14/23
to open...@googlegroups.com
Traceback (most recent call last):
  File "/usr/bin/pip", line 33, in <module>
    sys.exit(load_entry_point('pip==20.3.4', 'console_scripts', 'pip')())
  File "/usr/bin/pip", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.9/importlib/metadata.py", line 77, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
    from pip._vendor.packaging.utils import canonicalize_name
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 94, in <module>
    vendored("requests.packages.urllib3.contrib.pyopenssl")
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
    __import__(modulename, globals(), locals(), level=0)
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "<frozen zipimport>", line 259, in load_module
  File "/usr/share/python-wheels/urllib3-1.26.5-py2.py3-none-any.whl/urllib3/contrib/pyopenssl.py", line 50, in <module>
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1556, in <module>
    class X509StoreFlags(object):
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1577, in X509StoreFlags
    CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'


Il 14/11/23 21:23, Federico Capoano ha scritto:
I think you need to upgrade your netdiff and network-topology modules to the latest development version.

F.

Federico Capoano

unread,
Nov 15, 2023, 6:20:41 AM11/15/23
to open...@googlegroups.com

Michele Salerno

unread,
Nov 15, 2023, 1:57:15 PM11/15/23
to open...@googlegroups.com

I try but source env/bin..
this is the error when run the script

root@controller:opt # tail /opt/openwisp2/log/openwisp2.log
    diff = self.diff(data)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 140, in diff
    if isinstance(data, self.parser_class):
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 105, in parser_class
    return import_string(self.parser)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/module_loading.py", line 32, in import_string
    raise ImportError(
ImportError: Module "netdiff" does not define a "ZeroTierParser" attribute/class
root@controller:opt # 


Il 15/11/23 12:20, Federico Capoano ha scritto:

Federico Capoano

unread,
Nov 15, 2023, 4:17:20 PM11/15/23
to open...@googlegroups.com
Restart the openwisp processes with:

supervisorctl restart all

F.

Michele Salerno

unread,
Nov 16, 2023, 3:47:56 PM11/16/23
to open...@googlegroups.com

I have rebooted the server but the error is still the same.

root@controller:opt # tail /opt/openwisp2/log/openwisp2.log
    diff = self.diff(data)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 140, in diff
    if isinstance(data, self.parser_class):
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/openwisp_network_topology/base/topology.py", line 105, in parser_class
    return import_string(self.parser)
  File "/opt/openwisp2/env/lib/python3.9/site-packages/django/utils/module_loading.py", line 32, in import_string
    raise ImportError(
ImportError: Module "netdiff" does not define a "ZeroTierParser" attribute/class
root@controller:opt # 



Il 15/11/23 22:17, Federico Capoano ha scritto:

Federico Capoano

unread,
Nov 17, 2023, 8:17:04 AM11/17/23
to open...@googlegroups.com
Verify that in the python virtualenv, the netdiff module has this file:
https://github.com/openwisp/netdiff/blob/master/netdiff/parsers/zerotier.py

with --force-reinstall --no-cache 

cd /opt/openwisp2
source bin/env/activate

Best regards
Federico Capoano
OpenWISP OÜ
Harjumaa, Tallinn, Sepapaja tn 6, 15551
VAT: EE101989729


Michele Salerno

unread,
Nov 17, 2023, 12:40:51 PM11/17/23
to open...@googlegroups.com

Hi,

i force update and i have this:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
openwisp-controller 1.1a0 requires netaddr~=0.8.0, but you have netaddr 0.9.0 which is incompatible.
openwisp-monitoring 1.1a0 requires netaddr~=0.8.0, but you have netaddr 0.9.0 which is incompatible.
openwisp-monitoring 1.1a0 requires urllib3~=2.0.3, but you have urllib3 2.1.0 which is incompatible.
Il 17/11/23 14:16, Federico Capoano ha scritto:

Federico Capoano

unread,
Nov 17, 2023, 12:48:53 PM11/17/23
to open...@googlegroups.com
Try downgrading netaddr to 0.8.0, I do not know where netaddr 0.9.0 is coming from.

Reply all
Reply to author
Forward
0 new messages