#!/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
}
