HAPROXY CFG TO CSV: mudanças entre as edições

De Wiki Clusterlab.com.br
Ir para navegação Ir para pesquisar
(Criou página com '=Convert haproxy.cfg to CSV= <syntaxhighlight lang=bash> #!/bin/bash function AJUDA() { echo " How to use $0 <haproxy.cfg> HAPROXY reserverd words: acl...')
 
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
=Convert haproxy.cfg to CSV=
=HOW TO=
Run converter.sh to produce the csv file
<pre>
$ ./converter.sh haproxy.cfg
</pre>
To expande the row use the script below replacing the following line:
*[[Expand sheet row|Expand sheet row]]
<pre>
"for column in str(rowdata[index].value).split("\n"):"
"for column in str(rowdata[index].value).split(","):"
</pre>
RUN PYTHON
<syntaxhighlight lang=bash>
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install openpyxl
$ python run.py
</syntaxhighlight>
 
=CODE=
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
#!/bin/bash
#!/bin/bash

Edição atual tal como às 20h56min de 31 de janeiro de 2022

HOW TO

Run converter.sh to produce the csv file

$ ./converter.sh haproxy.cfg

To expande the row use the script below replacing the following line:

"for column in str(rowdata[index].value).split("\n"):"
"for column in str(rowdata[index].value).split(","):"

RUN PYTHON

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install openpyxl
$ python run.py

CODE

#!/bin/bash

function AJUDA() {
    echo "
    How to use
    $0 <haproxy.cfg>

    HAPROXY reserverd words:
    acl
    backend
    balance
    bind
    chroot
    daemon
    default_backend
    defaults
    frontend
    global
    group
    http-check
    http-request
    listen
    log
    maxconn
    mode
    nbproc
    option
    pidfile
    retries
    server
    stats
    timeout
    use_backend
    user
    "
}
function PARSER() {
    export TAG=$1
    case $1 in
        frontend)
            export CFG_FRONTEND=$2
            ;;
        bind)
            export CFG_FRONTEND_BIND=$(echo $2 | awk -F : '{ print $2} ')
            ;;
        default_backend)
            export CFG_FRONTEND_DEFAULT_BACK=$2
            ;;
        backend)
            export CFG_BACKEND=$2
            ;;
        server)
            if [ "$CFG_BACKEND_SERVER" == "0" ]
            then
                export CFG_BACKEND_SERVER="$2 $3"
            else
                export CFG_BACKEND_SERVER=$CFG_BACKEND_SERVER,"$2 $3"
            fi
            ;;
    esac
}
function CHECK_BEGIN() {
    if [ "$CFG_FRONTEND" != "0" ] && [[ "$1" == "frontend" ]]
    then
        echo 1
    else
        echo 0
    fi
}
function ZERO_ALL(){
    export CFG_FRONTEND=0
    export CFG_FRONTEND_BIND=0
    export CFG_FRONTEND_DEFAULT_BACK=0
    export CFG_BACKEND=0
    export CFG_BACKEND_SERVER=0
}
export CFG_FRONTEND=0
export CFG_FRONTEND_BIND=0
export CFG_FRONTEND_DEFAULT_BACK=0
export CFG_BACKEND=0
export CFG_BACKEND_SERVER=0
export END=0
if [ $# -ne 1 ]
then
    AJUDA
else
    echo "FRONTEND;PORT;BACKENDNAME;BACKEND;SERVERS"
    cat $1 | \
        sed -e "s/^ *//g"| \
        egrep -v "^#|^$" | \
        while read -r line
        do
            if [ $(CHECK_BEGIN $line) -eq 0 ]
            then
                PARSER $line
            else
                echo $CFG_FRONTEND\;$CFG_FRONTEND_BIND\;$CFG_FRONTEND_DEFAULT_BACK\;$CFG_BACKEND\;$CFG_BACKEND_SERVER
                ZERO_ALL
                PARSER $line
            fi
        done
fi