#!/usr/bin/env python
import sys, os
import ovh


hostmap={
   'node1.example.net': { 'ip': '94.93.92.91', 'name': 'ns999999.ovh.net'},
   'node3.example.net': { 'ip': '91.92.93.94', 'name': 'ns888888.ovh.net'},
   }


client = ovh.Client(
    endpoint='ovh-eu',
    application_key='<application key>',
    application_secret='<application secret>',
    consumer_key='<consumer key>',
)


def main(cmd, host, dest, addr):
   if cmd=="list":
      if host in hostmap.keys():
         opts={'routedTo.serviceName':hostmap[host]['name'], 'type':"failover"}
         for ip in client.get('/ip', **opts):
            if len(ip.split("/")[0])>=7:
               print ip.split("/")[0]
   elif cmd=="move":
      opts={'to':dest, 'ip': addr+"/32"}
      client.post('/ip/'+addr+'/move', to=hostmap[dest]['name'])

if __name__ == '__main__':
   cmd=None
   host=None
   dest=None
   addr=None
   if len(sys.argv)>1: cmd=sys.argv[1]
   if len(sys.argv)>2: host=sys.argv[2]
   if len(sys.argv)>3: dest=sys.argv[3]
   if len(sys.argv)>4: addr=sys.argv[4]
   if cmd:
      main(cmd, host, dest, addr)