diff --git a/recircle/instance/models.py b/recircle/instance/models.py index db71c0f..1f1d534 100644 --- a/recircle/instance/models.py +++ b/recircle/instance/models.py @@ -282,6 +282,9 @@ class Instance(BaseMachineDescriptor): self.description = new_description self.save() + def get_vnc_console(self): + return interface.get_vnc_console(self.remote_id) + def destroy(self): self.deleted = True self.save() diff --git a/recircle/instance/views.py b/recircle/instance/views.py index 641decf..6a89e01 100644 --- a/recircle/instance/views.py +++ b/recircle/instance/views.py @@ -122,7 +122,7 @@ class InstanceViewSet(AuthorizationMixin, ViewSet): instance.destroy() return Response(status=status.HTTP_204_NO_CONTENT) - @action(detail=True, methods=["post"]) + @action(detail=True, methods=["POST"]) def template(self, request, pk): instance = self.get_object(pk) if not self.has_perms_for_model(request.user, 'template'): @@ -166,6 +166,11 @@ class InstanceViewSet(AuthorizationMixin, ViewSet): else: return Response(data="No new lease provided", status=status.HTTP_400_BAD_REQUEST) + @action(detail=True, methods=["GET"]) + def get_vnc_console(self, request, pk): + instance = self.get_object(pk) + return Response(data=instance.get_vnc_console()) + @action(detail=True, methods=["POST"]) def resize(self, request, pk): pass diff --git a/recircle/interface_openstack b/recircle/interface_openstack index cc7bd24..0b5dc35 160000 --- a/recircle/interface_openstack +++ b/recircle/interface_openstack @@ -1 +1 @@ -Subproject commit cc7bd247b4457b1020c6442a6c944e1c3ba0caff +Subproject commit 0b5dc350a10e6f6805815acb5c91f98d307bad32 diff --git a/recircle/template/models.py b/recircle/template/models.py index 8268353..9566630 100644 --- a/recircle/template/models.py +++ b/recircle/template/models.py @@ -29,5 +29,6 @@ class ImageTemplate(BaseMachineDescriptor): access_protocol=instance.access_protocol, lease=instance.lease, flavor=instance.flavor, + network_id=instance.network_id, type="INSTANCE") return new_template diff --git a/recircle/template/views.py b/recircle/template/views.py index 5d53cc8..2d2081c 100644 --- a/recircle/template/views.py +++ b/recircle/template/views.py @@ -27,6 +27,7 @@ class ImageTemplateViewSet(ModelViewSet): image=data["image"], lease=data["lease"], flavor=data["flavor"], + network_id="7245c546-2f22-4ab2-abc9-9eb59c2e6627", # TODO: replace type="IMAGE" ) new_template.save()