mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 21:37:42 -02:30
Switch from using a interstitial serializer to defining a read property on the CommonTask model
This commit is contained in:
@@ -189,22 +189,6 @@ class BaseSerializer(serializers.ModelSerializer):
|
|||||||
else:
|
else:
|
||||||
return obj.active
|
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):
|
class UserSerializer(BaseSerializer):
|
||||||
|
|
||||||
password = serializers.WritableField(required=False, default='',
|
password = serializers.WritableField(required=False, default='',
|
||||||
@@ -377,7 +361,7 @@ class ProjectPlaybooksSerializer(ProjectSerializer):
|
|||||||
return ret.get('playbooks', [])
|
return ret.get('playbooks', [])
|
||||||
|
|
||||||
|
|
||||||
class ProjectUpdateSerializer(BaseTaskSerializer):
|
class ProjectUpdateSerializer(BaseSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProjectUpdate
|
model = ProjectUpdate
|
||||||
@@ -701,7 +685,7 @@ class InventorySourceSerializer(BaseSerializer):
|
|||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
|
|
||||||
class InventoryUpdateSerializer(BaseTaskSerializer):
|
class InventoryUpdateSerializer(BaseSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = InventoryUpdate
|
model = InventoryUpdate
|
||||||
@@ -855,7 +839,7 @@ class JobTemplateSerializer(BaseSerializer):
|
|||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
class JobSerializer(BaseTaskSerializer):
|
class JobSerializer(BaseSerializer):
|
||||||
|
|
||||||
passwords_needed_to_start = serializers.Field(source='passwords_needed_to_start')
|
passwords_needed_to_start = serializers.Field(source='passwords_needed_to_start')
|
||||||
|
|
||||||
|
|||||||
@@ -268,10 +268,11 @@ class CommonTask(PrimordialModel):
|
|||||||
default={},
|
default={},
|
||||||
editable=False,
|
editable=False,
|
||||||
)
|
)
|
||||||
result_stdout = models.TextField(
|
_result_stdout = models.TextField(
|
||||||
blank=True,
|
blank=True,
|
||||||
default='',
|
default='',
|
||||||
editable=False,
|
editable=False,
|
||||||
|
db_column="result_stdout",
|
||||||
)
|
)
|
||||||
result_stdout_file = models.TextField(
|
result_stdout_file = models.TextField(
|
||||||
blank=True,
|
blank=True,
|
||||||
@@ -325,6 +326,17 @@ class CommonTask(PrimordialModel):
|
|||||||
if self.status != status_before:
|
if self.status != status_before:
|
||||||
self._update_parent_instance()
|
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
|
@property
|
||||||
def celery_task(self):
|
def celery_task(self):
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user