#!/usr/bin/python3

import json
import ovh
import os
import sys

try:
    import configparser
except ImportError:
    import ConfigParser as configparser

config = json.load(sys.stdin)
failover_ip = sys.argv[1]
host_id = os.environ['NODE_ID']
host_map = config['hci_hostnames']
hostname = host_map[host_id]

ovh_config = configparser.RawConfigParser()
try:
    with open("/etc/ovh/ovh_creds.ini") as f:
        ovh_config.read_file(f)
except:
    print("Error: /etc/ovh/ovh_creds.ini not found")
    sys.exit(1)
ovh_config = dict(ovh_config.items('ovh_creds'))

# Client with POST permissions
client = ovh.Client(
    ovh_config['endpoint'],
    ovh_config['application_key'],
    ovh_config['application_secret'],
    ovh_config['consumer_key']
)

result = client.post('/dedicated/server/%s/ipMove' % hostname, ip = failover_ip)
print ("Failover IP result: ", result)
