Server Operations¶
A quick way to check if a certain server exists
>>> servers = hap.servers()
>>> if 'bck_all_srv1' in servers:
... print("have it")
...
have it
>>> if 'bck_all_srv1foo' in servers:
... print("have it")
...
>>>
Retrieve various statistics
>>> backend = hap.backend('backend1_proc34')
>>> for server in backend.servers():
... print(server.name)
... for m in SERVER_METRICS:
... print("name {} value {}".format(m, server.metric(m)))
... print("-----------")
...
bck1_proc34_srv2
name qcur value 0
name qmax value 0
name scur value 0
name smax value 0
name stot value 0
name bin value 0
name bout value 0
name dresp value 0
name econ value 0
name eresp value 0
name wretr value 0
name wredis value 0
name weight value 1
name act value 1
name bck value 0
name chkfail value 6
name chkdown value 4
name lastchg value 39464
name downtime value 47702
name qlimit value 0
name throttle value 0
name lbtot value 0
name rate value 0
name rate_max value 0
name check_duration value 5001
name hrsp_1xx value 0
name hrsp_2xx value 0
name hrsp_3xx value 0
name hrsp_4xx value 0
name hrsp_5xx value 0
name hrsp_other value 0
name cli_abrt value 0
name srv_abrt value 0
name lastsess value -1
name qtime value 0
name ctime value 0
name rtime value 0
name ttime value 0
-----------
bck1_proc34_srv1
name qcur value 0
name qmax value 0
name scur value 0
name smax value 0
name stot value 0
name bin value 0
name bout value 0
name dresp value 0
name econ value 0
name eresp value 0
name wretr value 0
name wredis value 0
name weight value 1
name act value 1
name bck value 0
name chkfail value 6
name chkdown value 4
name lastchg value 39464
name downtime value 47702
name qlimit value 0
name throttle value 0
name lbtot value 0
name rate value 0
name rate_max value 0
name check_duration value 5001
name hrsp_1xx value 0
name hrsp_2xx value 0
name hrsp_3xx value 0
name hrsp_4xx value 0
name hrsp_5xx value 0
name hrsp_other value 0
name cli_abrt value 0
name srv_abrt value 0
name lastsess value -1
name qtime value 0
name ctime value 0
name rtime value 0
name ttime value 0
-----------
bck_all_srv1
name qcur value 0
name qmax value 0
name scur value 0
name smax value 0
name stot value 0
name bin value 0
name bout value 0
name dresp value 0
name econ value 0
name eresp value 0
name wretr value 0
name wredis value 0
name weight value 1
name act value 1
name bck value 0
name chkfail value 6
name chkdown value 4
name lastchg value 39462
name downtime value 47700
name qlimit value 0
name throttle value 0
name lbtot value 0
name rate value 0
name rate_max value 0
name check_duration value 5001
name hrsp_1xx value 0
name hrsp_2xx value 0
name hrsp_3xx value 0
name hrsp_4xx value 0
name hrsp_5xx value 0
name hrsp_other value 0
name cli_abrt value 0
name srv_abrt value 0
name lastsess value -1
name qtime value 0
name ctime value 0
name rtime value 0
name ttime value 0
-----------
>>>
Change weight of server in a backend
>>> backend = hap.backend('backend1_proc34')
>>> server = backend.server('bck_all_srv1')
>>> server.weight
100
>>> server.setweight('20%')
True
>>> server.weight
20
>>> server.setweight(58)
True
>>> server.weight
58
Note
If the value ends with the ‘%’ sign, then the new weight will be relative to the initially configured weight. Absolute weights are permitted between 0 and 256.
or across all backends
>>> server_per_backend = hap.server('bck_all_srv1')
>>> for server in server_per_backend:
... print(server.backendname, server.weight)
... server.setweight(8)
... print(server.backendname, server.weight)
...
backend2_proc34 1
True
backend2_proc34 8
backend1_proc34 0
True
backend1_proc34 8
backend_proc1 100
True
backend_proc1 8
>>>
Terminate all the sessions attached to the specified server.
>>> backend = hap.backend('backend1_proc34')
>>> server = backend.server('bck_all_srv1')
>>> server.metric('scur')
8
>>> server.shutdown()
True
>>> server.metric('scur')
0
Disable a server in a backend
>>> server = hap.server('member_bkall', backend='backend_proc1')[0]
>>> server.setstate(haproxy.STATE_DISABLE)
True
>>> server.status
'MAINT'
>>> server.setstate(haproxy.STATE_ENABLE)
True
>>> server.status
'no check'
Get status of server
>>> backend = hap.backend('backend1_proc34')
>>> server = backend.server('bck_all_srv1')
>>> server.last_agent_check
''
>>> server.check_status
'L4TOUT'
>>> server.check_
server.check_code server.check_status
>>> server.check_code
''
>>> server.status
'DOWN'
>>>
Read Server
class for more information.