lasterrorspath = '../lasterrors.txt'

monitor_privkey_path = str(config.other['monitor_privkey_path'])

serverinfotuple = read_serverinfo(serverinfocsvpath)
localstate = {}
for propertytuple in serverinfotuple:
    (launch_time, instance_id, publichost, status) = propertytuple
    localstate[instance_id] = (launch_time, publichost, status)

POLL_TIME = 10
ADDRESS_WAIT_TIME = 60

def checker(stdout, stderr):
    d = wait_for_EC2_properties(ec2accesskeyid, ec2secretkey, endpoint_uri,
                                ServerInfoParser(('launchTime', 'instanceId'), ('dnsName', 'instanceState.name')),
                                POLL_TIME, ADDRESS_WAIT_TIME, sys.stdout, stderr)

    d.addCallback(lambda remoteproperties: compare_servers_to_local(remoteproperties, localstate, stdout, stderr))

    d.addCallback(lambda host_list: check_servers(host_list, monitor_privkey_path, stdout, stderr))

    return d

d = monitoring_check(checker=checker, lasterrorspath=lasterrorspath,
                     from_email="*****@*****.**",
                     what="storage servers",
                     stdout=sys.stdout, stderr=sys.stderr)
d.addCallbacks(lambda ign: os._exit(0), lambda ign: os._exit(1))
reactor.run()