A tool to interact with HAProxy
Project description
haproxy-cli
haproxy-cli - A tool to interact with HAProxy.
Table of Contents
Overview
haproxy-cli is a tool to manage the various aspects of HAProxy that can be controlled by means of its socket. It is based on haproxyctl and is actively used in the OPNsense HAProxy plugin.
Install
pip install haproxy-cli
Modes
haproxy-cli can be used in 2 modes: CLI mode and Python API mode. CLI mode, as the name implies, gives you a command, haproxy-cli, that can be used to control HAProxy.
You can use the Python API mode to integrate haproxy-cli directly in your Python project.
Every command in haproxy-cli has at least two methods: getResult and getResultObj.
The method getResult returns a formatted string with the results obtained by executing the given HAProxy command, while getResultObj returns a Python object with the results, making it easy to use this results in some Python code.
CLI Usage
$ haproxy-cli --help
usage: haproxy-cli [-h] [-v] [-c COMMAND] [-l] [-H] [-s SERVER] [-b BACKEND]
[-w WEIGHT] [-k SOCKET]
A tool to interact with HAProxy
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose.
-c COMMAND, --command COMMAND
Type of command. Default info
-l, --list-commands Lists available commands.
-H, --help-command Shows help for the given command.
-s SERVER, --server SERVER
Attempt action on given server.
-b BACKEND, --backend BACKEND
Set backend to act upon.
-w WEIGHT, --weight WEIGHT
Specify weight for a server.
-k SOCKET, --socket SOCKET
Socket to talk to HAProxy. It accepts
unix:///path/to/socket or tcp://1.2.3.4[:port]
addresses. If there is no match
for protocol, then it assumes a UNIX socket file.
Examples
CLI
$ haproxy-cli -c frontends
$ haproxy-cli -c servers -b example_backend
$ haproxy-cli -c get-weight -b example_backend -s server1
$ haproxy-cli -c set-weight -b example_backend -s server1 -w 99
$ haproxy-cli -k /run/haproxy/admin.sock -c backends
API
#!/usr/bin/env python
from haproxy.conn import HaPConn
from haproxy import cmds
try:
socket_conn = HaPConn('/var/run/haproxy.socket')
if socket_conn:
print(socket_conn.sendCmd(cmds.showInfo()))
else:
print('Could not open socket')
except Exception as exc:
print(exc)
Development
Contributing
Please use the GitHub issues functionality to report any bugs or requests for new features. Feel free to fork and submit pull requests for potential contributions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for haproxy_cli-0.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a37ae922383c807e12b000982804042d12822ab6be2b34d94ccdc819eee7eae3 |
|
MD5 | a666f7065e33cf54059f030efc7b90b5 |
|
BLAKE2b-256 | 88715a9576adfda9c6d6a6efa8adda2bbde77d66b92b0dc545ea242db460c755 |