primitive 0.2.43__tar.gz → 0.2.45__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {primitive-0.2.43 → primitive-0.2.45}/PKG-INFO +1 -1
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/__about__.py +1 -1
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/agent/actions.py +12 -6
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/graphql/fragments.py +1 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/monitor/actions.py +4 -1
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/actions.py +1 -2
- {primitive-0.2.43 → primitive-0.2.45}/.git-hooks/pre-commit +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.gitattributes +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.github/workflows/lint.yml +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.github/workflows/publish.yml +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.github/workflows/pyright.yml +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.gitignore +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.vscode/extensions.json +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/.vscode/settings.json +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/LICENSE.txt +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/Makefile +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/README.md +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/linux setup.md +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/pyproject.toml +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/agent/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/agent/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/agent/runner.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/agent/uploader.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/auth/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/auth/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/auth/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/auth/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/auth/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/cli.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/client.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/launch_agents.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/launch_service.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/daemons/ui.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/exec/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/exec/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/exec/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/exec/interactive.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/graphql/fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/files/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/git/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/git/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/git/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/git/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/git/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/graphql/relay.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/graphql/sdk.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/graphql/utility_fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/android.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/hardware/ui.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/graphql/fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/jobs/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/monitor/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/graphql/fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/organizations/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/graphql/fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/projects/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/provisioning/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/provisioning/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/provisioning/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/provisioning/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/commands.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/graphql/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/graphql/fragments.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/graphql/mutations.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/reservations/graphql/queries.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/actions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/auth.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/cache.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/chunk_size.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/config.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/daemons.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/exceptions.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/logging.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/memory_size.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/printer.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/psutil.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/shell.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/src/primitive/utils/text.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/tests/__init__.py +0 -0
- {primitive-0.2.43 → primitive-0.2.45}/uv.lock +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: primitive
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.45
|
4
4
|
Project-URL: Documentation, https://github.com//primitivecorp/primitive-cli#readme
|
5
5
|
Project-URL: Issues, https://github.com//primitivecorp/primitive-cli/issues
|
6
6
|
Project-URL: Source, https://github.com//primitivecorp/primitive-cli
|
@@ -96,7 +96,14 @@ class Agent(BaseAction):
|
|
96
96
|
job_run_status = job_run_data.get("jobRun", {}).get("status", None)
|
97
97
|
|
98
98
|
while job_run_status != "in_progress":
|
99
|
-
if job_run_status == "
|
99
|
+
if job_run_status == "request_completed":
|
100
|
+
logger.error(
|
101
|
+
f"JobRun {job_run_data.get('name')} is already completed. Exiting."
|
102
|
+
)
|
103
|
+
if RUNNING_IN_CONTAINER:
|
104
|
+
logger.info("Running in container, exiting after job run")
|
105
|
+
return
|
106
|
+
elif job_run_status == "pending":
|
100
107
|
# we are setting to request_in_progress here which puts a started_at time on the JobRun in the API's database
|
101
108
|
# any time spent pulling Git repositories, setting up, etc, counts as compute time
|
102
109
|
self.primitive.jobs.job_run_update(
|
@@ -111,12 +118,11 @@ class Agent(BaseAction):
|
|
111
118
|
job_run_data = job_run_result.data.get("jobRun", {})
|
112
119
|
job_run_status = job_run_data.get("status", None)
|
113
120
|
|
114
|
-
runner = Runner(
|
115
|
-
primitive=self.primitive,
|
116
|
-
job_run=job_run_data,
|
117
|
-
)
|
118
|
-
|
119
121
|
try:
|
122
|
+
runner = Runner(
|
123
|
+
primitive=self.primitive,
|
124
|
+
job_run=job_run_data,
|
125
|
+
)
|
120
126
|
runner.setup()
|
121
127
|
except Exception as exception:
|
122
128
|
logger.exception(
|
@@ -115,6 +115,9 @@ class Monitor(BaseAction):
|
|
115
115
|
and (active_reservation_id is not None)
|
116
116
|
and (previous_reservation_id == active_reservation_id)
|
117
117
|
):
|
118
|
+
logger.info(
|
119
|
+
f"Reason: {active_reservation_data.get('reason', '')}"
|
120
|
+
)
|
118
121
|
self.primitive.provisioning.add_reservation_authorized_keys(
|
119
122
|
reservation_id=active_reservation_id
|
120
123
|
)
|
@@ -127,7 +130,7 @@ class Monitor(BaseAction):
|
|
127
130
|
reservation_id=active_reservation_id
|
128
131
|
)
|
129
132
|
)
|
130
|
-
job_run_id = job_run_data.get("id")
|
133
|
+
job_run_id = job_run_data.get("id", None)
|
131
134
|
|
132
135
|
# Golden state for normal reservation
|
133
136
|
if not job_run_id and active_reservation_id:
|
@@ -189,14 +189,13 @@ class Reservations(BaseAction):
|
|
189
189
|
)
|
190
190
|
|
191
191
|
while job_runs_for_reservation is None or job_runs_for_reservation.data is None:
|
192
|
-
logger.error("Error fetching job runs.")
|
193
192
|
sleep_amount = 5
|
194
193
|
logger.info(f"Error fetching job runs... [sleeping {sleep_amount} seconds]")
|
195
194
|
sleep(sleep_amount)
|
196
195
|
continue
|
197
196
|
|
198
197
|
if not job_runs_for_reservation.data["jobRuns"]["edges"]:
|
199
|
-
logger.
|
198
|
+
logger.info("No job runs found for the given reservation ID.")
|
200
199
|
return {}
|
201
200
|
|
202
201
|
return job_runs_for_reservation.data["jobRuns"]["edges"][0]["node"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|