From 418ab9dea9151454d7b0bf42c5c3ba07b8600d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20=C3=85kesson?= Date: Mon, 2 Oct 2023 11:06:12 +0200 Subject: [PATCH 1/8] Update result.py Added missing schema objects --- src/boinc_client/models/result.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/boinc_client/models/result.py b/src/boinc_client/models/result.py index 3478fbb..d5de2c1 100644 --- a/src/boinc_client/models/result.py +++ b/src/boinc_client/models/result.py @@ -43,6 +43,8 @@ class Result(Schema): state = fields.Int() version_num = fields.Int() wu_name = fields.Str() + report_immediately = fields.Bool(required=False, missing=None) + resources = fields.Str(required=False, missing=None) @pre_load def _set_ready(self, data, **kwargs): From e5e552f11dfb2a47c44402000aaa2113820b470c Mon Sep 17 00:00:00 2001 From: akeda Date: Thu, 5 Oct 2023 21:37:18 +0200 Subject: [PATCH 2/8] too_large field in ActiveTask schema --- src/boinc_client/models/result.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/boinc_client/models/result.py b/src/boinc_client/models/result.py index d5de2c1..2a28712 100644 --- a/src/boinc_client/models/result.py +++ b/src/boinc_client/models/result.py @@ -22,6 +22,7 @@ class ActiveTask(Schema): swap_size = fields.Float() working_set_size = fields.Float() working_set_size_smoothed = fields.Float() + too_large = fields.Bool(required=False, missing=None) class Result(Schema): From f6f289e635c46fa44baecdedf5af802cc55f1ea3 Mon Sep 17 00:00:00 2001 From: akeda Date: Tue, 10 Oct 2023 21:43:41 +0200 Subject: [PATCH 3/8] field in results suspended_via_gui --- src/boinc_client/models/result.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/boinc_client/models/result.py b/src/boinc_client/models/result.py index 2a28712..9fe8452 100644 --- a/src/boinc_client/models/result.py +++ b/src/boinc_client/models/result.py @@ -46,6 +46,7 @@ class Result(Schema): wu_name = fields.Str() report_immediately = fields.Bool(required=False, missing=None) resources = fields.Str(required=False, missing=None) + suspended_via_gui = fields.Bool(required=False, missing=None) @pre_load def _set_ready(self, data, **kwargs): From 5fe4914b93be7c94074060366eb39e63deb4da4e Mon Sep 17 00:00:00 2001 From: akeda Date: Tue, 10 Oct 2023 22:42:31 +0200 Subject: [PATCH 4/8] simple_gui_info working --- src/boinc_client/models/simple_gui_info.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/boinc_client/models/simple_gui_info.py b/src/boinc_client/models/simple_gui_info.py index e2f4c49..97f7365 100644 --- a/src/boinc_client/models/simple_gui_info.py +++ b/src/boinc_client/models/simple_gui_info.py @@ -4,8 +4,18 @@ from boinc_client.models.result import Result +# Update the ProjectState schema to include the missing fields +class UpdatedProjectState(ProjectState): + verify_files_on_app_start = fields.Bool(required=False, missing=None) + attached_via_acct_mgr = fields.Bool(required=False, missing=None) + venue = fields.Str(required=False, missing=None) + no_rsc_pref = fields.Str(required=False, missing=None) + trickle_up_pending = fields.Bool(required=False, missing=None) + + class GuiInfo(Schema): - projects = fields.Nested(ProjectState(many=True), data_key="project") + # Use the updated schema for projects + projects = fields.Nested(UpdatedProjectState(many=True), data_key="project") results = fields.Nested(Result(many=True), data_key="result") From 54c6b61ce60318149da6b96dd2334b1881dfe7f3 Mon Sep 17 00:00:00 2001 From: akeda Date: Tue, 10 Oct 2023 23:08:36 +0200 Subject: [PATCH 5/8] a little bit closer --- src/boinc_client/models/client_state.py | 16 +++++++++++--- src/boinc_client/models/project_status.py | 26 +++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/boinc_client/models/client_state.py b/src/boinc_client/models/client_state.py index 39b4ed5..18b8a05 100644 --- a/src/boinc_client/models/client_state.py +++ b/src/boinc_client/models/client_state.py @@ -1,4 +1,4 @@ -from marshmallow import Schema, fields, post_load, pre_load +from marshmallow import Schema, fields, post_load, pre_load, EXCLUDE from boinc_client.models.helpers import ( create_lists, @@ -43,6 +43,8 @@ class AppDetails(Schema): class AppFileRef(Schema): + class Meta: + unknown = EXCLUDE copy_file = fields.Bool() file_name = fields.Str() main_program = fields.Bool() @@ -58,15 +60,19 @@ def _set_copy_file(self, data, **kwargs): data["copy_file"] = "copy_file" in data return data - class AppVersion(Schema): + class Meta: + unknown = EXCLUDE api_version = fields.Str() app_name = fields.Str() avg_ncpus = fields.Float() - file_ref = fields.Nested(AppFileRef(many=True)) + file_ref = fields.Nested(AppFileRef(many=True), required=False, missing=None) flops = fields.Float() platform = fields.Str() version_num = fields.Int() + plan_class = fields.Str(allow_none=True) + is_wrapper = fields.Bool(allow_none=True) + cmdline = fields.Str(allow_none=True) class WorkUnit(Schema): @@ -79,6 +85,8 @@ class WorkUnit(Schema): rsc_fpops_est = fields.Float() rsc_memory_bound = fields.Float() version_num = fields.Int() + plan_class = fields.Str(allow_none=True) + cmdline = fields.Str(allow_none=True) class GlobalPreferences(Schema): @@ -126,6 +134,8 @@ def _a_replace_none_string(self, data, **kwargs): class State(Schema): + class Meta: + unknown = EXCLUDE app_versions = fields.Nested( AppVersion(many=True), data_key="app_version", allow_none=True ) diff --git a/src/boinc_client/models/project_status.py b/src/boinc_client/models/project_status.py index 5684231..330161d 100644 --- a/src/boinc_client/models/project_status.py +++ b/src/boinc_client/models/project_status.py @@ -8,6 +8,28 @@ set_bools, ) +from boinc_client.models.additional_fields import ( + scheduler_rpc_pending, + suspended_via_gui, + dont_request_more_work, + ended, + project_files_downloaded_time, + ready_to_report, + got_server_ack, + final_cpu_time, + final_elapsed_time, + state, + exit_status, + signal, + project_suspended_via_gui, + edf_scheduled, + scheduler_rpc_pending, + coproc_missing, + runtime_outlier, + project_backend +) + + class RscBackoffTime(Schema): name = fields.Str() @@ -76,6 +98,10 @@ class ProjectState(Schema): user_name = fields.Str(allow_none=True) user_total_credit = fields.Float() userid = fields.Int() + no_rsc_pref = fields.Bool(allow_none=True) + venue = fields.Str(allow_none=True) + verify_files_on_app_start = fields.Bool(allow_none=True) + attached_via_acct_mgr = fields.Bool(allow_none=True) @pre_load def _a_create_keys(self, data, **kwargs): From b042463828b78fb53e1e7629b26463c49be362ea Mon Sep 17 00:00:00 2001 From: akeda Date: Wed, 11 Oct 2023 13:34:11 +0200 Subject: [PATCH 6/8] additional fields --- src/boinc_client/models/additional_fields.py | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/boinc_client/models/additional_fields.py diff --git a/src/boinc_client/models/additional_fields.py b/src/boinc_client/models/additional_fields.py new file mode 100644 index 0000000..b9db17d --- /dev/null +++ b/src/boinc_client/models/additional_fields.py @@ -0,0 +1,26 @@ +from marshmallow import fields + +# Additional fields for ProjectState +scheduler_rpc_pending = fields.Bool() +suspended_via_gui = fields.Bool() +dont_request_more_work = fields.Bool() +ended = fields.Bool() +project_files_downloaded_time = fields.Float() + +# Additional fields for Result +ready_to_report = fields.Bool() +got_server_ack = fields.Bool() +final_cpu_time = fields.Float() +final_elapsed_time = fields.Float() +state = fields.Int() +exit_status = fields.Int() +signal = fields.Int() +suspended_via_gui = fields.Bool() +project_suspended_via_gui = fields.Bool() +edf_scheduled = fields.Bool() +scheduler_rpc_pending = fields.Bool() +coproc_missing = fields.Bool() +runtime_outlier = fields.Bool() + +# Other additional fields +project_backend = fields.Str() From 7a24e0da5e3e058881477d447c004748e69c8ff6 Mon Sep 17 00:00:00 2001 From: akeda Date: Wed, 11 Oct 2023 13:37:27 +0200 Subject: [PATCH 7/8] commented out additional fields --- src/boinc_client/models/project_status.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/boinc_client/models/project_status.py b/src/boinc_client/models/project_status.py index 330161d..a8f9829 100644 --- a/src/boinc_client/models/project_status.py +++ b/src/boinc_client/models/project_status.py @@ -8,7 +8,7 @@ set_bools, ) -from boinc_client.models.additional_fields import ( +""" from boinc_client.models.additional_fields import ( scheduler_rpc_pending, suspended_via_gui, dont_request_more_work, @@ -27,7 +27,7 @@ coproc_missing, runtime_outlier, project_backend -) +) """ From 1bc4e06d2ce811006f03b488f730c0c38eb12e05 Mon Sep 17 00:00:00 2001 From: akeda Date: Wed, 11 Oct 2023 14:09:01 +0200 Subject: [PATCH 8/8] old-* in gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 632f40a..8086f33 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,6 @@ dist/ # Test Reports .coverage -cov/ \ No newline at end of file +cov/ + +old_* \ No newline at end of file