From afdb3be6d826e5ee7ff69f3cf89174e5f88445de Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Wed, 3 Aug 2016 09:52:33 +0200 Subject: [PATCH 1/3] Add post_send on ``device`` to ``AddVM`` --- src/ralph/ui/views/deploy.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ralph/ui/views/deploy.py b/src/ralph/ui/views/deploy.py index cdc4117172..7f2133b47e 100644 --- a/src/ralph/ui/views/deploy.py +++ b/src/ralph/ui/views/deploy.py @@ -16,6 +16,7 @@ from django.conf import settings from django.contrib import messages from django.contrib.auth.models import User +from django.db.models.signals import post_save from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext_lazy as _ from lck.django.common import nested_commit_on_success @@ -503,6 +504,9 @@ def post(self, request, *args, **kwargs): resp['Location'] = LATEST_API.canonical_resource_for( 'dev' ).get_resource_uri(device) + post_save.send( + sender=Device, instance=device, raw=None, using='default' + ) return resp @csrf_exempt From cca66fc92b8ebfd8f7585584be4e279577a9fe5d Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Wed, 3 Aug 2016 10:43:06 +0200 Subject: [PATCH 2/3] WIP --- src/ralph/discovery/models_device.py | 3 ++- src/ralph/ui/views/deploy.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ralph/discovery/models_device.py b/src/ralph/discovery/models_device.py index 9abaf1d028..64b174bb8b 100644 --- a/src/ralph/discovery/models_device.py +++ b/src/ralph/discovery/models_device.py @@ -616,7 +616,7 @@ def __unicode__(self): @classmethod def create(cls, ethernets=None, sn=None, model=None, model_name=None, model_type=None, device=None, allow_stub=False, priority=0, - **kwargs): + handle_post_save=True, **kwargs): if 'parent' in kwargs and kwargs['parent'] is None: del kwargs['parent'] if not model and (not model_name or not model_type): @@ -708,6 +708,7 @@ def create(cls, ethernets=None, sn=None, model=None, model_name=None, user = kwargs.get('user') except KeyError: user = None + dev._handle_post_save = handle_post_save dev.save(user=user, update_last_seen=True, priority=priority) for eth in ethernets: ethernet, eth_created = Ethernet.concurrent_get_or_create( diff --git a/src/ralph/ui/views/deploy.py b/src/ralph/ui/views/deploy.py index 7f2133b47e..e5bdb8fe19 100644 --- a/src/ralph/ui/views/deploy.py +++ b/src/ralph/ui/views/deploy.py @@ -485,6 +485,7 @@ def post(self, request, *args, **kwargs): model_type=DeviceType.virtual_server, model_name=settings.ADD_VM_MODEL_NAME, verified=True, + handle_post_save=False, ) device.name = hostname device.parent = parent From 1083afec5240544ce52cbf0f869eddb4f115887e Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Wed, 3 Aug 2016 10:57:09 +0200 Subject: [PATCH 3/3] WIP --- src/ralph/ui/views/deploy.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ralph/ui/views/deploy.py b/src/ralph/ui/views/deploy.py index e5bdb8fe19..cd6f9ffc51 100644 --- a/src/ralph/ui/views/deploy.py +++ b/src/ralph/ui/views/deploy.py @@ -505,6 +505,7 @@ def post(self, request, *args, **kwargs): resp['Location'] = LATEST_API.canonical_resource_for( 'dev' ).get_resource_uri(device) + device._handle_post_save = True post_save.send( sender=Device, instance=device, raw=None, using='default' )