Пример #1
0
    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
Пример #2
0
    def setUp(self):
        super(GetTests, self).setUp()

        self.factory = factory.ArrowFactory()
Пример #3
0
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)
Пример #4
0
def arrow_factory(request):
    request.cls.factory = factory.ArrowFactory()
Пример #5
0
 def setup_class(cls):
     cls.factory = factory.ArrowFactory()