decorator container start-up

This commit is contained in:
makram89 2022-01-27 23:18:02 +01:00
parent f87290b6b5
commit 341339ca8b

View File

@ -1,7 +1,8 @@
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from DockerManager import DockerManager from DockerManager import DockerManager
from models import Profile from models import Profile, Session
from django.contrib.auth.signals import user_logged_in
@receiver(post_save, sender=Profile) @receiver(post_save, sender=Profile)
@ -15,4 +16,21 @@ def profile_saved(sender, instance, **kwargs):
instance.save() instance.save()
@receiver(user_logged_in)
def profile_start_up(sender, instance, request, **kwargs):
if instance.session is None:
# Create session
session = Session()
session.user = instance
session.sessionid = request.COOKIE.get('sessionid')
# TODO metoda wybierania portów
port = 6969
session.port = port
# Create container
docker_manager = DockerManager()
container_id = docker_manager.turn_on_container(instance.volume, port)
session.container_id = container_id
session.save()