Ejemplo n.º 1
0
def checkin():
    """Returns (status, response) tuple, where:
    status is None if no connection made, else HTTP status as int, and
    response is list of command name followed by args, or empty list."""
    global config

    # create parameter list for checkin request
    plist = [(CHECKIN_ARG_MAC, utils.macAsStr('eth0'))]
    plist.append((CHECKIN_ARG_STATUS, 'ok'))
    temp = get_temperature()
    if temp:
        plist.append((CHECKIN_ARG_TEMP, "%.1f" % temp))
    params = urllib.urlencode(plist)

    url = 'http://%s:%d/checkin?%s' % (config['server'], config['reg_port'],
            params)
    logging.debug('checkin(%s)' % url)
    status = None
    response = None
    try:
        f = urllib2.urlopen(url)
    except IOError, e:
        if hasattr(e, 'reason'):
            pass
        elif hasattr(e, 'code'):
            status = e.code
        else:
            logging.critical(str(e))
            raise InternalError
Ejemplo n.º 2
0
def register():
    """Returns None if no connection made, else HTTP status as int."""
    global config

    # create parameter list for registration request
    plist = [(REGISTER_ARG_MAC, utils.macAsStr('eth0'))]
    plist.append((REGISTER_ARG_TYPE, config['host_type']))
    plist.append((REGISTER_ARG_HOST, utils.hostName()))
    plist.append((REGISTER_ARG_CUST, config['customer'].encode(ENCODING)))
    plist.append((REGISTER_ARG_DESC, config['description'].encode(ENCODING)))
    plist.append((REGISTER_ARG_GEO,
        '%+.5f,%+.5f' % (config['latitude'], config['longitude'])))
    plist.append((REGISTER_ARG_OPPERIOD, config['opperiod']))
    params = urllib.urlencode(plist)

    # attempt registration
    url = 'http://%s:%d/reg?%s' % (config['server'], config['reg_port'], params)
    logging.info('register(%s)' % url)
    try:
        f = urllib2.urlopen(url)
    except IOError, e:
        if hasattr(e, 'reason'):
            return None
        elif hasattr(e, 'code'):
            return e.code
        else:
            raise InternalError