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
pip install --force-reinstall --no-cache
https://github.com/openwisp/openwisp-network-topology/tarball/master
https://github.com/openwisp/netdiff/tarball/master

Best regards
*Federico Capoano*
OpenWISP OÜ
Harjumaa, Tallinn, Sepapaja tn 6, 15551
VAT: EE101989729
*openwisp.io* <http://openwisp.io>


On Thu, 16 Nov 2023 at 17:47, Michele Salerno <[email protected]> wrote:

> 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:
>
> Restart the openwisp processes with:
>
> supervisorctl restart all
>
> F.
>
> On Wed, 15 Nov 2023 at 15:57, Michele Salerno <[email protected]> wrote:
>
>> 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:
>>
>> Try this:
>>
>> cd /opt/openwisp2
>> source bin/env/activate
>> pip install
>> https://github.com/openwisp/openwisp-network-topology/tarball/master
>> pip install https://github.com/openwisp/netdiff/tarball/master
>>
>> Federico
>>
>>
>> On Tue, 14 Nov 2023 at 18:04, Michele Salerno <[email protected]>
>> wrote:
>>
>>> root@controller:~ # pip install 
>>> https://github.com/openwisp/netdiff/tarball/master
>>>
>>> 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.
>>>
>>> On Tue, 14 Nov 2023 at 17:22, Michele Salerno <[email protected]>
>>> wrote:
>>>
>>>> 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:
>>>>
>>>> Please share the log output from /opt/openwisp2/log/openwisp2.log
>>>>
>>>>
>>>> On Tue, 14 Nov 2023 at 14:45, Michele Salerno <[email protected]>
>>>> wrote:
>>>>
>>>>> 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:
>>>>>
>>>>> 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 <https://github.com/openwisp/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
>>>>> --
>>>>> 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 [email protected].
>>>>> To view this discussion on the web, visit
>>>>> https://groups.google.com/d/msgid/openwisp/CAAGgX6%2B8%3DHk41uALBvPei6D7EhgjLKPaDzCYZhXz%3DUf0O5AuUA%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/openwisp/CAAGgX6%2B8%3DHk41uALBvPei6D7EhgjLKPaDzCYZhXz%3DUf0O5AuUA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> --
>>>>> 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.
>>>>>
>>>>> --
>>>>> 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 [email protected].
>>>>> To view this discussion on the web, visit
>>>>> https://groups.google.com/d/msgid/openwisp/7324e74a-5c81-426a-92d4-476ad5b0215c%40gmail.com
>>>>> <https://groups.google.com/d/msgid/openwisp/7324e74a-5c81-426a-92d4-476ad5b0215c%40gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>>> 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 [email protected].
>>>> To view this discussion on the web, visit
>>>> https://groups.google.com/d/msgid/openwisp/CAAGgX6JENTteFxXzoZswqjPHtbooePxfg1cDn4Xm5S9T5UkAhw%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/openwisp/CAAGgX6JENTteFxXzoZswqjPHtbooePxfg1cDn4Xm5S9T5UkAhw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> --
>>>> 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.
>>>>
>>>> --
>>>> 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 [email protected].
>>>> To view this discussion on the web, visit
>>>> https://groups.google.com/d/msgid/openwisp/d63f9c92-01e3-444a-ae18-12389fbb757a%40gmail.com
>>>> <https://groups.google.com/d/msgid/openwisp/d63f9c92-01e3-444a-ae18-12389fbb757a%40gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>>> 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 [email protected].
>>> To view this discussion on the web, visit
>>> https://groups.google.com/d/msgid/openwisp/CAAGgX6KrJGiY6tZFNCiC7Xy8S8eSzd1EB0HN9dp%3DSMbqRhypOw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/openwisp/CAAGgX6KrJGiY6tZFNCiC7Xy8S8eSzd1EB0HN9dp%3DSMbqRhypOw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> --
>>> 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.
>>>
>>> --
>>> 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 [email protected].
>>> To view this discussion on the web, visit
>>> https://groups.google.com/d/msgid/openwisp/e271851a-14c2-440b-b991-1664a2e97dbc%40gmail.com
>>> <https://groups.google.com/d/msgid/openwisp/e271851a-14c2-440b-b991-1664a2e97dbc%40gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> 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 [email protected].
>> To view this discussion on the web, visit
>> https://groups.google.com/d/msgid/openwisp/CAAGgX6%2BEAzzKHELSoGLTeF2sA4_b-GE2fpcMvpAD6her%3DJ9Wjw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/openwisp/CAAGgX6%2BEAzzKHELSoGLTeF2sA4_b-GE2fpcMvpAD6her%3DJ9Wjw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> 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.
>>
>> --
>> 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 [email protected].
>> To view this discussion on the web, visit
>> https://groups.google.com/d/msgid/openwisp/19630920-9c33-47c0-9e77-936b3fd1f0f9%40gmail.com
>> <https://groups.google.com/d/msgid/openwisp/19630920-9c33-47c0-9e77-936b3fd1f0f9%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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 [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/openwisp/CAAGgX6JzuR%3D%2BjZT7FQz%2BcVmMX97G2zRDxpqt3Shkz2Z6UCMOPA%40mail.gmail.com
> <https://groups.google.com/d/msgid/openwisp/CAAGgX6JzuR%3D%2BjZT7FQz%2BcVmMX97G2zRDxpqt3Shkz2Z6UCMOPA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> --
> 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.
>
> --
> 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 [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/openwisp/e5b75e1e-459a-4037-b478-6a483d0f85f9%40gmail.com
> <https://groups.google.com/d/msgid/openwisp/e5b75e1e-459a-4037-b478-6a483d0f85f9%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/openwisp/CAAGgX6LqOMmv5RcRiPPVOWM80v5hS%2B_Lpp5tyUq8Y7m_35dcEg%40mail.gmail.com.

Reply via email to