MCPcopy
hub / github.com/apache/caldera / LinkSchema

Class LinkSchema

app/objects/secondclass/c_link.py:23–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21
22
23class LinkSchema(ma.Schema):
24
25 class Meta:
26 unknown = ma.EXCLUDE
27
28 id = ma.fields.String(load_default='')
29 paw = ma.fields.String()
30 command = ma.fields.String()
31 plaintext_command = ma.fields.String()
32 status = ma.fields.Integer(load_default=-3)
33 score = ma.fields.Integer(load_default=0)
34 jitter = ma.fields.Integer(load_default=0)
35 decide = ma.fields.DateTime(format=BaseObject.TIME_FORMAT)
36 pin = ma.fields.Integer(load_default=0)
37 pid = ma.fields.String()
38 facts = ma.fields.List(ma.fields.Nested(FactSchema()))
39 relationships = ma.fields.List(ma.fields.Nested(RelationshipSchema()))
40 used = ma.fields.List(ma.fields.Nested(FactSchema()))
41 unique = ma.fields.String()
42 collect = ma.fields.DateTime(format=BaseObject.TIME_FORMAT, dump_default='')
43 finish = ma.fields.String()
44 ability = ma.fields.Nested(AbilitySchema())
45 executor = ma.fields.Nested(ExecutorSchema())
46 cleanup = ma.fields.Integer(load_default=0)
47 visibility = ma.fields.Nested(VisibilitySchema())
48 host = ma.fields.String(load_default=None)
49 output = ma.fields.String()
50 deadman = ma.fields.Boolean()
51 agent_reported_time = ma.fields.DateTime(format=BaseObject.TIME_FORMAT, load_default=None)
52
53 @ma.pre_load()
54 def fix_ability(self, link, **_):
55 if 'ability' in link and isinstance(link['ability'], Ability):
56 ability = link.pop('ability')
57 link['ability'] = ability.schema.dump(ability)
58 return link
59
60 @ma.pre_load()
61 def fix_executor(self, link, **_):
62 if 'executor' in link and isinstance(link['executor'], Executor):
63 executor = link.pop('executor')
64 link['executor'] = executor.schema.dump(executor)
65 return link
66
67 @ma.pre_load()
68 def remove_properties(self, data, **_):
69 data.pop('unique', None)
70 data.pop('decide', None)
71 data.pop('pid', None)
72 data.pop('facts', None)
73 data.pop('collect', None)
74 data.pop('finish', None)
75 data.pop('visibility', None)
76 data.pop('output', None)
77 data.pop('used.unique', None)
78 return data
79
80 @ma.post_load()

Callers 3

LinkResultSchemaClass · 0.90
LinkClass · 0.85
displayMethod · 0.85

Calls 5

FactSchemaClass · 0.90
RelationshipSchemaClass · 0.90
AbilitySchemaClass · 0.90
ExecutorSchemaClass · 0.90
VisibilitySchemaClass · 0.90

Tested by

no test coverage detected