def getRangeData(self) -> typing.Tuple[str, typing.List, typing.List]: start = self.startDate.stamp() end = self.endDate.stamp() if self.samplingPoints.num() < 8: self.samplingPoints.value = (self.endDate.date() - self.startDate.date()).days if self.samplingPoints.num() < 2: self.samplingPoints.value = 2 if self.samplingPoints.num() > 128: self.samplingPoints.value = 128 samplingPoints = self.samplingPoints.num() # x axis label format if end - start > 3600 * 24 * 2: xLabelFormat = 'SHORT_DATE_FORMAT' else: xLabelFormat = 'SHORT_DATETIME_FORMAT' samplingIntervals: typing.List[typing.Tuple[int, int]] = [] prevVal = None for val in range(start, end, int( (end - start) / (samplingPoints + 1))): if prevVal is None: prevVal = val continue samplingIntervals.append((prevVal, val)) prevVal = val data = [] reportData = [] for interval in samplingIntervals: key = (interval[0] + interval[1]) / 2 val = (events.statsManager().getEvents( events.OT_AUTHENTICATOR, events.ET_LOGIN, since=interval[0], to=interval[1], ).count()) data.append((key, val)) # @UndefinedVariable reportData.append({ 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1], xLabelFormat), 'users': val, }) return xLabelFormat, data, reportData
def getRangeData(self): start = self.startDate.stamp() end = self.endDate.stamp() samplingPoints = self.samplingPoints.num() # x axis label format if end - start > 3600 * 24 * 2: xLabelFormat = 'SHORT_DATE_FORMAT' else: xLabelFormat = 'SHORT_DATETIME_FORMAT' samplingIntervals = [] prevVal = None for val in range(start, end, (end - start) / (samplingPoints + 1)): if prevVal is None: prevVal = val continue samplingIntervals.append((prevVal, val)) prevVal = val data = [] reportData = [] for interval in samplingIntervals: key = (interval[0] + interval[1]) / 2 val = events.statsManager().getEvents(events.OT_AUTHENTICATOR, events.ET_LOGIN, since=interval[0], to=interval[1]).count() data.append((key, val)) # @UndefinedVariable reportData.append( { 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1], xLabelFormat), 'users': val } ) return (xLabelFormat, data, reportData)
def getRangeData(self): start = self.startDate.stamp() end = self.endDate.stamp() samplingPoints = self.samplingPoints.num() pools = [(v.id, v.name) for v in ServicePool.objects.filter(uuid__in=self.pools.value)] if len(pools) == 0: raise Exception(_('Select at least a service pool for the report')) logger.debug('Pools: {}'.format(pools)) # x axis label format if end - start > 3600 * 24 * 2: xLabelFormat = 'SHORT_DATE_FORMAT' else: xLabelFormat = 'SHORT_DATETIME_FORMAT' # Generate samplings interval samplingIntervals = [] prevVal = None for val in range(start, end, (end - start) / (samplingPoints + 1)): if prevVal is None: prevVal = val continue samplingIntervals.append((prevVal, val)) prevVal = val # Store dataUsers for all pools poolsData = [] fld = events.statsManager().getEventFldFor('username') reportData = [] for p in pools: dataUsers = [] dataAccesses = [] for interval in samplingIntervals: key = (interval[0] + interval[1]) / 2 q = events.statsManager().getEvents(events.OT_DEPLOYED, events.ET_ACCESS, since=interval[0], to=interval[1], owner_id=p[0]).values(fld).annotate(cnt=Count(fld)) accesses = 0 for v in q: accesses += v['cnt'] dataUsers.append((key, len(q))) # @UndefinedVariable dataAccesses.append((key, accesses)) reportData.append( { 'name': p[1], 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1], xLabelFormat), 'users': len(q), 'accesses': accesses } ) poolsData.append({ 'pool': p[0], 'name': p[1], 'dataUsers': dataUsers, 'dataAccesses': dataAccesses, }) return (xLabelFormat, poolsData, reportData)
def getRangeData(self): start = self.startDate.stamp() end = self.endDate.stamp() if self.samplingPoints.num() < 2: self.samplingPoints.value = (self.endDate.date() - self.startDate.date()).days if self.samplingPoints.num() < 2: self.samplingPoints.value = 2 if self.samplingPoints.num() > 32: self.samplingPoints.value = 32 samplingPoints = self.samplingPoints.num() pools = self.getPools() if len(pools) == 0: raise Exception(_('Select at least a service pool for the report')) logger.debug('Pools: {}'.format(pools)) # x axis label format if end - start > 3600 * 24 * 2: xLabelFormat = 'SHORT_DATE_FORMAT' else: xLabelFormat = 'SHORT_DATETIME_FORMAT' # Generate samplings interval samplingIntervals = [] prevVal = None for val in range(start, end, int( (end - start) / (samplingPoints + 1))): if prevVal is None: prevVal = val continue samplingIntervals.append((prevVal, val)) prevVal = val # Store dataUsers for all pools poolsData = [] fld = events.statsManager().getEventFldFor('username') reportData = [] for p in pools: dataUsers = [] dataAccesses = [] for interval in samplingIntervals: key = (interval[0] + interval[1]) / 2 q = events.statsManager().getEvents( events.OT_DEPLOYED, events.ET_ACCESS, since=interval[0], to=interval[1], owner_id=p[0]).values(fld).annotate(cnt=Count(fld)) accesses = 0 for v in q: accesses += v['cnt'] dataUsers.append((key, len(q))) # @UndefinedVariable dataAccesses.append((key, accesses)) reportData.append({ 'name': p[1], 'date': tools.timestampAsStr(interval[0], xLabelFormat) + ' - ' + tools.timestampAsStr(interval[1], xLabelFormat), 'users': len(q), 'accesses': accesses }) poolsData.append({ 'pool': p[0], 'name': p[1], 'dataUsers': dataUsers, 'dataAccesses': dataAccesses, }) return xLabelFormat, poolsData, reportData