1
1
from pydantic import BaseModel
2
2
from typing import List , Dict
3
3
from enum import Enum
4
+ import json
4
5
5
6
6
7
SHAPE2TYPE = {
@@ -54,39 +55,77 @@ class NodeTypesEnum(Enum):
54
55
TOOL_INSTANCE = 'opsgptkg_tool_instance'
55
56
TEAM = 'opsgptkg_team'
56
57
OWNER = 'opsgptkg_owner'
57
- edge = 'edge'
58
-
58
+ EDGE = 'edge'
59
59
60
60
# EKG Node and Edge Schemas
61
61
class EKGNodeSchema (NodeSchema ):
62
- teamid : str
63
- version :str # yyyy-mm-dd HH:MM:SS
62
+ teamids : str
63
+ # version:str # yyyy-mm-dd HH:MM:SS
64
64
extra : str = ''
65
65
66
66
67
+
67
68
class EKGEdgeSchema (EdgeSchema ):
68
- teamid : str
69
- version :str # yyyy-mm-dd HH:MM:SS
69
+ # teamids : str
70
+ # version:str # yyyy-mm-dd HH:MM:SS
70
71
extra : str = ''
71
72
73
+ def attrbutes (self , ):
74
+ extra_attr = json .loads (self .extra )
75
+ return extra_attr
76
+
72
77
73
78
class EKGIntentNodeSchema (EKGNodeSchema ):
74
79
path : str = ''
75
80
81
+ def attrbutes (self , ):
82
+ extra_attr = json .loads (self .extra )
83
+ return {
84
+ ** {
85
+ "name" : self .name ,
86
+ "description" : self .description ,
87
+ "teamids" : self .teamids ,
88
+ "path" : self .path
89
+ },
90
+ ** extra_attr
91
+ }
76
92
77
93
class EKGScheduleNodeSchema (EKGNodeSchema ):
78
94
# do action or not
79
- switch : bool
80
-
95
+ enable : bool
96
+
97
+ def attrbutes (self , ):
98
+ extra_attr = json .loads (self .extra )
99
+ return {
100
+ ** {
101
+ "name" : self .name ,
102
+ "description" : self .description ,
103
+ "teamids" : self .teamids ,
104
+ "enable" : self .enable
105
+ },
106
+ ** extra_attr
107
+ }
81
108
82
109
class EKGTaskNodeSchema (EKGNodeSchema ):
83
- tool : str
84
- needCheck : bool
110
+ # tool: str
111
+ # needCheck: bool
85
112
# when to access
86
113
accessCriteria : str
87
114
#
88
- owner : str
89
-
115
+ # owner: str
116
+
117
+ def attrbutes (self , ):
118
+ extra_attr = json .loads (self .extra )
119
+ return {
120
+ ** {
121
+ "name" : self .name ,
122
+ "description" : self .description ,
123
+ "teamids" : self .teamids ,
124
+ "accessCriteria" : self .accessCriteria
125
+ },
126
+ ** extra_attr
127
+ }
128
+
90
129
91
130
class EKGAnalysisNodeSchema (EKGNodeSchema ):
92
131
# when to access
@@ -96,19 +135,38 @@ class EKGAnalysisNodeSchema(EKGNodeSchema):
96
135
# summary template
97
136
dslTemplate : str
98
137
138
+ def attrbutes (self , ):
139
+ extra_attr = json .loads (self .extra )
140
+ return {
141
+ ** {
142
+ "name" : self .name ,
143
+ "description" : self .description ,
144
+ "teamids" : self .teamids ,
145
+ "accessCriteria" : self .accessCriteria ,
146
+ "summarySwtich" : self .summarySwtich ,
147
+ "dslTemplate" : self .dslTemplate
148
+ },
149
+ ** extra_attr
150
+ }
151
+
99
152
100
153
class EKGPhenomenonNodeSchema (EKGNodeSchema ):
101
- pass
102
-
103
-
104
- class EKGPhenomenonNodeSchema (EKGNodeSchema ):
105
- pass
106
154
155
+ def attrbutes (self , ):
156
+ extra_attr = json .loads (self .extra )
157
+ return {
158
+ ** {
159
+ "name" : self .name ,
160
+ "description" : self .description ,
161
+ "teamids" : self .teamids ,
162
+ },
163
+ ** extra_attr
164
+ }
165
+
107
166
108
167
# Ekg Tool Schemas
109
168
class ToolSchema (NodeSchema ):
110
- teamid : str
111
- version :str # yyyy-mm-dd HH:MM:SS
169
+ # version:str # yyyy-mm-dd HH:MM:SS
112
170
extra : str = ''
113
171
114
172
@@ -137,15 +195,21 @@ class EKGGraphSlsSchema(BaseModel):
137
195
# {tool_id},{tool_id},{tool_id}
138
196
tool : str = ''
139
197
access_criteria : str = ''
140
- teamid : str = ''
198
+ teamids : str = ''
199
+ extra : str = ''
200
+ enable : bool = False
201
+ dslTemplate : str = ''
141
202
142
203
143
204
class EKGNodeTbaseSchema (BaseModel ):
144
205
node_id : str
145
206
node_type : str
146
- # node_str = 'graph_id={graph_id}'/teamid , use for searching by graph_id/teamid
207
+ # node_str = 'graph_id={graph_id}'/teamids , use for searching by graph_id/teamids
147
208
node_str : str
148
- node_vector : List
209
+ name_keyword : str
210
+ desc_keyword : str
211
+ name_vector : List
212
+ desc_vector : List
149
213
150
214
151
215
class EKGEdgeTbaseSchema (BaseModel ):
@@ -156,7 +220,7 @@ class EKGEdgeTbaseSchema(BaseModel):
156
220
edge_source : str
157
221
# end_id
158
222
edge_target : str
159
- # edge_str = 'graph_id={graph_id}'/teamid , use for searching by graph_id/teamid
223
+ # edge_str = 'graph_id={graph_id}'/teamids , use for searching by graph_id/teamids
160
224
edge_str : str
161
225
162
226
@@ -178,7 +242,7 @@ class EKGSlsData(BaseModel):
178
242
NodeTypesEnum .SCHEDULE .value : EKGScheduleNodeSchema ,
179
243
NodeTypesEnum .TOOL .value : EKGPToolTypeSchema ,
180
244
NodeTypesEnum .TOOL_INSTANCE .value : EKGPToolSchema ,
181
- NodeTypesEnum .edge .value : EKGEdgeSchema
245
+ NodeTypesEnum .EDGE .value : EKGEdgeSchema
182
246
}
183
247
184
248
0 commit comments