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
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