Commit fe0c7f4d authored by lukasburgey's avatar lukasburgey
Browse files

--wip--

parent c1649a00
Pipeline #121906 passed with stage
in 1 minute and 28 seconds
......@@ -170,29 +170,36 @@ class ConfigurationView(views.APIView):
})
class DeregisterView(views.APIView):
class DeregisterView(generics.ListAPIView):
authentication_classes = AUTHENTICATION_CLASSES
permission_classes = PERMISSION_CLASSES
serializer_class = clients.DeploymentStateSerializer
def put(self, request):
def get_queryset(self):
# the site where client is located
client_site = None
try:
client_site = request.user.site
client_site = self.request.user.site
except Site.DoesNotExist:
raise ImproperlyConfigured('client has no site')
# deregister the client / its services / its site
# we expect all deployments at the clients to be removed (and therefore simply delete them all)
LOGGER.info('[DEREG] Client %s from site %s is deregistering', request.user, client_site)
LOGGER.info('[DEREG] Client %s from site %s is deregistering', self.request.user, client_site)
for service in client_site.services.all():
LOGGER.info('[DEREG] Triggering service removal %s', service)
service.remove_service()
response = 'Success deregistering'
return Response(response)
# the service removals usually cause a lot of deployments to be orphaned
# we return these to the client, so it can remove them
return [
state
for state in self.request.user.site.states.all()
if state.is_pending_for_restarting_client
]
URLPATTERNS = [
......
......@@ -132,7 +132,7 @@ class ClientViewTest(TestCase):
self.assertEqual(response.status_code, 200)
def test_deregister(self):
response = self.client.put(
response = self.client.get(
'/client/deregister',
{
},
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment