Browse Source

Merge pull request #4098 from jumpserver/fix-ops-adhoc

[Fix] ops.models.adhoc (#4096)
pull/4102/head
Eric_Lee 5 years ago committed by GitHub
parent
commit
eef172d0e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      apps/ops/models/adhoc.py
  2. 10
      apps/ops/serializers/adhoc.py

20
apps/ops/models/adhoc.py

@ -118,26 +118,6 @@ class Task(PeriodTaskModelMixin, OrgModelMixin):
kwargs = {"callback": self.callback}
return name, task, args, kwargs
@lazyproperty
def last_success(self):
return self._last_adhocexecution(True, 'contacted')
@lazyproperty
def last_failure(self):
return self._last_adhocexecution(False, 'dark')
def _last_adhocexecution(self, is_success, key):
obj = AdHocExecution.objects.filter(task_id=self.id, is_success=is_success).order_by('-date_finished').first()
body = obj.summary and obj.summary.get(key)
if body:
asset, body = body.popitem()
if body:
action, body = body.popitem()
return asset, action, (body or '') and body.get('msg', '')
return asset, '', ''
return '', '', ''
def __str__(self):
return self.name + '@' + str(self.org_id)

10
apps/ops/serializers/adhoc.py

@ -60,14 +60,8 @@ class TaskSerializer(serializers.ModelSerializer):
class TaskDetailSerializer(TaskSerializer):
last_success = serializers.SerializerMethodField()
last_failure = serializers.SerializerMethodField()
def get_last_success(self, obj):
return obj.last_success[0], ''
def get_last_failure(self, obj):
return obj.last_failure[0], ' => '.join(obj.last_failure[1:])
last_success = serializers.ListField(source='latest_execution.success_hosts')
last_failure = serializers.DictField(source='latest_execution.failed_hosts')
class Meta(TaskSerializer.Meta):
fields = TaskSerializer.Meta.fields + ['last_success', 'last_failure']

Loading…
Cancel
Save