- logger.log("bwmon: New Slice %s" % live[newslice]['name'])
- # _rspec is the computed rspec: NM retrieved data from PLC, computed loans
- # and made a dict of computed values.
- slices[newslice] = Slice(newslice, live[newslice]['name'], live[newslice]['_rspec'])
- slices[newslice].reset(0, 0, 0, 0, live[newslice]['_rspec'])
+ # Check to see if we recently deleted this slice.
+ if live[newslice]['name'] not in deaddb.keys():
+ logger.log( "bwmon: new slice %s" % live[newslice]['name'] )
+ # _rspec is the computed rspec: NM retrieved data from PLC, computed loans
+ # and made a dict of computed values.
+ slices[newslice] = Slice(newslice, live[newslice]['name'], live[newslice]['_rspec'])
+ slices[newslice].reset( {}, live[newslice]['_rspec'] )
+ # Double check time for dead slice in deaddb is within 24hr recording period.
+ elif (time.time() <= (deaddb[live[newslice]['name']]['slice'].time + period)):
+ deadslice = deaddb[live[newslice]['name']]
+ logger.log("bwmon: Reinstantiating deleted slice %s" % live[newslice]['name'])
+ slices[newslice] = deadslice['slice']
+ slices[newslice].xid = newslice
+ # Start the HTB
+ newvals = {"maxrate": deadslice['slice'].MaxRate * 1000,
+ "minrate": deadslice['slice'].MinRate * 1000,
+ "maxexemptrate": deadslice['slice'].Maxi2Rate * 1000,
+ "usedbytes": deadslice['htb']['usedbytes'] * 1000,
+ "usedi2bytes": deadslice['htb']['usedi2bytes'],
+ "share":deadslice['htb']['share']}
+ slices[newslice].reset(newvals, live[newslice]['_rspec'])
+ # Bring up to date
+ slices[newslice].update(newvals, live[newslice]['_rspec'])
+ # Since the slice has been reinitialed, remove from dead database.
+ del deaddb[deadslice['slice'].name]
+ del newvals