import main
from modules import provision


class AutoCommand:
    def __init__(self, *args):
        self.auto(*args)

    def auto(
        self, addr, authed, data, obj, spl, success, failure, info, incUsage, length
    ):
        if authed:
            if length == 1:
                for i in main.network.keys():
                    if 1 in main.network[i].relays.keys():
                        info("Skipping %s - first relay exists" % i)
                    else:
                        num, alias = main.network[i].add_relay(1)
                        success(
                            "Successfully created first relay on network %s with alias %s"
                            % (i, alias)
                        )
                        provision.provisionRelay(num, i)
                        success(
                            "Started provisioning network %s on first relay for alias %s"
                            % (i, alias)
                        )
                main.saveConf("network")
                return
            elif length == 2:
                if not spl[1] in main.network.keys():
                    failure("No such network: %s" % spl[1])
                    return
                if 1 in main.network[spl[1]].relays.keys():
                    failure("First relay exists on %s" % spl[1])
                    return
                num, alias = main.network[spl[1]].add_relay(1)
                success(
                    "Successfully created relay %i on network %s with alias %s"
                    % (num, spl[1], alias)
                )
                provision.provisionRelay(num, spl[1])
                success(
                    "Started provisioning network %s on relay %s for alias %s"
                    % (spl[1], num, alias)
                )
                main.saveConf("network")
                return
            else:
                incUsage("auto")
                return
        else:
            incUsage(None)
