#!/bin/bash

#
# Creates graphs for nodepool regions from a given provider
#
# Note we are somewhat particular about keeping these separate to
# avoid the idea that we are providing some sort of cross-provider
# benchmark.
#

function create {
    local provider="$1"
    local stat_list="$2"
    local output_file="$3"

    sed -e "s/%PROVIDER%/${provider}/; " \
        -e "s/%STAT_LIST%/${stat_list}/" \
        -e "s/%OUTPUT_FILE%/${output_file}/" \
        nodepool.template > ${output_file}
}

create Rackspace 'rax-*' nodepool-rax.yaml
create Rackspace-Flex 'raxflex-*' nodepool-raxflex.yaml
create OVH 'ovh-*' nodepool-ovh.yaml
create Vexxhost 'vexxhost-*' nodepool-vexxhost.yaml
create OSUOSL 'osuosl-*' nodepool-osuosl.yaml
create OpenMetal 'openmetal-*' nodepool-openmetal.yaml

function create_zuul {
    local template="$1"
    local provider="$2"
    local stat_list="$3"
    local output_file="$4"

    sed -e "s/%PROVIDER%/${provider}/; " \
        -e "s/%STAT_LIST%/${stat_list}/" \
        -e "s/%TEMPLATE%/${template}/" \
        ${template} > ${output_file}
}

# Templates vary depending on which resource limits are included:
# zuul-launcher-ram-ir.template : instances, ram
# zuul-launcher-ram-icr.template : instances, cores, ram

create_zuul zuul-launcher-ir.template Rackspace 'rax' zuul-launcher-rax.json
create_zuul zuul-launcher-ir.template Rackspace-Flex 'raxflex' zuul-launcher-raxflex.json
create_zuul zuul-launcher-icr.template OVH 'ovh' zuul-launcher-ovh.json
create_zuul zuul-launcher-icr.template Vexxhost 'vexxhost' zuul-launcher-vexxhost.json
create_zuul zuul-launcher-icr.template OSUOSL 'osuosl' zuul-launcher-osuosl.json
create_zuul zuul-launcher-icr.template OpenMetal 'openmetal' zuul-launcher-openmetal.json
