示例#1
0
def direct_post(dmd):
    callhome = CallHome(dmd)
    chs = CallHomeStatus()
    if not callhome.attempt('directpost'):
        return

    payload = callhome.get_payload()
    if not payload:
        logger.warning('Error getting or encrypting payload for direct-post')
        return
    payload = base64.urlsafe_b64encode(payload)

    params = urlencode({'enc': payload})

    chs.stage(chs.REQUEST_CALLHOME)
    try:
        httpreq = urllib2.urlopen(POST_CHECKIN_URL, params, _URL_TIMEOUT)
        returnPayload = httpreq.read()
    except Exception as e:
        chs.stage(chs.REQUEST_CALLHOME, "FAILED", str(e))
        logger.warning('Error retrieving data from callhome server %s', e)
    else:
        chs.stage(chs.REQUEST_CALLHOME, "FINISHED")
        callhome.save_return_payload(returnPayload)

    return
 def checkin(self, returnPayload):
     # record successful check in
     callhome = CallHome(self.context.dmd)
     callhome.save_return_payload(returnPayload)
     return ''
示例#3
0
 def checkin(self, returnPayload):
     # record successful check in
     callhome = CallHome(self.context.dmd)
     callhome.save_return_payload(returnPayload)
     return ''