#!/bin/bash

source /var/onap/functions

# deploy_openstack() - Function that provisions an OpenStack deployment
function deploy_openstack {
    local network_id=${1:-"192.168.53.0"}
    nic=$(ip route get $network_id | awk '{ print $4; exit }')
    ip_address=$(ip route get $network_id | awk '{ print $6; exit }')
    internal_vip_address=$(get_next_ip $ip_address)

    install_docker
    mkdir -p /etc/systemd/system/docker.service.d
    tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
    install_packages python-dev libffi-dev gcc libssl-dev python-selinux gcc

    install_python_package ansible docker kolla-ansible python-openstackclient
    source /etc/os-release || source /usr/lib/os-release
    case ${ID,,} in
        *suse)
        ;;
        ubuntu|debian)
        service docker restart

        cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/kolla/
        cp /usr/local/share/kolla-ansible/ansible/inventory/* .
        sed -i "s/#kolla_base_distro: \"centos\"/kolla_base_distro: \"ubuntu\"/g" /etc/kolla/globals.yml
        ;;
        rhel|centos|fedora)
        systemctl daemon-reload
        systemctl restart docker

        cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
        cp /usr/share/kolla-ansible/ansible/inventory/* .
        sed -i "s/#kolla_base_distro: \"centos\"/kolla_base_distro: \"centos\"/g" /etc/kolla/globals.yml
        ;;
    esac
    kolla-genpwd
    sed -i "s/#openstack_release: \"\"/openstack_release: \"master\"/g" /etc/kolla/globals.yml

    sed -i "s/#network_interface: \"eth0\"/network_interface: \"$nic\"/g" /etc/kolla/globals.yml
    sed -i "s/kolla_internal_vip_address: \"10.10.10.254\"/kolla_internal_vip_address: \"$internal_vip_address\"/g" /etc/kolla/globals.yml
    sed -i "s/#api_interface: \"{{ network_interface }}\"/api_interface: \"{{ network_interface }}\"/g" /etc/kolla/globals.yml
    echo "$ip_address $(hostname)" >> /etc/hosts

    kolla-ansible pull -i all-in-one
    kolla-ansible deploy -i all-in-one
    kolla-ansible post-deploy
    echo "source /etc/kolla/admin-openrc.sh" >> ${HOME}/.bashrc
}