spaceforge 0.0.6__py3-none-any.whl → 0.0.8__py3-none-any.whl

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.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.6'
32
- __version_tuple__ = version_tuple = (0, 0, 6)
31
+ __version__ = version = '0.0.8'
32
+ __version_tuple__ = version_tuple = (0, 0, 8)
33
33
 
34
34
  __commit_id__ = commit_id = None
spaceforge/generator.py CHANGED
@@ -84,7 +84,8 @@ class PluginGenerator:
84
84
  self.plugin_class = plugin_class
85
85
  self.plugin_instance = plugin_class()
86
86
  self.plugin_working_directory = (
87
- "/mnt/workspace/plugins/" + plugin_class.__plugin_name__.lower()
87
+ "/mnt/workspace/plugins/"
88
+ + plugin_class.__plugin_name__.lower().replace(" ", "_")
88
89
  )
89
90
  self.config = {
90
91
  "setup_virtual_env": (
spaceforge/plugin.py CHANGED
@@ -8,6 +8,7 @@ import logging
8
8
  import os
9
9
  import subprocess
10
10
  import urllib.request
11
+ from urllib.error import HTTPError
11
12
  from abc import ABC
12
13
  from typing import Any, Dict, List, Optional, Tuple
13
14
 
@@ -48,14 +49,14 @@ class SpaceforgePlugin(ABC):
48
49
  if self.spacelift_domain and isinstance(self.spacelift_domain, str):
49
50
  # this must occur after we check if spacelift domain is false
50
51
  # because the domain could be set but not start with https://
51
- if self.spacelift_domain.startswith("https://"):
52
- if self.spacelift_domain.endswith("/"):
53
- self.spacelift_domain = self.spacelift_domain[:-1]
54
- else:
55
- self.logger.warning(
56
- "SPACELIFT_DOMAIN does not start with https://, api calls will fail."
57
- )
58
- self._api_enabled = False
52
+ # if self.spacelift_domain.startswith("https://"):
53
+ # if self.spacelift_domain.endswith("/"):
54
+ # self.spacelift_domain = self.spacelift_domain[:-1]
55
+ # else:
56
+ # self.logger.warning(
57
+ # "SPACELIFT_DOMAIN does not start with https://, api calls will fail."
58
+ # )
59
+ # self._api_enabled = False
59
60
 
60
61
  if self._api_enabled:
61
62
  self._spacelift_markdown_endpoint = self.spacelift_domain.replace(
@@ -204,8 +205,17 @@ class SpaceforgePlugin(ABC):
204
205
  json.dumps(data).encode("utf-8"),
205
206
  headers,
206
207
  )
207
- with urllib.request.urlopen(req) as response:
208
- resp: Dict[str, Any] = json.loads(response.read().decode("utf-8"))
208
+
209
+ try:
210
+ with urllib.request.urlopen(req) as response:
211
+ resp: Dict[str, Any] = json.loads(response.read().decode("utf-8"))
212
+ except urllib.error.HTTPError as e:
213
+ if hasattr(e, 'read'):
214
+ resp = json.loads(e.read().decode('utf-8'))
215
+ else:
216
+ # We should not get here, but if we do re-raise the exception
217
+ self.logger.error(f"HTTP error occurred: ({e.code}) {e.reason} {e.msg}")
218
+ raise e
209
219
 
210
220
  if "errors" in resp:
211
221
  self.logger.error(f"Error: {resp['errors']}")
@@ -287,8 +297,8 @@ class SpaceforgePlugin(ABC):
287
297
  headers = resp["headers"]
288
298
  headers["Content-Type"] = "text/markdown"
289
299
  headers["Content-Length"] = str(len(markdown))
290
- except urllib.request.HTTPError as e:
291
- self.logger.error(f"HTTP error occurred: {e.code} - {e.reason}")
300
+ except HTTPError as e:
301
+ self.logger.error(f"HTTP error occurred: ({e.code}) {e.reason} {e.msg}")
292
302
  return False
293
303
 
294
304
  # Now we upload the markdown content to the signed URL
@@ -299,13 +309,18 @@ class SpaceforgePlugin(ABC):
299
309
  method="PUT",
300
310
  )
301
311
 
302
- with urllib.request.urlopen(req) as put_response:
303
- if put_response.status != 200:
304
- self.logger.error(
305
- f"Error uploading markdown content: {put_response.status}"
306
- )
307
- return False
308
- self.logger.debug("Markdown content uploaded successfully.")
312
+ try:
313
+ with urllib.request.urlopen(req) as put_response:
314
+ if put_response.status != 200:
315
+ self.logger.error(
316
+ f"Error uploading markdown content: {put_response.status}"
317
+ )
318
+ return False
319
+ self.logger.debug("Markdown content uploaded successfully.")
320
+ except HTTPError as e:
321
+ self.logger.error(f"HTTP error occurred during upload: ({e.code}) {e.reason} {e.msg}")
322
+ return False
323
+
309
324
  return True
310
325
 
311
326
  def add_to_policy_input(self, input_name: str, data: Dict[str, Any]) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spaceforge
3
- Version: 0.0.6
3
+ Version: 0.0.8
4
4
  Summary: A Python framework for building Spacelift plugins
5
5
  Home-page: https://github.com/spacelift-io/plugins
6
6
  Author: Spacelift
@@ -2,11 +2,11 @@ spaceforge/README.md,sha256=8o1Nuyasb4OxX3E7ZycyducOrR4J19bZcHrLvFeoFNg,7730
2
2
  spaceforge/__init__.py,sha256=TU-vvm15dK1ucixNW0V42eTT72x3_hmKSyxP4MC1Occ,589
3
3
  spaceforge/__main__.py,sha256=c3nAw4WBnHXIcfMlRV6Ja7r87pEhSeK-SAqiSYIasIY,643
4
4
  spaceforge/_version.py,sha256=RP_LfUd4ODnrfwn9nam8wB6bR3lM4VwmoRxK08Tkiiw,2155
5
- spaceforge/_version_scm.py,sha256=7MyqQ3iPP2mJruPfRYGCNCq1z7_Nk7c-eyYecYITxsY,704
5
+ spaceforge/_version_scm.py,sha256=j-ar4gJGiWIawqKXhvv9hGJWLfwu0tISl-0GV97B7a0,704
6
6
  spaceforge/cls.py,sha256=lCGtlMv-rFFVnvfFaq36-GRqLiINswLD78amZigZo7I,6068
7
7
  spaceforge/conftest.py,sha256=U-xCavCsgRAQXqflIIOMeq9pcGbeqRviUNkEXgZol8g,2141
8
- spaceforge/generator.py,sha256=-1lO_1bhaM85-aULpPE2TeG4SlaznETG3YfyucKALns,16709
9
- spaceforge/plugin.py,sha256=PdQpBle5eU_N__2eArJgNe2BEnN3mL_SMeM6yjnBtGw,13322
8
+ spaceforge/generator.py,sha256=7tt0zpqrD2pZsoVxQa0BfzBH1ZtGr6o3r_LmpBjrOJk,16739
9
+ spaceforge/plugin.py,sha256=-T52w2akah5ebCTvjEEvbEf_b35zuMUgeTr-9BGNX90,13933
10
10
  spaceforge/runner.py,sha256=aBQQLG8MFVrqCzM0X8HgERYbhLKbmlOHUPKjV7-xvpA,3163
11
11
  spaceforge/schema.json,sha256=scQyV71IlbB5kipAhc880n-PG-FH8BeVk9FWFoA3Wtw,10483
12
12
  spaceforge/test_cls.py,sha256=nXAgbnFnGdFxrtA7vNXiePjNUASuoYW-lEuQGx9WMGs,468
@@ -25,9 +25,9 @@ spaceforge/test_runner_core.py,sha256=eNR9YOwJwv7LsMtNQ4WXXMPIW6RE_A7hUp4bCpzz1R
25
25
  spaceforge/test_runner_execution.py,sha256=BRlOApCmlpjE9YYvqHc8creSRu2vyPubzOCVXv-on0w,5335
26
26
  spaceforge/templates/binary_install.sh.j2,sha256=UjP_kAdvkkATKds2nqk4ouqLhuIfCgM_x0WQIl1hbIo,477
27
27
  spaceforge/templates/ensure_spaceforge_and_run.sh.j2,sha256=g5BldIEve0IkZ-mCzTXfB_rFvyWqUJqymRRaaMrpp0s,550
28
- spaceforge-0.0.6.dist-info/licenses/LICENSE,sha256=wyljRrfnWY2ggQKkSCg3Nw2hxwPMmupopaKs9Kpgys8,1065
29
- spaceforge-0.0.6.dist-info/METADATA,sha256=OwvM8wjFNiRS5kDfYTClgo9H9ZAAMIMOlkCXmqnDMac,16803
30
- spaceforge-0.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- spaceforge-0.0.6.dist-info/entry_points.txt,sha256=qawuuKBSNTGg-njnQnhxxFldFvXYAPej6bF_f3iyQ48,56
32
- spaceforge-0.0.6.dist-info/top_level.txt,sha256=eVw-Lw4Th0oHM8Gx1Y8YetyNgbNbMBU00yWs-kwGeSs,11
33
- spaceforge-0.0.6.dist-info/RECORD,,
28
+ spaceforge-0.0.8.dist-info/licenses/LICENSE,sha256=wyljRrfnWY2ggQKkSCg3Nw2hxwPMmupopaKs9Kpgys8,1065
29
+ spaceforge-0.0.8.dist-info/METADATA,sha256=7as3acsLiULbIUuK11a6lpeQt5K2DmeGiR8WRdxlYEI,16803
30
+ spaceforge-0.0.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ spaceforge-0.0.8.dist-info/entry_points.txt,sha256=qawuuKBSNTGg-njnQnhxxFldFvXYAPej6bF_f3iyQ48,56
32
+ spaceforge-0.0.8.dist-info/top_level.txt,sha256=eVw-Lw4Th0oHM8Gx1Y8YetyNgbNbMBU00yWs-kwGeSs,11
33
+ spaceforge-0.0.8.dist-info/RECORD,,