primitive 0.2.42__tar.gz → 0.2.44__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.
Files changed (113) hide show
  1. {primitive-0.2.42 → primitive-0.2.44}/PKG-INFO +1 -1
  2. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/__about__.py +1 -1
  3. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/agent/actions.py +11 -7
  4. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/graphql/fragments.py +1 -0
  5. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/monitor/actions.py +4 -1
  6. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/actions.py +1 -2
  7. {primitive-0.2.42 → primitive-0.2.44}/.git-hooks/pre-commit +0 -0
  8. {primitive-0.2.42 → primitive-0.2.44}/.gitattributes +0 -0
  9. {primitive-0.2.42 → primitive-0.2.44}/.github/workflows/lint.yml +0 -0
  10. {primitive-0.2.42 → primitive-0.2.44}/.github/workflows/publish.yml +0 -0
  11. {primitive-0.2.42 → primitive-0.2.44}/.github/workflows/pyright.yml +0 -0
  12. {primitive-0.2.42 → primitive-0.2.44}/.gitignore +0 -0
  13. {primitive-0.2.42 → primitive-0.2.44}/.vscode/extensions.json +0 -0
  14. {primitive-0.2.42 → primitive-0.2.44}/.vscode/settings.json +0 -0
  15. {primitive-0.2.42 → primitive-0.2.44}/LICENSE.txt +0 -0
  16. {primitive-0.2.42 → primitive-0.2.44}/Makefile +0 -0
  17. {primitive-0.2.42 → primitive-0.2.44}/README.md +0 -0
  18. {primitive-0.2.42 → primitive-0.2.44}/linux setup.md +0 -0
  19. {primitive-0.2.42 → primitive-0.2.44}/pyproject.toml +0 -0
  20. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/__init__.py +0 -0
  21. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/agent/__init__.py +0 -0
  22. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/agent/commands.py +0 -0
  23. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/agent/runner.py +0 -0
  24. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/agent/uploader.py +0 -0
  25. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/auth/__init__.py +0 -0
  26. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/auth/actions.py +0 -0
  27. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/auth/commands.py +0 -0
  28. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/auth/graphql/__init__.py +0 -0
  29. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/auth/graphql/queries.py +0 -0
  30. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/cli.py +0 -0
  31. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/client.py +0 -0
  32. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/__init__.py +0 -0
  33. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/actions.py +0 -0
  34. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/commands.py +0 -0
  35. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/launch_agents.py +0 -0
  36. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/launch_service.py +0 -0
  37. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/daemons/ui.py +0 -0
  38. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/exec/__init__.py +0 -0
  39. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/exec/actions.py +0 -0
  40. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/exec/commands.py +0 -0
  41. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/exec/interactive.py +0 -0
  42. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/__init__.py +0 -0
  43. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/actions.py +0 -0
  44. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/commands.py +0 -0
  45. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/graphql/__init__.py +0 -0
  46. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/graphql/fragments.py +0 -0
  47. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/graphql/mutations.py +0 -0
  48. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/files/graphql/queries.py +0 -0
  49. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/git/__init__.py +0 -0
  50. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/git/actions.py +0 -0
  51. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/git/commands.py +0 -0
  52. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/git/graphql/__init__.py +0 -0
  53. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/git/graphql/queries.py +0 -0
  54. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/graphql/__init__.py +0 -0
  55. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/graphql/relay.py +0 -0
  56. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/graphql/sdk.py +0 -0
  57. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/graphql/utility_fragments.py +0 -0
  58. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/__init__.py +0 -0
  59. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/actions.py +0 -0
  60. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/android.py +0 -0
  61. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/commands.py +0 -0
  62. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/graphql/__init__.py +0 -0
  63. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/graphql/mutations.py +0 -0
  64. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/graphql/queries.py +0 -0
  65. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/hardware/ui.py +0 -0
  66. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/__init__.py +0 -0
  67. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/actions.py +0 -0
  68. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/commands.py +0 -0
  69. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/graphql/__init__.py +0 -0
  70. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/graphql/fragments.py +0 -0
  71. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/graphql/mutations.py +0 -0
  72. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/jobs/graphql/queries.py +0 -0
  73. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/monitor/commands.py +0 -0
  74. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/__init__.py +0 -0
  75. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/actions.py +0 -0
  76. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/commands.py +0 -0
  77. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/graphql/__init__.py +0 -0
  78. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/graphql/fragments.py +0 -0
  79. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/graphql/mutations.py +0 -0
  80. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/organizations/graphql/queries.py +0 -0
  81. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/__init__.py +0 -0
  82. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/actions.py +0 -0
  83. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/commands.py +0 -0
  84. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/graphql/__init__.py +0 -0
  85. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/graphql/fragments.py +0 -0
  86. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/graphql/mutations.py +0 -0
  87. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/projects/graphql/queries.py +0 -0
  88. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/provisioning/__init__.py +0 -0
  89. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/provisioning/actions.py +0 -0
  90. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/provisioning/graphql/__init__.py +0 -0
  91. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/provisioning/graphql/queries.py +0 -0
  92. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/__init__.py +0 -0
  93. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/commands.py +0 -0
  94. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/graphql/__init__.py +0 -0
  95. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/graphql/fragments.py +0 -0
  96. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/graphql/mutations.py +0 -0
  97. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/reservations/graphql/queries.py +0 -0
  98. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/__init__.py +0 -0
  99. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/actions.py +0 -0
  100. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/auth.py +0 -0
  101. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/cache.py +0 -0
  102. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/chunk_size.py +0 -0
  103. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/config.py +0 -0
  104. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/daemons.py +0 -0
  105. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/exceptions.py +0 -0
  106. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/logging.py +0 -0
  107. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/memory_size.py +0 -0
  108. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/printer.py +0 -0
  109. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/psutil.py +0 -0
  110. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/shell.py +0 -0
  111. {primitive-0.2.42 → primitive-0.2.44}/src/primitive/utils/text.py +0 -0
  112. {primitive-0.2.42 → primitive-0.2.44}/tests/__init__.py +0 -0
  113. {primitive-0.2.42 → primitive-0.2.44}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primitive
