#!/usr/bin/python

import urllib2
import urllib
import json
import time
import os
import sys
import time

class CredentialsNotFound(Exception):
    pass

authfile = "%s/.atlas/auth" % os.environ['HOME']
data = { "definitions": [
           { "target": "www.bortzmeyer.org", "description": "Ping my blog",
           "type": "ping", "af": 6, "is_oneoff": True} ],
         "probes": [
             { "requested": 5, "type": "area", "value": "WW" } ] }

if not os.path.exists(authfile):
    raise CredentialsNotFound(authfile)
auth = open(authfile)
key = auth.readline()[:-1]
auth.close()

url = "https://atlas.ripe.net/api/v1/measurement/?key=%s" % key

for area in ["WW", "West", "North-East", "South-East", "North-Central", "South-Central"]:
    request = urllib2.Request(url)
    request.add_header("Content-Type", "application/json")
    request.add_header("Accept", "application/json")
    data["probes"][0]["value"] = area
    json_data = json.dumps(data)
    try:
        conn = urllib2.urlopen(request, json_data)
        results = json.load(conn) 
        print("%s: measurement #%s" % (area, results["measurements"]))
        conn.close()
        time.sleep(10) # Not really necessary
    except urllib2.HTTPError as e:
        print >>sys.stderr, ("Fatal error: %s" % e.read())
        raise
    conn.close()
    time.sleep(10)

