@@ -127,6 +127,12 @@ func (s *SingleRuntime) SetServerAgentSend(backend, server string, send string)
127127 return s .Execute (cmd )
128128}
129129
130+ // SetServerSSL set ssl for server
131+ func (s * SingleRuntime ) SetServerSSL (backend , server string , ssl string ) error {
132+ cmd := fmt .Sprintf ("set server %s/%s ssl %s" , backend , server , ssl )
133+ return s .Execute (cmd )
134+ }
135+
130136// GetServersState returns servers runtime state
131137func (s * SingleRuntime ) GetServersState (backend string ) (models.RuntimeServers , error ) {
132138 cmd := "show servers state " + backend
@@ -179,13 +185,23 @@ func parseRuntimeServers(output string) (models.RuntimeServers, error) {
179185 return result , nil
180186}
181187
188+ func parseInt64P (s string ) * int64 {
189+ v , err := strconv .ParseInt (s , 10 , 64 )
190+ if err != nil {
191+ return nil
192+ }
193+ return & v
194+ }
195+
182196func parseRuntimeServer (line string ) * models.RuntimeServer {
183197 fields := strings .Split (line , " " )
184198
185- if len (fields ) < 19 {
199+ if len (fields ) < 25 {
186200 return nil
187201 }
188202
203+ backendID := parseInt64P (fields [0 ])
204+
189205 p , err := strconv .ParseInt (fields [18 ], 10 , 64 )
190206 var port * int64
191207 if err == nil {
@@ -198,6 +214,21 @@ func parseRuntimeServer(line string) *models.RuntimeServer {
198214 weight = & w
199215 }
200216
217+ uweight := parseInt64P (fields [7 ])
218+ iweight := parseInt64P (fields [8 ])
219+ lastTimeChange := parseInt64P (fields [9 ])
220+ checkStatus := parseInt64P (fields [10 ])
221+ checkResult := parseInt64P (fields [11 ])
222+ checkHealth := parseInt64P (fields [12 ])
223+ checkState := parseInt64P (fields [13 ])
224+ agentState := parseInt64P (fields [14 ])
225+ backendForcedID := parseInt64P (fields [15 ])
226+ forecedID := parseInt64P (fields [16 ])
227+ checkPort := parseInt64P (fields [21 ])
228+ agentPort := parseInt64P (fields [24 ])
229+
230+ useSsl := fields [20 ] == "1"
231+
201232 admState , _ := misc .GetServerAdminState (fields [6 ])
202233
203234 var opState string
@@ -211,12 +242,31 @@ func parseRuntimeServer(line string) *models.RuntimeServer {
211242 }
212243
213244 return & models.RuntimeServer {
245+ BackendID : backendID ,
246+ BackendName : fields [1 ],
214247 Name : fields [3 ],
215248 Address : fields [4 ],
216249 Port : port ,
217250 ID : fields [2 ],
218251 AdminState : admState ,
219252 OperationalState : opState ,
220253 Weight : weight ,
254+ Uweight : uweight ,
255+ Iweight : iweight ,
256+ LastTimeChange : lastTimeChange ,
257+ CheckStatus : checkStatus ,
258+ CheckResult : checkResult ,
259+ CheckHealth : checkHealth ,
260+ CheckState : checkState ,
261+ AgentState : agentState ,
262+ BackendForcedID : backendForcedID ,
263+ ForecedID : forecedID ,
264+ Fqdn : fields [17 ],
265+ Srvrecord : fields [19 ],
266+ UseSsl : useSsl ,
267+ CheckPort : checkPort ,
268+ CheckAddr : fields [22 ],
269+ AgentAddr : fields [23 ],
270+ AgentPort : agentPort ,
221271 }
222272}
0 commit comments