Compare commits

...

3 Commits

Author SHA1 Message Date
Guillaume Raffy 8a2c46c377 cocluto v1.08
- fixed bug that caused `draw_machine_age_pyramid_graph` to fail when some cluster machines get  older than 20 years. Increased the age limit to 25 years, and added clipping to the graph to cope with some machines even older than this

fixes [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=4101]
2025-06-24 16:10:09 +02:00
Guillaume Raffy 8679ae2ca5 cocluto v 1.07
fixed logic error foudn when working on [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3979]
2024-11-15 16:41:41 +01:00
Guillaume Raffy 27493f2ed7 fixed logic error foudn when working on [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3979] 2024-11-15 16:40:23 +01:00
3 changed files with 10 additions and 6 deletions

View File

@ -253,7 +253,7 @@ class SqliteDb(ISqlDatabaseBackend):
# If set False, the returned connection may be shared across multiple threads. When using multiple threads with the same connection writing operations should be serialized by the user to avoid data corruption
# I hope it's safe here but I'm not 100% sure though. Anyway, if the database gets corrupt, it not a big deal since this memory resident database gets reconstructed from the sql file...
if sqlite_db_path != ':memory:' and not sqlite_db_path.exists():
if sqlite_db_path == ':memory:' or not sqlite_db_path.exists():
logging.debug('creating sqlite database in %s', sqlite_db_path)
self._con = sqlite3.connect(sqlite_db_path, check_same_thread=check_same_thread)
else:

View File

@ -315,7 +315,7 @@ def draw_machine_age_pyramid_graph(inventory):
:param Inventory inventory: the inventory database
"""
oldest_age = 20
oldest_age = 25
age_histogram = np.zeros(shape=(oldest_age))
rows = inventory.query("SELECT * FROM machines")
@ -328,7 +328,9 @@ def draw_machine_age_pyramid_graph(inventory):
if purchase_date is not None:
purchase_time = matplotlib.dates.date2num(purchase_date.date()) # noqa: F841
age = datetime.datetime.now() - purchase_date
age_histogram[age.days // 365] += 1
age_in_years = age.days // 365
if age_in_years < oldest_age:
age_histogram[age_in_years] += 1
# print(name, age)
fig, ax = plt.subplots()
@ -349,7 +351,7 @@ def draw_core_age_pyramid_graph(inventory):
:param Inventory inventory: the inventory database
"""
oldest_age = 20
oldest_age = 25
age_histogram = np.zeros(shape=(oldest_age))
rows = inventory.query("SELECT * FROM machines")
@ -362,7 +364,9 @@ def draw_core_age_pyramid_graph(inventory):
if purchase_date is not None:
purchase_time = matplotlib.dates.date2num(purchase_date.date()) # noqa: F841
age = datetime.datetime.now() - purchase_date
age_histogram[age.days // 365] += inventory.get_num_cores(name)
age_in_years = age.days // 365
if age_in_years < oldest_age:
age_histogram[age_in_years] += inventory.get_num_cores(name)
# print(name, age)
fig, ax = plt.subplots()

View File

@ -2,7 +2,7 @@ from setuptools import setup
setup(
name='cocluto',
version=1.06,
version=1.08,
description='compute cluster utility tools',
url='https://git.ipr.univ-rennes1.fr/graffy/cocluto',
author='Guillaume Raffy',