diff --git a/agent/app/app.py b/agent/app/app.py index 6c876a5..ecc2780 100644 --- a/agent/app/app.py +++ b/agent/app/app.py @@ -1,11 +1,9 @@ # -*- coding: utf-8 -*- -import os import time from dataclasses import dataclass import schedule -import yaml # type: ignore from balena.operator import Operator as Balena from boinc.operator import Operator as Boinc from scitizen.operator import Operator as Scitizen @@ -35,10 +33,7 @@ def __post_init__(self) -> None: Seed the project table, check the hostname, set the schedule interval and run the agent """ - with open(f"{os.path.dirname(os.path.abspath(__file__))}/projects.yml") as file: - projects = yaml.load(file, Loader=yaml.SafeLoader).get("projects") - self.scitizen.set_projects(projects) - + self.scitizen.set_projects() self.balena.set_hostname("scitizen") schedule.every(30).seconds.do(self.job) diff --git a/agent/app/boinc/operator.py b/agent/app/boinc/operator.py index c0a3375..76727d4 100644 --- a/agent/app/boinc/operator.py +++ b/agent/app/boinc/operator.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import Any, Dict, List -import boinc.utils as utils +import utils from jinja2 import Template from xmltodict import parse @@ -274,8 +274,8 @@ def get_host_info(self) -> Dict[str, Any]: host: dict = {} # fetch data from the BOINC client and parse it - reply = self._send_request(name="get_host_info") - result = utils.deep_get(reply, "boinc_gui_rpc_reply.host_info") + reply = self._send_request(name="get_state") + result = utils.deep_get(reply, "boinc_gui_rpc_reply.client_state.host_info") # hack to handle no results if result is None: @@ -305,20 +305,28 @@ def get_host_info(self) -> Dict[str, Any]: host.update({"domain_name": result.get("domain_name")}) # fetch data from the BOINC client and parse it - reply = self._send_request(name="exchange_versions") - result = utils.deep_get(reply, "boinc_gui_rpc_reply.server_version") - - # hack to handle no results - if result is None: - result = {} + major = utils.deep_get( + reply, "boinc_gui_rpc_reply.client_state.core_client_major_version" + ) + minor = utils.deep_get( + reply, "boinc_gui_rpc_reply.client_state.core_client_minor_version" + ) + release = utils.deep_get( + reply, "boinc_gui_rpc_reply.client_state.core_client_release" + ) # add static data relative to the software - host.update( - { - "boinc_version": f"{result.get('major')}.{result.get('minor')}.{result.get('release')}" - } + host.update({"boinc_version": f"{major}.{minor}.{release}"}) + + # fetch data from the BOINC client and parse it + reply = self._send_request(name="get_state") + platform = utils.deep_get( + reply, "boinc_gui_rpc_reply.client_state.platform_name" ) + # add static data relative to the software + host.update({"platform": platform}) + return host def sync_projects(self, projects: List[Dict[str, Any]]) -> None: diff --git a/agent/app/boinc/queries/exchange_versions.xml.j2 b/agent/app/boinc/queries/exchange_versions.xml.j2 deleted file mode 100644 index 4a63cc9..0000000 --- a/agent/app/boinc/queries/exchange_versions.xml.j2 +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/agent/app/boinc/queries/get_host_info.xml.j2 b/agent/app/boinc/queries/get_state.xml.j2 similarity index 71% rename from agent/app/boinc/queries/get_host_info.xml.j2 rename to agent/app/boinc/queries/get_state.xml.j2 index c5895ce..c5f3de1 100644 --- a/agent/app/boinc/queries/get_host_info.xml.j2 +++ b/agent/app/boinc/queries/get_state.xml.j2 @@ -1,3 +1,3 @@ - + diff --git a/agent/app/projects.yml b/agent/app/projects.yml deleted file mode 100644 index be9a5d8..0000000 --- a/agent/app/projects.yml +++ /dev/null @@ -1,395 +0,0 @@ ---- -projects: - - id: 8f14e45fceea167a5a36dedd4bea2543 - avatar: R@h - description: | - Determine the 3-dimensional shapes of proteins in research that may ultimately - lead to finding cures for some major human diseases. By running Rosetta@home you - will help us speed up and extend our research in ways we couldn't possibly attempt - without your help. You will also be helping our efforts at designing new proteins - to fight diseases such as COVID-19, HIV, malaria, cancer, and Alzheimer's - general_area: Biology and Medicine - home: University of Washington - image: https://boinc.berkeley.edu/images/rosetta_at_home_logo.jpg - keywords: 9 13 11 23 24 28 64 - name: Rosetta@home - platforms: | - - aarch64-unknown-linux-gnu - - arm-android-linux-gnu - - i686-pc-linux-gnu - - windows_intelx86 - - windows_x86_64 - - windows_x86_64[vbox64] - - x86_64-apple-darwin - - x86_64-pc-linux-gnu - - x86_64-pc-linux-gnu[vbox64] - specific_area: Biology - summary: Study diseases such as COVID-19, HIV, malaria, cancer, and Alzheimer's - url: https://boinc.bakerlab.org/rosetta/ - web_url: https://boinc.bakerlab.org/rosetta/ - weak_authenticator: 2348499_186a12cccae17b42df557063fb3dff67 - - - id: 6512bd43d9caa6e02c990b0a82652dca - avatar: A@h - description: | - The aim of the project is to derive shapes and spin for a significant - part of the asteroid population. As input data, we use any asteroid photometry that - is available. The results are asteroid convex shape models with the direction of - the spin axis and the rotation period. - general_area: Physical Science - home: Charles University in Prague - image: https://boinc.berkeley.edu/images/asteroids_logo.jpg - keywords: 1 20 36 37 - name: Asteroids@home - platforms: | - - arm-android-linux-gnu[arm_android_non_pie] - - arm-android-linux-gnu[arm_android_pie] - - arm-unknown-linux-gnueabihf - - armv6l-unknown-linux-gnueabihf - - i686-apple-darwin[sse3] - - i686-apple-darwin[sse3_osx] - - i686-pc-freebsd - - i686-pc-linux-gnu - - i686-pc-linux-gnu[avx_linux] - - i686-pc-linux-gnu[sse2_linux] - - i686-pc-linux-gnu[sse3_linux] - - windows_intelx86 - - windows_intelx86[avx_win10] - - windows_intelx86[avx_win7] - - windows_intelx86[avx_winxp] - - windows_intelx86[cuda55] - - windows_intelx86[sse2_win10] - - windows_intelx86[sse2_win7] - - windows_intelx86[sse2_winxp] - - windows_intelx86[sse3_win10] - - windows_intelx86[sse3_win7] - - windows_intelx86[sse3_winxp] - - windows_x86_64[avx_win10] - - windows_x86_64[avx_win7] - - windows_x86_64[avx_winxp] - - windows_x86_64[cuda102_win10] - - windows_x86_64[cuda102_win7] - - windows_x86_64[cuda55] - - windows_x86_64[sse2_win10] - - windows_x86_64[sse2_win7] - - windows_x86_64[sse2_winxp] - - windows_x86_64[sse3_win10] - - windows_x86_64[sse3_win7] - - windows_x86_64[sse3_winxp] - - x86_64-apple-darwin[sse3] - - x86_64-apple-darwin[sse3_osx] - - x86_64-pc-freebsd - - x86_64-pc-linux-gnu[avx_linux] - - x86_64-pc-linux-gnu[cuda102_linux] - - x86_64-pc-linux-gnu[cuda55] - - x86_64-pc-linux-gnu[sse2_linux] - - x86_64-pc-linux-gnu[sse3_linux] - specific_area: Astrophysics - summary: Study the properties of asteroids - url: http://asteroidsathome.net/boinc/ - web_url: http://asteroidsathome.net/boinc/ - weak_authenticator: 471707_439c418d5f6ce7cdbb62c60c6f91e61d - - - id: c51ce410c124a10e0db5e4b97fc2af39 - avatar: U@H - description: | - Universe@Home aims to create the first database of the simulated stellar - content of the Universe, from the earliest stars to the most exotic black hole binaries. - general_area: Physical Science - home: University of Warsaw - image: https://boinc.berkeley.edu/images/universe_at_home.png - keywords: 1 20 43 57 - name: Universe@Home - platforms: | - - aarch64-unknown-linux-gnu - - arm-android-linux-gnu[android_arm_pie] - - arm-unknown-linux-gnueabihf - - armv7l-unknown-linux-gnueabihf - - windows_x86_64 - - x86_64-pc-linux-gnu - specific_area: Astronomy - summary: Do research in physics and astronomy - url: https://universeathome.pl/universe/ - web_url: https://universeathome.pl/universe/ - weak_authenticator: 225109_1e3c507523811251e5045b1a9cb7ee26 - - - id: c74d97b01eae257e44aa9d5bade97baf - avatar: E@h - description: | - Einstein@Home uses your computer's idle time to search for weak astrophysical - signals from spinning neutron stars (often called pulsars) using data from the LIGO - gravitational-wave detectors, the Arecibo radio telescope, and the Fermi gamma-ray - satellite. - general_area: Physical Science - home: - University of Wisconsin - Milwaukee (USA), Max Planck Institute for Gravitational - Physics - Hanover (Germany) - image: https://boinc.berkeley.edu/images/einstein.jpg - keywords: 1 4 3 59 26 - name: Einstein@home - platforms: | - - arm-android-linux-gnu[ASIMDPIE] - - arm-android-linux-gnu[ASIMDPIE_1X] - - arm-android-linux-gnu[ASIMDPIE_Beta] - - arm-android-linux-gnu[NEON] - - arm-android-linux-gnu[NEONPIE] - - arm-android-linux-gnu[NEONPIE_1X] - - arm-android-linux-gnu[VFP] - - arm-unknown-linux-gnueabihf - - arm-unknown-linux-gnueabihf[NEON] - - arm64-apple-darwin - - i686-apple-darwin[opencl-intel_gpu-lion] - - i686-apple-darwin[opencl-intel_gpu-lion-Beta] - - i686-pc-linux-gnu[FGRPSSE] - - powerpc-apple-darwin[ALTIVEC] - - windows_intelx86[FGRPSSE] - - windows_intelx86[opencl-intel_gpu] - - windows_x86_64[BRP4-opencl-intel_gpu-nd] - - windows_x86_64[FGRPopencl-ati] - - windows_x86_64[FGRPopencl-intel_gpu] - - windows_x86_64[FGRPopencl-nvidia] - - windows_x86_64[FGRPopencl1K-ati] - - windows_x86_64[FGRPopencl1K-nvidia] - - windows_x86_64[FGRPopenclTV-nvidia] - - windows_x86_64[GW-opencl-ati] - - windows_x86_64[GW-opencl-nvidia] - - windows_x86_64[GWnew] - - windows_x86_64[opencl-intel_gpu] - - windows_x86_64[opencl-intel_gpu-Beta] - - windows_x86_64[opencl-intel_gpu-new] - - x86_64-apple-darwin[FGRPopencl-ati-mav] - - x86_64-apple-darwin[FGRPopencl-nvidia-mav] - - x86_64-apple-darwin[FGRPopenclTV-nvidia] - - x86_64-apple-darwin[FGRPSSE] - - x86_64-apple-darwin[GW-opencl-ati-OSX] - - x86_64-apple-darwin[GW-opencl-nvidia-OSX] - - x86_64-apple-darwin[Lion] - - x86_64-pc-linux-gnu[FGRPopencl-ati] - - x86_64-pc-linux-gnu[FGRPopencl-nvidia] - - x86_64-pc-linux-gnu[FGRPopencl1K-ati] - - x86_64-pc-linux-gnu[FGRPopencl1K-nvidia] - - x86_64-pc-linux-gnu[FGRPopenclTV-nvidia] - - x86_64-pc-linux-gnu[FGRPSSE] - - x86_64-pc-linux-gnu[GW-opencl-ati] - - x86_64-pc-linux-gnu[GW-opencl-nvidia] - - x86_64-pc-linux-gnu[GWnew] - specific_area: Astrophysics - summary: Help detect pulsars and gravitational waves - url: http://einstein.phys.uwm.edu/ - web_url: https://einsteinathome.org/ - weak_authenticator: 1034532_935f4713ce9494060c9654c774c88685 - - - id: 70efdf2ec9b086079795c442636b55fb - avatar: L@h - description: - The Large Hadron Collider (LHC) is a particle accelerator at CERN, the - European Organization for Nuclear Research, the world's largest particle physics - laboratory. It is the most powerful instrument ever built to investigate on particles - proprieties. LHC@home runs simulations to improve the design of LHC and its detectors. - general_area: Physical Science - home: CERN (European Organization for Nuclear Research) - image: https://boinc.berkeley.edu/images/lhc.jpg - keywords: 6 7 59 27 - name: LHC@home - platforms: | - - aarch64-android-linux-gnu - - aarch64-android-linux-gnu[android] - - aarch64-unknown-linux-gnu - - i686-pc-linux-gnu[sse2] - - windows_intelx86 - - windows_intelx86[avx] - - windows_intelx86[sse2] - - windows_x86_64[avx] - - windows_x86_64[sse2] - - windows_x86_64[vbox64] - - windows_x86_64[vbox64_mt_mcore_atlas] - - windows_x86_64[vbox64_theory] - - x86_64-apple-darwin[avx] - - x86_64-apple-darwin[sse2] - - x86_64-apple-darwin[vbox64] - - x86_64-apple-darwin[vbox64_mt_mcore_atlas] - - x86_64-apple-darwin[vbox64_theory] - - x86_64-pc-freebsd[avx] - - x86_64-pc-freebsd[sse2] - - x86_64-pc-freebsd[vbox64_theory] - - x86_64-pc-linux-gnu[avx] - - x86_64-pc-linux-gnu[long_native_mt] - - x86_64-pc-linux-gnu[native_mt] - - x86_64-pc-linux-gnu[native_theory] - - x86_64-pc-linux-gnu[sse2] - - x86_64-pc-linux-gnu[vbox64] - - x86_64-pc-linux-gnu[vbox64_mt_mcore_atlas] - - x86_64-pc-linux-gnu[vbox64_theory] - specific_area: Physics - summary: Improve the design of the Large Hadron Collider - url: https://lhcathome.cern.ch/lhcathome/ - web_url: https://lhcathome.cern.ch/lhcathome/ - weak_authenticator: 787712_e7ec22b6d2c890bd12d55fd56c57e6c1 - - - id: c0c7c76d30bd3dcaefc96f40275bdc0a - avatar: iT - description: | - The goal of the iThena project is to generate a dynamic topological model - of the Internet, based on measurements from distributed devices. - general_area: Mathematics, computing, and games - home: Cyber-Complex Foundation - keywords: "15" - name: iThena - platforms: | - - aarch64-unknown-linux-gnu - - arm-unknown-linux-gnueabihf - - windows_intelx86 - - x86_64-pc-linux-gnu - specific_area: Computer science - summary: Study the Internet - url: https://root.ithena.net/usr/ - web_url: https://root.ithena.net/usr/ - weak_authenticator: 41373_56d8227b4ca86fbfb58642bad8064baa - - - id: a1d0c6e83f027327d8461063f4ac58a6 - avatar: RS - description: | - The enormous size of the diagonal Latin squares space makes it unfeasible - to enumerate all its objects straightforwardly in reasonable time. So, in order - to discover the structure of this space, sophisticated search methods are needed. - In RakeSearch project, we implement an application that picks up separate pairs - of mutually orthogonal DLSs, which allows to reconstruct full graphs of their orthogonality. - general_area: Mathematics, computing, and games - home: Karelian Research Center, Russian Academy of Sciences - keywords: 15 20 44 - name: RakeSearch - platforms: | - - arm-unknown-linux-gnueabihf - - e2k-linux-gnu - - i686-pc-linux-gnu - - windows_intelx86 - - windows_x86_64 - - x86_64-pc-linux-gnu - specific_area: Mathematics - summary: Study Latin Squares - url: https://rake.boincfast.ru/rakesearch/ - web_url: https://rake.boincfast.ru/rakesearch/ - weak_authenticator: 13528_3f14685c433e226041771669abbc6923 - - - id: b6d767d2f8ed5d21a44b0e5886680cb9 - avatar: WCG - description: | - To further critical non-profit research on some of humanity's most pressing - problems by creating the world's largest volunteer computing grid. Research includes - HIV-AIDS, cancer, tropical and neglected diseases, solar energy, clean water and - many more. - general_area: Multiple applications - home: IBM Corporate Citizenship - image: https://boinc.berkeley.edu/images/wcg.jpg - keywords: 9 10 14 64 29 23 24 - name: World Community Grid - platforms: | - - i686-pc-linux-gnu - - x86_64-pc-linux-gnu - - windows_intelx86 - - windows_x86_64 - - x86_64-apple-darwin - - arm-android-linux-gnu - - aarch64-android-linux-gnu - - arm-unknown-linux-gnueabihf - specific_area: Medical, environmental and other humanitarian research - summary: Do biomedical and environmental research - url: http://www.worldcommunitygrid.org/ - web_url: http://www.worldcommunitygrid.org/ - weak_authenticator: 1142050_bff21735a8975927645d3ff2b60e152f - - - id: 67c6a1e7ce56d3d6fa748ab6d9af3fd7 - avatar: M@H - description: | - MLC@Home is dedicated to understanding and interpreting complex machine - learning models, with an emphasis on neural networks. - general_area: Cognitive science and artificial intelligence - home: University of Maryland, Baltimore County (UMBC) - image: https://boinc.berkeley.edu/images/mlcathome-banner.png - keywords: 16 23 24 - name: MLC@Home - platforms: | - - aarch64-unknown-linux-gnu - - arm-unknown-linux-gnu - - arm-unknown-linux-gnueabihf - - windows_x86_64 - - windows_x86_64[cuda10200] - - x86_64-pc-linux-gnu - - x86_64-pc-linux-gnu[amdrocm] - - x86_64-pc-linux-gnu[cuda10200] - specific_area: Artificial Intelligence - summary: Study machine learning - url: https://www.mlcathome.org/mlcathome/ - web_url: https://www.mlcathome.org/mlcathome/ - weak_authenticator: 43537_9feaf8e1b00f49e7ac888897521032a9 - - - id: c81e728d9d4c2f636f067f89cc14862c - avatar: R@H - description: | - Radioactive@Home is creating a free and continuously updated map of radiation - levels using sensors connected to volunteers' computers. You must buy a sensor - to participate. - general_area: Distributed sensing - home: BOINC Poland Foundation - image: https://boinc.berkeley.edu/images/radioactive.jpg - keywords: 34 20 43 - name: Radioactive@Home - platforms: | - - windows_intelx86 - - i686-pc-linux-gnu[nci] - - arm-unknown-linux-gnueabi - - armv6l-unknown-linux-gnueabihf - - arm-unknown-linux-gnueabihf - - mipsel-unknown-linux-gnu - - armv7l-unknown-linux-gnueabihf - specific_area: Environmental research - summary: Monitor radiation levels - url: http://radioactiveathome.org/boinc/ - web_url: http://radioactiveathome.org/boinc/ - weak_authenticator: 93746_1ff2bebc388ccfd9d09c580e010a6a92 - - - id: 2838023a778dfaecdc212708f721b788 - avatar: S@H - description: | - Study drugs to fight SARS-CoV-2. - general_area: Biology and Medicine - home: The COVID.SI project and the Karelian Research Center of the Russian Academy of Sciences - image: https://boinc.berkeley.edu/images/sidock.png - keywords: 9 13 64 20 44 - name: SIDock@home - platforms: | - - x86_64-pc-linux-gnu - - x86_64-apple-darwin - - windows_x86_64 - - arm-unknown-linux-gnueabihf - specific_area: Biomedicine - summary: Study drugs to fight SARS-CoV-2 - url: https://www.sidock.si/sidock/ - web_url: https://www.sidock.si/sidock/ - weak_authenticator: 4335_4ce69ae921efc46321ec5d515b6c94e7 - - - id: 37693cfc748049e45d87b8c7d8b9aacd - avatar: AN - description: | - Amicable numbers are pairs where the sum of the proper divisors of each is equal to the other number. - The goal of this project is to collect all amicable numbers up to a very large limit. - general_area: Mathematics, computing, and games - home: Independent - keywords: 15 32 20 - name: Amicable Numbers - platforms: | - - aarch64-unknown-linux-gnu[mt] - - windows_x86_64[mt] - - windows_x86_64[opencl_amd] - - windows_x86_64[opencl_nvidia] - - x86_64-apple-darwin[mt] - - x86_64-apple-darwin[opencl_amd] - - x86_64-apple-darwin[opencl_nvidia] - - x86_64-pc-linux-gnu[mt] - - x86_64-pc-linux-gnu[opencl_amd] - - x86_64-pc-linux-gnu[opencl_nvidia] - specific_area: Mathematics - summary: Do research in number theory - url: https://sech.me/boinc/Amicable/ - web_url: https://sech.me/boinc/Amicable/ - weak_authenticator: 44677_6eb84b6eab64f40a10278f088d68968d diff --git a/agent/app/scitizen/operator.py b/agent/app/scitizen/operator.py index 4d060bc..6f0c56a 100644 --- a/agent/app/scitizen/operator.py +++ b/agent/app/scitizen/operator.py @@ -1,9 +1,13 @@ # -*- coding: utf-8 -*- from dataclasses import dataclass +from pathlib import Path from typing import Any, Dict, List import requests +import utils +import xmltodict +import yaml @dataclass @@ -19,13 +23,14 @@ class Operator: host: The name of the Scitizen API host. port: The port of the Scitizen API host. session: A session to improve performance. + config: The path to the config file. Methods: set_device: Set the device info set_tasks: Set all the running tasks. clean_tasks: Run maintenance queries on the database. get_projects: Fetch all the projects available. - set_projects: Set the state (enabled/disabled) of all the projects available. + set_projects: Set all the BOINC projects. """ base_url: str = "" @@ -33,6 +38,7 @@ class Operator: host: str = "localhost" port: int = 8080 session: requests.Session = requests.Session() + config: str = f"{(Path(__file__).parent).resolve()}/projects.yml" def __post_init__(self) -> None: """Initialize the Operator. @@ -91,16 +97,32 @@ def get_projects(self) -> List[str]: return self.session.get(url=f"{self.base_url}/projects").json() - def set_projects(self, projects: List[Dict[str, Any]]) -> None: + def set_projects(self) -> None: """Send projects to the Scitizen API. - It is used to update the Scitizen data with data coming from the BOINC Client. - - Args: - projects: - The list of projects to send to the Scitizen API. + It is used to fetch the official project list from the BOINC API, + complete them with some Scitizen relative configs (like avatars and weak authenticators) + and send them to the Scitizen API for persistence. """ + # load scitizen config + with open(self.config) as file: + config = yaml.load(file, Loader=yaml.SafeLoader).get("projects") + + # fetch official project list + response = requests.get("https://boinc.berkeley.edu/project_list.php") + projects = xmltodict.parse(response.text).get("projects").get("project") + + # iterate over official project and override config + for project in projects: + uuid: str = utils.md5(project.get("id")) + project.update({"uuid": uuid}) + project.update({"platforms": str(project.get("platforms").get("name"))}) + project.update({"avatar": config.get(uuid, {}).get("avatar")}) + project.update( + {"weak_authenticator": config.get(uuid, {}).get("weak_authenticator")} + ) + for project in projects: self.session.post( url=f"{self.base_url}/projects/{project.get('uuid')}", json=project diff --git a/agent/app/scitizen/projects.yml b/agent/app/scitizen/projects.yml new file mode 100644 index 0000000..1a76250 --- /dev/null +++ b/agent/app/scitizen/projects.yml @@ -0,0 +1,137 @@ +--- +projects: + 8f14e45fceea167a5a36dedd4bea2543: + avatar: R@h + weak_authenticator: 2348499_186a12cccae17b42df557063fb3dff67 + + c9f0f895fb98ab9159f51fd0297e236d: + avatar: CP + weak_authenticator: 2011746_1ab8969914d88b3bb941c0db2d81095c + + 1f0e3dad99908345f7439f8ffabdffc4: + avatar: CSG + weak_authenticator: 1549900_2ec7f3f218990556291fcdf8bd0421f7 + + f7177163c833dff4b38fc8d2872f1ec6: + avatar: B@T + weak_authenticator: 21911_bf44581b6ebcab65aefc26e190046932 + + 6512bd43d9caa6e02c990b0a82652dca: + avatar: A@h + weak_authenticator: 471707_439c418d5f6ce7cdbb62c60c6f91e61d + + 33e75ff09dd601bbe69f351039152189: + avatar: CC + weak_authenticator: 1648775_0f463e700cffac3e5c0208d68a20050c + + c20ad4d76fe97759aa27a0c99bff6710: + avatar: C@H + weak_authenticator: 1814706_1c80358958413f4c3eac9eb75246a9fa + + aab3238922bcc25a6f606eb525ffdc56: + avatar: M@h + weak_authenticator: 1797723_bb0f5215bd077026e61c4a2be7266471 + + d9d4f495e875a2e075a1a4a6e1b9770f: + avatar: M@H + weak_authenticator: 15856591_51a4df5be469d4106f78c1e16dc76b7c + + 4e732ced3463d06de0ca9a15b6153677: + avatar: MOO + weak_authenticator: 326490_bd7799eaf789fc90921b6d9b09e92a3a + + 17e62166fc8586dfa4d1bc0e1742c08b: + avatar: N@H + weak_authenticator: 69975_cbee59906d550800d73a51ce64511165 + + 6ea9ab1baa0efb9e19094440c317e21b: + avatar: NFS + weak_authenticator: 1105563_3d8b03c0842747ee72302844fa74018d + + 1ff1de774005f8da13f42943881c655f: + avatar: NFh + weak_authenticator: 120082_cf41ef1986daa709586f73a2bdb78f54 + + a5771bce93e200c36f7cd9dfd0e5deaa: + avatar: ODL + weak_authenticator: 33135_f5b48880c88267d564c8823cc2dd76ea + + d67d8ab4f4c10bf22aa353e27879133c: + avatar: ODL + weak_authenticator: 31846_e0510332a47ac1f87aa9d2fa01ea9531 + + 34173cb38f07f89ddbebc2ac9128303f: + avatar: PG + weak_authenticator: 1424988_ad4b9f9d87c95db0299d9f25ff20a1d2 + + e4da3b7fbbce2345d7772b0674a318d5: + avatar: RNA + weak_authenticator: 152940_d84023a627bb016b15a8e3fdb683a61b + + c51ce410c124a10e0db5e4b97fc2af39: + avatar: U@H + weak_authenticator: 225109_1e3c507523811251e5045b1a9cb7ee26 + + c74d97b01eae257e44aa9d5bade97baf: + avatar: E@h + weak_authenticator: 1034532_935f4713ce9494060c9654c774c88685 + + 70efdf2ec9b086079795c442636b55fb: + avatar: LHC + weak_authenticator: 787712_e7ec22b6d2c890bd12d55fd56c57e6c1 + + c0c7c76d30bd3dcaefc96f40275bdc0a: + avatar: iT + weak_authenticator: 41373_56d8227b4ca86fbfb58642bad8064baa + + a1d0c6e83f027327d8461063f4ac58a6: + avatar: RS + weak_authenticator: 13528_3f14685c433e226041771669abbc6923 + + b6d767d2f8ed5d21a44b0e5886680cb9: + avatar: WCG + weak_authenticator: 1142050_bff21735a8975927645d3ff2b60e152f + + 67c6a1e7ce56d3d6fa748ab6d9af3fd7: + avatar: MLC + weak_authenticator: 43537_9feaf8e1b00f49e7ac888897521032a9 + + c81e728d9d4c2f636f067f89cc14862c: + avatar: R@H + weak_authenticator: 93746_1ff2bebc388ccfd9d09c580e010a6a92 + + 2838023a778dfaecdc212708f721b788: + avatar: S@h + weak_authenticator: 4335_4ce69ae921efc46321ec5d515b6c94e7 + + 37693cfc748049e45d87b8c7d8b9aacd: + avatar: AN + weak_authenticator: 44677_6eb84b6eab64f40a10278f088d68968d + + 1679091c5a880faf6fb5e6087eb1b2dc: + avatar: GPU + weak_authenticator: 572510_c32d61242105241cffcc8c3cd9c3c99e + + f457c545a9ded88f18ecee47145a72c0: + avatar: Q@h + weak_authenticator: 1245_2a0dee4611b8a12c84257fe7f8c82a21 + + e369853df766fa44e1ed0ff613f563bd: + avatar: SRB + weak_authenticator: 2602_8df6ed9d52d1a20fadf3213f2b147119 + + 182be0c5cdcd5072bb1864cdee4d3d6e: + avatar: G@H + weak_authenticator: None + + 642e92efb79421734881b53e1e1b18b6: + avatar: IBE + weak_authenticator: null + + eccbc87e4b5ce2fe28308fd9f2a7baf3: + avatar: M@H + weak_authenticator: null + + 3c59dc048e8850243be8079a5c74d079: + avatar: Y@h + weak_authenticator: null diff --git a/agent/app/boinc/utils.py b/agent/app/utils.py similarity index 100% rename from agent/app/boinc/utils.py rename to agent/app/utils.py diff --git a/api/app/models.py b/api/app/models.py index 5eec94d..29b7a00 100644 --- a/api/app/models.py +++ b/api/app/models.py @@ -35,6 +35,7 @@ class Device(SQLModel, table=True): # type: ignore operating_system_version: Optional[str] boinc_version: Optional[str] scitizen_version: Optional[str] + platform: Optional[str] # setup the pseudo-columns (metadata related to the record) created_at: Optional[datetime] = Field( diff --git a/worker/config/account_asteroidsathome.net_boinc.xml b/worker/config/account_asteroidsathome.net_boinc.xml deleted file mode 100644 index c3b8d71..0000000 --- a/worker/config/account_asteroidsathome.net_boinc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - http://asteroidsathome.net/boinc/ - 471707_439c418d5f6ce7cdbb62c60c6f91e61d - diff --git a/worker/config/account_boinc.bakerlab.org_rosetta.xml b/worker/config/account_boinc.bakerlab.org_rosetta.xml deleted file mode 100644 index 1d7fa18..0000000 --- a/worker/config/account_boinc.bakerlab.org_rosetta.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://boinc.bakerlab.org/rosetta/ - 2348499_186a12cccae17b42df557063fb3dff67 - diff --git a/worker/config/account_einstein.phys.uwm.edu.xml b/worker/config/account_einstein.phys.uwm.edu.xml deleted file mode 100644 index 21ba82a..0000000 --- a/worker/config/account_einstein.phys.uwm.edu.xml +++ /dev/null @@ -1,4 +0,0 @@ - - http://einstein.phys.uwm.edu/ - 1034532_935f4713ce9494060c9654c774c88685 - diff --git a/worker/config/account_lhcathome.cern.ch_lhcathome.xml b/worker/config/account_lhcathome.cern.ch_lhcathome.xml deleted file mode 100644 index fda6e4e..0000000 --- a/worker/config/account_lhcathome.cern.ch_lhcathome.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://lhcathome.cern.ch/lhcathome/ - 787712_e7ec22b6d2c890bd12d55fd56c57e6c1 - diff --git a/worker/config/account_radioactiveathome.org_boinc.xml b/worker/config/account_radioactiveathome.org_boinc.xml deleted file mode 100644 index 96f39c0..0000000 --- a/worker/config/account_radioactiveathome.org_boinc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - http://radioactiveathome.org/boinc/ - 93746_1ff2bebc388ccfd9d09c580e010a6a92 - diff --git a/worker/config/account_rake.boincfast.ru_rakesearch.xml b/worker/config/account_rake.boincfast.ru_rakesearch.xml deleted file mode 100644 index 34eaecc..0000000 --- a/worker/config/account_rake.boincfast.ru_rakesearch.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://rake.boincfast.ru/rakesearch/ - 13528_3f14685c433e226041771669abbc6923 - diff --git a/worker/config/account_root.ithena.net_usr.xml b/worker/config/account_root.ithena.net_usr.xml deleted file mode 100644 index ba76bcb..0000000 --- a/worker/config/account_root.ithena.net_usr.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://root.ithena.net/usr/ - 41373_56d8227b4ca86fbfb58642bad8064baa - diff --git a/worker/config/account_sech.me_boinc_Amicable.xml b/worker/config/account_sech.me_boinc_Amicable.xml deleted file mode 100644 index 31ccf48..0000000 --- a/worker/config/account_sech.me_boinc_Amicable.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://sech.me/boinc/Amicable/ - 44677_6eb84b6eab64f40a10278f088d68968d - diff --git a/worker/config/account_universeathome.pl_universe.xml b/worker/config/account_universeathome.pl_universe.xml deleted file mode 100644 index ecb2b72..0000000 --- a/worker/config/account_universeathome.pl_universe.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://universeathome.pl/universe/ - 225109_1e3c507523811251e5045b1a9cb7ee26 - diff --git a/worker/config/account_www.mlcathome.org_mlcathome.xml b/worker/config/account_www.mlcathome.org_mlcathome.xml deleted file mode 100644 index 4f7a639..0000000 --- a/worker/config/account_www.mlcathome.org_mlcathome.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://www.mlcathome.org/mlcathome/ - 43537_9feaf8e1b00f49e7ac888897521032a9 - diff --git a/worker/config/account_www.sidock.si_sidock.xml b/worker/config/account_www.sidock.si_sidock.xml deleted file mode 100644 index b739716..0000000 --- a/worker/config/account_www.sidock.si_sidock.xml +++ /dev/null @@ -1,4 +0,0 @@ - - https://www.sidock.si/sidock/ - 4335_4ce69ae921efc46321ec5d515b6c94e7 - diff --git a/worker/config/account_www.worldcommunitygrid.org.xml b/worker/config/account_www.worldcommunitygrid.org.xml deleted file mode 100644 index 8a80bd9..0000000 --- a/worker/config/account_www.worldcommunitygrid.org.xml +++ /dev/null @@ -1,4 +0,0 @@ - - http://www.worldcommunitygrid.org/ - 1142050_bff21735a8975927645d3ff2b60e152f -