def __init__(self, path, debug): RasPyLogger.__init__(self, None, "kernel") self._debugmode = debug self._path = path self._configpath = os.path.join(self._path, self.CFGFILE) self._logpath = os.path.join(self._path, self.LOGFILE) self._databasepath = os.path.join(self._path, "database") self._resourcespath = os.path.join(self._path, "resources") self._running = True # scheduler specific self._scheduler_quit = threading.Event() self._scheduler_lock = threading.Lock() # shared, need scheduler_lock # tasks instances by task name self._tasks = dict() # tasks instances by priority self._taskschedule = list() # task response by task name self._caches = dict() # task response parts by task name self._cacheparts = dict() self._supply = RasPySupplyReader() self._timefactory = factory.ArrowFactory(RasPyTime) self._last_update = None self._current_update = None self._updates = 0 self._runtime = 0 self._instance_id = None # log totaltime over day self._totaltime = RasPySampleLogger(self.get_updates24h(), [5, 15, 60]) self._watchdog = None # in seconds self._timeout = 5 self._float_decimals = 4
def setUp(self): super(GetTests, self).setUp() self.factory = factory.ArrowFactory()
def create_fixtures(batch=100): """ 1 an - 1 key_type - 8761 docs - 10 secs TODO: utiliser un formulaire ? """ from arrow import factory start = time.time() models.Metric.objects(internal_field=1).delete() last = arrow.utcnow().floor('day') #first = last.replace(months=-1) first = last.replace(years=-1) docs = [] myarrow = factory.ArrowFactory(PerfArrow) current = models.Metric.objects(internal_field=1).count() for date in myarrow.type.range('hour', first, last): count = random.randint(1000, 10000) mail_in = random.randint(700, count) mail_out = count - mail_in files_count = random.randint(0, 10) total_size = random.randint(10, 1000000) clean = random.randint(500, 8000) spam = random.randint(clean, mail_in) # 500 -> 9000 #spam = long(round(mail_in * random.randint(4, 6)*0.1)) # de 40% A 60% virus = long(round(mail_in * random.randint(1, 3) * 0.1)) #10% A 30% banned = long(round(mail_in * random.randint(1, 2) * 0.1)) #10% A 20% unchecked = long(round(mail_in * (random.randint(1, 2) * 0.1) / 2)) #10% A 20% bounce = long(round(count * random.randint(2, 3) * 0.1)) #20% A 30% docs.append( models.Metric(internal_field=1, date=date.datetime, group_name=constants.GROUP_DEFAULT, key=constants.GROUP_DEFAULT, key_type=constants.METRIC_KEY_TYPE_GROUP, metrics=models.MetricKeys(count=count, mail_in=mail_in, mail_out=mail_out, total_size=total_size, files_count=files_count, spam=spam, virus=virus, banned=banned, unchecked=unchecked, bounce=bounce))) if len(docs) > batch: models.Metric.objects.insert(docs, load_bulk=False) docs = [] if len(docs) > 0: models.Metric.objects.insert(docs, load_bulk=False) end = time.time() - start print "CREATED[%s] - TIME[%.3f]" % ( models.Metric.objects(internal_field=1).count() - current, end)
def arrow_factory(request): request.cls.factory = factory.ArrowFactory()
def setup_class(cls): cls.factory = factory.ArrowFactory()