Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ dist/

# Test Reports
.coverage
cov/
cov/

old_*
26 changes: 26 additions & 0 deletions src/boinc_client/models/additional_fields.py
Original file line number Diff line number Diff line change
@@ -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()
16 changes: 13 additions & 3 deletions src/boinc_client/models/client_state.py
Original file line number Diff line number Diff line change
@@ -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,
Expand Down Expand Up @@ -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()
Expand All @@ -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):
Expand All @@ -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):
Expand Down Expand Up @@ -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
)
Expand Down
26 changes: 26 additions & 0 deletions src/boinc_client/models/project_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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):
Expand Down
4 changes: 4 additions & 0 deletions src/boinc_client/models/result.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -43,6 +44,9 @@ 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)
suspended_via_gui = fields.Bool(required=False, missing=None)

@pre_load
def _set_ready(self, data, **kwargs):
Expand Down
12 changes: 11 additions & 1 deletion src/boinc_client/models/simple_gui_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")


Expand Down