https://github.com/larhauga/haproxy_config_updater
Raw File
Tip revision: 57f8e40d28ee3d1246e93dd04321ab990a9d78d7 authored by Lars Haugan on 14 May 2015, 23:47:40 UTC
Cleaned up config, and changed it to fit a project
Tip revision: 57f8e40
haconn.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from socket import socket, AF_UNIX, SOCK_STREAM

HA_BUFSIZE = 8192

class HAconn:
    def __init__(self, sockfile=None):
        if not sockfile:
            self.sockfile = '/var/run/haproxy/admin.sock'
        else:
            self.sockfile = sockfile
        self.sock = None
        self.open()

    def open(self):
        self.sock = socket(AF_UNIX, SOCK_STREAM)
        self.sock.connect(self.sockfile)

    def send_cmd(self, cmd):

        res = ""
        self.sock.send(cmd)
        output = self.sock.recv(HA_BUFSIZE)

        while output:
            res += output
            output = self.sock.recv(HA_BUFSIZE)

        return res

    def close(self):
        """Closes the socket"""
        self.sock.close()

def main():
    #con = HAconn('/var/run/haproxy/admin.sock')
    ##print con.send_cmd('show stat\r\n')
    #print con.send_cmd('enable server nodes/node02\r\n')
    #con.close()
    con = HAconn()
    print con.send_cmd('show info\r\n')
    con.close()
    con = HAconn()
    print con.send_cmd('show stat\r\n')
    con.close()
    con = HAconn()
    print con.send_cmd('show sess\r\n')
    con.close()
    con = HAconn()
    print con.send_cmd('show table\r\n')
    con.close()

if __name__ == '__main__':
    main()
back to top