Commit 49465117 by Chif Gergő

Logging information messages about instance methods

parent 720ab1e4
Pipeline #1073 passed with stage
in 1 minute 29 seconds
......@@ -14,7 +14,9 @@ from template.models import ImageTemplate
from template.serializers import ImageTemplateModelSerializer
from authorization.mixins import AuthorizationMixin
from guardian.shortcuts import get_perms_for_model, assign_perm
import logging
logger = logging.getLogger(__name__)
authorization = {
"list": {"filter": ["use_instance"]},
......@@ -59,6 +61,7 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
try:
return Instance.objects.get(pk=pk)
except Instance.DoesNotExist:
logger.warn(f"Unexistent instance was requested with id: {pk}")
raise Http404
def list(self, request):
......@@ -89,10 +92,15 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
owner=request.user,
)
logger.info(f"New virt. machine instance created by {request.user.id}:"
f"ID: {newInstance.id}")
for perm in get_perms_for_model(Instance):
print(perm)
assign_perm(perm, request.user, newInstance)
logger.info(f"All permission granted to user: {request.user.id} to instance:"
f"{newInstance.id}")
return Response(InstanceSerializer(newInstance).data, status=status.HTTP_201_CREATED)
def retrieve(self, request, pk):
......@@ -113,6 +121,8 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
instance.change_name(request.data["name"])
if "description" in request.data:
instance.change_description(request.data["description"])
logger.info(f"Instance (ID: {instance.id}) was updated.")
return Response(InstanceSerializer(instance).data)
def destroy(self, request, pk):
......@@ -120,6 +130,7 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
if not instance:
return Response(status=status.HTTP_204_NO_CONTENT)
instance.destroy()
logger.info(f"Instance (ID: {instance.id}) was deleted by user: {request.user.id}")
return Response(status=status.HTTP_204_NO_CONTENT)
@action(detail=True, methods=["post"])
......@@ -138,6 +149,8 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
data["description"],
instance,
request.user)
logger.info(f"A new template created with id: {new_template.id} from instance:"
f"{instance.id}")
serializer = ImageTemplateModelSerializer(instance=new_template)
return Response(serializer.data)
......@@ -147,6 +160,9 @@ class InstanceViewSet(AuthorizationMixin, ViewSet):
if not self.has_perms_for_object(request.user, request.data["action"], instance):
return Response({"error": "No permission to use this action on the VM."},
status=status.HTTP_401_UNAUTHORIZED)
if "action" in request.data:
action = request.data["action"]
logger.info(f"Action {action} initiatied in instance: {instance.id}")
success = instance.execute_common_action(action=request.data["action"])
return Response(success)
......
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 sign in to comment