diff --git a/openwisp_controller/config/api/serializers.py b/openwisp_controller/config/api/serializers.py index ff62ff1cb..d3b285def 100644 --- a/openwisp_controller/config/api/serializers.py +++ b/openwisp_controller/config/api/serializers.py @@ -254,6 +254,7 @@ def update(self, instance, validated_data): instance.config.vpnclient_set.exclude(vpn__in=vpn_list).delete() instance.config.templates.clear() instance.config.templates.add(*[]) + instance.config.save() elif hasattr(instance, 'config') and validated_data.get('organization'): if instance.organization != validated_data.get('organization'): diff --git a/openwisp_controller/config/tests/test_api.py b/openwisp_controller/config/tests/test_api.py index 854130e9b..a427ff3c6 100644 --- a/openwisp_controller/config/tests/test_api.py +++ b/openwisp_controller/config/tests/test_api.py @@ -200,7 +200,7 @@ def test_device_put_api(self): 'organization': org.pk, 'mac_address': d1.mac_address, 'config': { - 'backend': 'netjsonconfig.OpenWrt', + 'backend': 'netjsonconfig.OpenWisp', 'status': 'modified', 'templates': [], 'context': '{}', @@ -212,6 +212,11 @@ def test_device_put_api(self): self.assertEqual(r.status_code, 200) self.assertEqual(r.data['name'], 'change-test-device') self.assertEqual(r.data['organization'], org.pk) + self.assertEqual(r.data['config']['backend'], 'netjsonconfig.OpenWisp') + d1.refresh_from_db() + self.assertEqual(d1.name, 'change-test-device') + self.assertEqual(d1.organization, org) + self.assertEqual(d1.config.backend, 'netjsonconfig.OpenWisp') # test device with VPN-client type template assigned to it def test_device_with_vpn_client_template_assigned(self):