From 76041b4f4216e98cbdf96a061361e35bfbe4d678 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Aug 2019 18:05:53 +0800 Subject: [PATCH] auto purging empty scales --- pk1/engines/signals.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pk1/engines/signals.py b/pk1/engines/signals.py index d1eb5ae0..e05122ad 100755 --- a/pk1/engines/signals.py +++ b/pk1/engines/signals.py @@ -11,7 +11,7 @@ from clouds.signals import tidy_operation, select_operation from clouds import utils from .import models -from clouds.models import Instance, INSTANCE_STATUS, InstanceOperation, INSTANCE_OPERATION, OPERATION_STATUS, Mount, Group, GroupOperation +from clouds.models import InstanceBlueprint, Instance, INSTANCE_STATUS, InstanceOperation, INSTANCE_OPERATION, OPERATION_STATUS, Mount, Group, GroupOperation from django.dispatch import Signal scaled_out = Signal(providing_args=["instance","name"]) @@ -34,6 +34,10 @@ def bootstrap(sender,instance,**kwargs): s.init_blueprints.add(*blueprints) models.Cluster.objects.get_or_create(name='bootstrap.{}'.format(instance.name), scale=s, owner=instance.owner) +@receiver(post_delete, sender=InstanceBlueprint) +def cleanup_scale(sender, instance, **kwargs): + models.Scale.objects.filter(init_blueprints__isnull=True, step_blueprints__isnull=True).delete() + @receiver(executed, sender=InstanceOperation) def create_stack(sender,instance,**kwargs): if instance.target.image.name=='packone-bootstrap-master1' and 'ambari localhost:8080 cluster create' in instance.script: @@ -43,7 +47,7 @@ def create_stack(sender,instance,**kwargs): scale.stack=stack scale.save() if created: cluster.import_engine() - + @receiver(materialized, sender=Group) @receiver(post_save, sender=models.Cluster) def scale_out(sender,instance,**kwargs):