TACKER_MODE=${TACKER_MODE:-all}
USE_BARBICAN=True
KUBERNETES_VIM=${KUBERNETES_VIM:-False}

if [ "${TACKER_MODE}" == "all" ]; then
    # Nova
    disable_service n-net
    VIRT_DRIVER=libvirt

    # TACKER_NEUTRON_AGENTS can be disabled by adding
    # TACKER_NEUTRON_AGENTS='' in local.conf if neutron agents are running on a separate node
    TACKER_NEUTRON_AGENTS=${TACKER_NEUTRON_AGENTS:-q-agt,q-dhcp,q-meta,q-l3}
    for i in $(echo $TACKER_NEUTRON_AGENTS | sed 's/,/ /g')
    do
        enable_service $i
    done

    enable_service q-svc
    enable_service neutron

    enable_service tacker
    # enable tacker-conductor will make systemctl enable conductor service
    enable_service tacker-conductor
    MGMT_PHYS_NET=${MGMT_PHYS_NET:-mgmtphysnet0}
    # br-infra is created by devstack multi node job
    # http://git.openstack.org/cgit/openstack-infra/zuul-jobs/tree/roles/multi-node-bridge
    BR_MGMT=${BR_MGMT:-br-infra}
    NET_MGMT=${NET_MGMT:-net_mgmt}
    SUBNET_MGMT=${SUBNET_MGMT:-subnet_mgmt}
    FIXED_RANGE_MGMT=${FIXED_RANGE_MGMT:-192.168.120.0/24}
    NETWORK_GATEWAY_MGMT=${NETWORK_GATEWAY_MGMT:-192.168.120.1}
    NETWORK_GATEWAY_MGMT_IP=${NETWORK_GATEWAY_MGMT_IP:-192.168.120.1/24}

    NET0=${NET0:-net0}
    SUBNET0=${SUBNET0:-subnet0}
    FIXED_RANGE0=${FIXED_RANGE0:-10.10.0.0/24}
    NETWORK_GATEWAY0=${NETWORK_GATEWAY0:-10.10.0.1}

    NET1=${NET1:-net1}
    SUBNET1=${SUBNET1:-subnet1}
    FIXED_RANGE1=${FIXED_RANGE1:-10.10.1.0/24}
    NETWORK_GATEWAY1=${NETWORK_GATEWAY1:-10.10.1.1}

    if [ "${KUBERNETES_VIM}" == "True" ]; then
        KURYR_NEUTRON_DEFAULT_PROJECT="default"
        # Octavia LBaaSv2
        LIBS_FROM_GIT+=python-octaviaclient
        TACKER_OCTAVIA_AGENTS=${TACKER_OCTAVIA_AGENTS:-octavia,o-api,o-cw,o-hm,o-hk}
        for i in $(echo $TACKER_OCTAVIA_AGENTS | sed 's/,/ /g')
        do
            enable_service $i
        done

        # enable kuryr-kubernetes services
        KURYR_KUBERNETES_AGENTS=${KURYR_KUBERNETES_AGENTS:-etcd3,kubernetes-api,kubernetes-controller-manager,kubernetes-scheduler,kubelet,kuryr-kubernetes,kuryr-daemon}
        for i in $(echo $KURYR_KUBERNETES_AGENTS | sed 's/,/ /g')
        do
            enable_service $i
        done
    fi
elif [ "${TACKER_MODE}" == "standalone" ]; then
    # set the enabled services here. This will need tacker devstack plugin put as the last one in local.conf
    ENABLED_SERVICES=key,horizon,tacker,tacker-conductor,mysql,dstat,barbican,mistral,mistral-api,mistral-engine,mistral-executor,mistral-event-engine
else
    die $LINENO "invalid value: $TACKER_MODE for TACKER_MODE"
fi
