Add a virtual service.

    protocol
        The service protocol(only support tcp, udp and fwmark service).

    service_address
        The LVS service address.

    scheduler
        Algorithm for allocating TCP connections and UDP datagrams to real servers.


    CLI Example:

    .. code-block:: bash

        salt '*' lvs.add_service tcp 1.1.1.1:80 rr

def add_service(protocol=None, service_address=None, scheduler='wlc'):
    '''
    Add a virtual service.

    protocol
        The service protocol(only support tcp, udp and fwmark service).

    service_address
        The LVS service address.

    scheduler
        Algorithm for allocating TCP connections and UDP datagrams to real servers.


    CLI Example:

    .. code-block:: bash

        salt '*' lvs.add_service tcp 1.1.1.1:80 rr
    '''

    cmd = '{0} -A {1}'.format(__detect_os(),
                              _build_cmd(protocol=protocol,
                                         service_address=service_address,
                                         scheduler=scheduler))
    out = __salt__['cmd.run_all'](cmd, python_shell=False)

    # A non-zero return code means fail
    if out['retcode']:
        ret = out['stderr'].strip()
    else:
        ret = True
    return ret