Skip to content

Commit

Permalink
[req-change] Changed "member_id" to "zerotier_member_id"
Browse files Browse the repository at this point in the history
  • Loading branch information
Aryamanz29 committed Aug 29, 2023
1 parent 4e307fb commit 6c62b84
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
10 changes: 6 additions & 4 deletions openwisp_network_topology/integrations/device/base/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,16 @@ def auto_create_zerotier(cls, node):
"""
Implementation of the integration between
controller and network-topology modules
when using ZeroTier (using the `member_id`)
when using ZeroTier (using the `zerotier_member_id`)
"""
member_id = node.properties.get('address')
if not member_id:
zerotier_member_id = node.properties.get('address')
if not zerotier_member_id:
return

Device = load_model('config', 'Device')
device_filter = models.Q(config__vpnclient__secret__startswith=member_id)
device_filter = models.Q(
config__vpnclient__secret__startswith=zerotier_member_id
)
if node.organization_id:
device_filter &= models.Q(organization_id=node.organization_id)
device = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def _init_wireguard_test_node(self, topology, addresses=[], create=True, **kwarg
return node

def _init_zerotier_test_node(
self, topology, addresses=None, label='test', member_id=None, create=True
self, topology, addresses=None, label='test', zt_member_id=None, create=True
):
if not addresses:
addresses = [self._TEST_ZT_MEMBER_CONFIG['address']]
Expand All @@ -108,8 +108,8 @@ def _init_zerotier_test_node(
topology=topology,
label=label,
addresses=addresses,
# zt peer address is `memeber_id`
properties={'address': member_id},
# zt peer address is `zt_memeber_id`
properties={'address': zt_member_id},
)
if create:
node.full_clean()
Expand Down Expand Up @@ -147,8 +147,8 @@ def _create_zerotier_test_env(self, mock_requests, mock_subprocess, parser):
device, _, _ = self._create_zerotier_vpn_template()
device.organization = org
topology = self._create_topology(organization=org, parser=parser)
member_id = device.config.vpnclient_set.first().member_id
return topology, device, member_id
zerotier_member_id = device.config.vpnclient_set.first().zerotier_member_id
return topology, device, zerotier_member_id

def _create_test_env(self, parser):
organization = self._get_org()
Expand Down Expand Up @@ -248,13 +248,15 @@ def test_auto_create_wireguard(self):
self.fail('KeyError raised')

def test_auto_create_zerotier(self):
topology, device, member_id = self._create_zerotier_test_env(
topology, device, zerotier_member_id = self._create_zerotier_test_env(
parser='netdiff.ZeroTierParser'
)
self.assertEqual(DeviceNode.objects.count(), 0)
with self.subTest('assert number of queries'):
with self.assertNumQueries(15):
node = self._init_zerotier_test_node(topology, member_id=member_id)
node = self._init_zerotier_test_node(
topology, zt_member_id=zerotier_member_id
)
self.assertEqual(DeviceNode.objects.count(), 1)
device_node = DeviceNode.objects.first()
self.assertEqual(device_node.device, device)
Expand All @@ -266,24 +268,26 @@ def test_auto_create_zerotier(self):
on_commit.assert_not_called()

def test_auto_create_zerotier_failures(self):
topology, device, member_id = self._create_zerotier_test_env(
topology, device, zerotier_member_id = self._create_zerotier_test_env(
parser='netdiff.ZeroTierParser'
)

with self.subTest('member_id not present'):
with self.subTest('zerotier_member_id not present'):
self._init_zerotier_test_node(topology)
self.assertFalse(DeviceNode.objects.exists())

with self.subTest('member_id does not exist'):
self._init_zerotier_test_node(topology, member_id='non_existent_id')
with self.subTest('zerotier_member_id does not exist'):
self._init_zerotier_test_node(topology, zt_member_id='non_existent_id')
self.assertFalse(DeviceNode.objects.exists())

with self.subTest('exception during save'):
with mock.patch.object(
DeviceNode, 'save', side_effect=Exception('test')
) as save:
with mock.patch.object(models_logger, 'exception') as logger_exception:
self._init_zerotier_test_node(topology, member_id=member_id)
self._init_zerotier_test_node(
topology, zt_member_id=zerotier_member_id
)
save.assert_called_once()
logger_exception.assert_called_once()
self.assertEqual(DeviceNode.objects.count(), 0)
Expand Down

0 comments on commit 6c62b84

Please sign in to comment.