3
- Version: 0.2.42
3
+ Version: 0.2.44
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
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Dylan Stein <dylan@primitive.tech>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.2.42"
4
+ __version__ = "0.2.44"
@@ -92,20 +92,24 @@ class Agent(BaseAction):
92
92
  logger.info(
93
93
  f"Setting JobRun {job_run_data.get('job').get('name')} to request_in_progress"
94
94
  )
95
- # we are setting to request_in_progress here which puts a started_at time on the JobRun in the API's database
96
- # any time spent pulling Git repositories, setting up, etc, counts as compute time
97
- job_run_result = self.primitive.jobs.job_run_update(
98
- id=job_run_id, status="request_in_progress"
99
- )
100
95
 
101
- while job_run_data["status"] != "in_progress":
96
+ job_run_status = job_run_data.get("jobRun", {}).get("status", None)
97
+
98
+ while job_run_status != "in_progress":
99
+ if job_run_status == "pending":
100
+ # we are setting to request_in_progress here which puts a started_at time on the JobRun in the API's database
101
+ # any time spent pulling Git repositories, setting up, etc, counts as compute time
102
+ self.primitive.jobs.job_run_update(
103
+ id=job_run_id, status="request_in_progress"
104
+ )
102
105
  logger.info(
103
- f"Waiting for JobRun {job_run_data.get('name')} to be in_progress"
106
+ f"Waiting for JobRun {job_run_data.get('name')} to be in_progress. Current status: {job_run_status}"
104
107
  )
105
108
  sleep(1)
106
109
  job_run_result = self.primitive.jobs.get_job_run(id=job_run_id)
107
110
  if job_run_result.data is not None:
108
111
  job_run_data = job_run_result.data.get("jobRun", {})
112
+ job_run_status = job_run_data.get("status", None)
109
113
 
110
114
  runner = Runner(
111
115
  primitive=self.primitive,
@@ -24,6 +24,7 @@ fragment HardwareFragment on Hardware {
24
24
  pk
25
25
  status
26
26
  reservationNumber
27
+ reason
27
28
  createdBy {
28
29
  username
29
30
  }
@@ -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.error("No job runs found for the given reservation ID.")
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