#!/usr/bin/python
import xmlrpclib
import salt.client
import sys

try:
    caller = salt.client.Caller()

    MANAGER = caller.cmd('pillar.get', 'mgr_server') or caller.cmd('config.get', 'master')

    MANAGER_URL = "https://" + MANAGER + "/rpc/api"

    PASSWORD = caller.cmd('pillar.get', 'machine_password')

    MINION = caller.cmd('grains.get', 'id')

    client = xmlrpclib.Server(MANAGER_URL, verbose=0)
except Exception as e:
    sys.stderr.write("Can't initialize API, is the minion configured?\n")
    sys.stderr.write(str(e))
    sys.exit(1)

if len(sys.argv) != 2:
    sys.stderr.write("Usage: suma-repos <key>\n")
    sys.exit(1)


KEY = sys.argv[1]

try:
    res = client.activationkey.listChannels(MINION, PASSWORD, KEY)

except Exception as e:
    sys.stderr.write("Can't get repo list.\n")
    sys.stderr.write(str(e))
    sys.exit(1)


for repo in res:
    print ' --add-repo ' + repo['url'] + '?' + repo['token']


