Example #1
0
    def acctounting(self):
        if not self.account:
            return logger.error(
                "[Acct] Received an accounting update request but user[%s] not exists"% self.request.account_number)  

        ticket = Storage(**self.request)
        _datetime = datetime.datetime.now() 
        online = self.get_online(ticket.nas_addr,ticket.acct_session_id)    
        if not online:
            session_time = ticket.acct_session_time 
            stop_time = _datetime.strftime( "%Y-%m-%d %H:%M:%S")
            start_time = (_datetime - datetime.timedelta(seconds=int(session_time))).strftime( "%Y-%m-%d %H:%M:%S")
            ticket.acct_start_time = start_time
            ticket.acct_stop_time = stop_time
            ticket.start_source= STATUS_TYPE_STOP
            ticket.stop_source = STATUS_TYPE_STOP
            self.add_ticket(ticket)
        else:
            self.del_online(ticket.nas_addr,ticket.acct_session_id)
            ticket.acct_start_time = online.acct_start_time
            ticket.acct_stop_time= _datetime.strftime( "%Y-%m-%d %H:%M:%S")
            ticket.start_source = online.start_source
            ticket.stop_source = STATUS_TYPE_STOP
            self.add_ticket(ticket)

            self.billing(online)
            logger.info('%s Accounting stop request, remove online'% self.account.account_number)
Example #2
0
 def new_ticket(online):
     _datetime = datetime.datetime.now()
     _starttime = datetime.datetime.strptime(online.acct_start_time,"%Y-%m-%d %H:%M:%S")
     session_time = (_datetime - _starttime).seconds
     stop_time = _datetime.strftime( "%Y-%m-%d %H:%M:%S")
     ticket = Storage()
     ticket.account_number = online.account_number,
     ticket.acct_session_id = online.acct_session_id,
     ticket.acct_start_time = online.acct_start_time,
     ticket.nas_addr = online.nas_addr,
     ticket.framed_ipaddr = online.framed_ipaddr,
     ticket.acct_session_time = session_time,
     ticket.acct_stop_time = stop_time,
     return ticket
Example #3
0
 def new_ticket(online):
     _datetime = datetime.datetime.now()
     _starttime = datetime.datetime.strptime(online.acct_start_time,"%Y-%m-%d %H:%M:%S")
     session_time = (_datetime - _starttime).seconds
     stop_time = _datetime.strftime( "%Y-%m-%d %H:%M:%S")
     ticket = Storage()
     ticket.account_number = online.account_number,
     ticket.acct_session_id = online.acct_session_id,
     ticket.acct_start_time = online.acct_start_time,
     ticket.nas_addr = online.nas_addr,
     ticket.framed_ipaddr = online.framed_ipaddr,
     ticket.acct_session_time = session_time,
     ticket.acct_stop_time = stop_time,
     return ticket