mirror of
https://github.com/ansible/awx.git
synced 2026-01-20 14:11:24 -03:30
Switch from using a interstitial serializer to defining a read property on the CommonTask model
This commit is contained in:
parent
bf07c55273
commit
9444c1185b
@ -189,22 +189,6 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
else:
|
||||
return obj.active
|
||||
|
||||
class BaseTaskSerializer(BaseSerializer):
|
||||
|
||||
result_stdout = serializers.SerializerMethodField('get_result_stdout')
|
||||
|
||||
def get_result_stdout(self, obj):
|
||||
if obj is None:
|
||||
return ''
|
||||
if obj.result_stdout_file != "":
|
||||
if not os.path.exists(obj.result_stdout_file):
|
||||
return "stdout capture is missing"
|
||||
stdout_fd = open(obj.result_stdout_file, "r")
|
||||
output = stdout_fd.read()
|
||||
stdout_fd.close()
|
||||
return output
|
||||
return obj.result_stdout
|
||||
|
||||
class UserSerializer(BaseSerializer):
|
||||
|
||||
password = serializers.WritableField(required=False, default='',
|
||||
@ -377,7 +361,7 @@ class ProjectPlaybooksSerializer(ProjectSerializer):
|
||||
return ret.get('playbooks', [])
|
||||
|
||||
|
||||
class ProjectUpdateSerializer(BaseTaskSerializer):
|
||||
class ProjectUpdateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
model = ProjectUpdate
|
||||
@ -701,7 +685,7 @@ class InventorySourceSerializer(BaseSerializer):
|
||||
return metadata
|
||||
|
||||
|
||||
class InventoryUpdateSerializer(BaseTaskSerializer):
|
||||
class InventoryUpdateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
model = InventoryUpdate
|
||||
@ -855,7 +839,7 @@ class JobTemplateSerializer(BaseSerializer):
|
||||
return attrs
|
||||
|
||||
|
||||
class JobSerializer(BaseTaskSerializer):
|
||||
class JobSerializer(BaseSerializer):
|
||||
|
||||
passwords_needed_to_start = serializers.Field(source='passwords_needed_to_start')
|
||||
|
||||
|
||||
@ -268,10 +268,11 @@ class CommonTask(PrimordialModel):
|
||||
default={},
|
||||
editable=False,
|
||||
)
|
||||
result_stdout = models.TextField(
|
||||
_result_stdout = models.TextField(
|
||||
blank=True,
|
||||
default='',
|
||||
editable=False,
|
||||
db_column="result_stdout",
|
||||
)
|
||||
result_stdout_file = models.TextField(
|
||||
blank=True,
|
||||
@ -325,6 +326,17 @@ class CommonTask(PrimordialModel):
|
||||
if self.status != status_before:
|
||||
self._update_parent_instance()
|
||||
|
||||
@property
|
||||
def result_stdout(self):
|
||||
if self.result_stdout_file != "":
|
||||
if not os.path.exists(self.result_stdout_file):
|
||||
return "stdout capture is missing"
|
||||
stdout_fd = open(self.result_stdout_file, "r")
|
||||
output = stdout_fd.read()
|
||||
stdout_fd.close()
|
||||
return output
|
||||
return self._result_stdout
|
||||
|
||||
@property
|
||||
def celery_task(self):
|
||||
try:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user