Example #1
0
 def poweroff(self, request, frontend_cluster_name, format=None):
     """Power off the frontend of a named cluster."""
     clust = get_object_or_404(Cluster, name=frontend_cluster_name)
     if not clust.project in request.user.groups.all():
         raise PermissionDenied()
     poweroff_nodes.delay([clust.frontend.rocks_name], "poweroff")
     return Response(status=204)
Example #2
0
 def reset(self, request, compute_name_cluster_name, compute_name, format=None):
     """Reset the named compute resource in a named cluster.
     """
     compute = get_object_or_404(
         Compute, name=compute_name, cluster__name=compute_name_cluster_name)
     if not compute.cluster.project in request.user.groups.all():
         raise PermissionDenied()
     poweroff_nodes.delay([compute.rocks_name], "reset")
     return Response(status=204)
Example #3
0
    def reboot(self, request, compute_name_cluster_name, compute_name, format=None):
        """Reboot the named compute resource in a named cluster.
        """
        compute = get_object_or_404(Compute, name=compute_name, cluster__name=compute_name_cluster_name)
        if not compute.cluster.project in request.user.groups.all():
            raise PermissionDenied()
        if not compute.computeset.filter(state=ComputeSet.CSET_STATE_RUNNING).exists():
            return Response("Compute is not a member of an active computeset", status=status.HTTP_400_BAD_REQUEST)

        poweroff_nodes.delay([compute.rocks_name], "reboot")
        return Response(status=204)
Example #4
0
    def reset(self, request, computeset_id, format=None):
        """Reset the nodes in the identified ComputeSet."""
        cset = ComputeSet.objects.get(pk=computeset_id)
        if not cset.cluster.project in request.user.groups.all():
            raise PermissionDenied()

        computes = []
        for compute in cset.computes.all():
            computes.append(compute.rocks_name)

        poweroff_nodes.delay(computes, "reset")

        return Response(status=204)
Example #5
0
    def shutdown(self, request, computeset_id, format=None):
        """Shutdown the nodes in the identified ComputeSet."""
        cset = ComputeSet.objects.get(pk=computeset_id)
        if not cset.cluster.project in request.user.groups.all():
            raise PermissionDenied()

        computes = []
        for compute in cset.computes.all():
            computes.append(compute.rocks_name)

        poweroff_nodes.delay(computes, "shutdown")

        cancel_computeset.delay(FullComputeSetSerializer(cset).data)

        return Response(status=204)