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:
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-cachehttps://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 <mikysa...@gmail.com> 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  <http://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
    <mikysa...@gmail.com> 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  <http://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
        <mikysa...@gmail.com> wrote:

            root@controller:~ # pip 
installhttps://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
            <mikysa...@gmail.com> 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  <http://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
                <mikysa...@gmail.com> 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
                    openwisp+unsubscr...@googlegroups.com.
                    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
                    openwisp+unsubscr...@googlegroups.com.
                    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
                openwisp+unsubscr...@googlegroups.com.
                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
                openwisp+unsubscr...@googlegroups.com.
                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
            openwisp+unsubscr...@googlegroups.com.
            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
            openwisp+unsubscr...@googlegroups.com.
            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 openwisp+unsubscr...@googlegroups.com.
        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 openwisp+unsubscr...@googlegroups.com.
        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 openwisp+unsubscr...@googlegroups.com.
    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 openwisp+unsubscr...@googlegroups.com.
    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 openwisp+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/openwisp/CAAGgX6LqOMmv5RcRiPPVOWM80v5hS%2B_Lpp5tyUq8Y7m_35dcEg%40mail.gmail.com <https://groups.google.com/d/msgid/openwisp/CAAGgX6LqOMmv5RcRiPPVOWM80v5hS%2B_Lpp5tyUq8Y7m_35dcEg%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 openwisp+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/openwisp/24b31cbc-1855-4921-87ad-c3757ebe1af6%40gmail.com.

Reply via email to