edge-containers-cli 4.4.3__tar.gz → 4.4.5__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 (108) hide show
  1. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/PKG-INFO +2 -1
  2. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/pyproject.toml +4 -1
  3. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/_version.py +16 -3
  4. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cli.py +1 -1
  5. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/argo_commands.py +10 -2
  6. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/k8s_commands.py +1 -1
  7. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/git.py +17 -0
  8. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/PKG-INFO +2 -1
  9. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/requires.txt +1 -0
  10. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/argocd.yaml +2 -0
  11. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.copier-answers.yml +0 -0
  12. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.devcontainer/devcontainer.json +0 -0
  13. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.dockerignore +0 -0
  14. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/CONTRIBUTING.md +0 -0
  15. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  16. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  17. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  18. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/actions/install_requirements/action.yml +0 -0
  19. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/dependabot.yml +0 -0
  20. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/pages/index.html +0 -0
  21. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/pages/make_switcher.py +0 -0
  22. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_check.yml +0 -0
  23. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_container.yml +0 -0
  24. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_dist.yml +0 -0
  25. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_pypi.yml +0 -0
  26. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_release.yml +0 -0
  27. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_test.yml +0 -0
  28. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/_tox.yml +0 -0
  29. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.github/workflows/ci.yml +0 -0
  30. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.gitignore +0 -0
  31. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.pre-commit-config.yaml +0 -0
  32. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.vscode/extensions.json +0 -0
  33. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.vscode/launch.json +0 -0
  34. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.vscode/settings.json +0 -0
  35. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/.vscode/tasks.json +0 -0
  36. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/Dockerfile +0 -0
  37. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/LICENSE +0 -0
  38. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/README.md +0 -0
  39. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/conf.py +0 -0
  40. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  41. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst +0 -0
  42. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/explanations/decisions.rst +0 -0
  43. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/build-docs.rst +0 -0
  44. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/contribute.rst +0 -0
  45. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/lint.rst +0 -0
  46. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/make-release.rst +0 -0
  47. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/pin-requirements.rst +0 -0
  48. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/run-tests.rst +0 -0
  49. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/static-analysis.rst +0 -0
  50. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/test-container.rst +0 -0
  51. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/how-to/update-tools.rst +0 -0
  52. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/index.rst +0 -0
  53. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/reference/standards.rst +0 -0
  54. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/developer/tutorials/dev-install.rst +0 -0
  55. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/genindex.rst +0 -0
  56. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/images/dls-favicon.ico +0 -0
  57. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/images/dls-logo.svg +0 -0
  58. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/images/ec-logs.png +0 -0
  59. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/images/ec-web.png +0 -0
  60. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/index.rst +0 -0
  61. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/user/explanations/docs-structure.rst +0 -0
  62. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/user/how-to/run-container.rst +0 -0
  63. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/user/index.rst +0 -0
  64. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/user/reference/api.rst +0 -0
  65. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/docs/user/tutorials/installation.rst +0 -0
  66. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/setup.cfg +0 -0
  67. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/__init__.py +0 -0
  68. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/__main__.py +0 -0
  69. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/autocomplete.py +0 -0
  70. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/backend.py +0 -0
  71. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/__init__.py +0 -0
  72. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/commands.py +0 -0
  73. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/demo_commands.py +0 -0
  74. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/helm.py +0 -0
  75. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/monitor.py +0 -0
  76. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/cmds/monitor.tcss +0 -0
  77. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/definitions.py +0 -0
  78. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/globals.py +0 -0
  79. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/logging.py +0 -0
  80. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/shell.py +0 -0
  81. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli/utils.py +0 -0
  82. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/SOURCES.txt +0 -0
  83. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/dependency_links.txt +0 -0
  84. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/entry_points.txt +0 -0
  85. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/src/edge_containers_cli.egg-info/top_level.txt +0 -0
  86. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/__init__.py +0 -0
  87. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/conftest.py +0 -0
  88. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-deployment/apps/values.yaml +0 -0
  89. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-01/Chart.yaml +0 -0
  90. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-01/config/ioc.db +0 -0
  91. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-01/config/ioc.yaml +0 -0
  92. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-01/templates/configmap.yaml +0 -0
  93. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-01/values.yaml +0 -0
  94. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-02/Chart.yaml +0 -0
  95. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/bl01t-ea-test-02/values.yaml +0 -0
  96. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/dls-aravis/Chart.yaml +0 -0
  97. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/dls-aravis/config/ioc.yaml +0 -0
  98. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/dls-aravis/templates/configmap.yaml +0 -0
  99. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/dls-aravis/values.yaml +0 -0
  100. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/bl01t-services/services/values.yaml +0 -0
  101. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/cli.yaml +0 -0
  102. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/k8s.yaml +0 -0
  103. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/data/yaml.yaml +0 -0
  104. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/test_argocd.py +0 -0
  105. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/test_cli.py +0 -0
  106. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/test_demo.py +0 -0
  107. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/test_k8s.py +0 -0
  108. {edge_containers_cli-4.4.3 → edge_containers_cli-4.4.5}/tests/test_unit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edge-containers-cli
3
- Version: 4.4.3
3
+ Version: 4.4.5
4
4
  Summary: CLI for deploying and managing epics containers IOCs and services
5
5
  Author-email: Giles Knap <giles.knap@gmail.com>
6
6
  License: Apache License
@@ -221,6 +221,7 @@ Requires-Dist: ruamel.yaml
221
221
  Requires-Dist: jinja2
222
222
  Requires-Dist: polars-lts-cpu
223
223
  Requires-Dist: textual
224
+ Requires-Dist: urllib3<2.4.0
224
225
  Provides-Extra: dev
225
226
  Requires-Dist: copier; extra == "dev"
226
227
  Requires-Dist: pipdeptree; extra == "dev"
@@ -21,6 +21,9 @@ dependencies = [
21
21
  "jinja2",
22
22
  "polars-lts-cpu",
23
23
  "textual",
24
+ # urllib>=2.4.0 fails to validate DLS Kubernetes certificates
25
+ # https://github.com/kubernetes-client/python/issues/2394
26
+ "urllib3<2.4.0",
24
27
  ]
25
28
 
26
29
  dynamic = ["version"]
@@ -58,7 +61,7 @@ version_file = "src/edge_containers_cli/_version.py"
58
61
 
59
62
  [tool.pyright]
60
63
  typeCheckingMode = "standard"
61
- reportMissingImports = false # Ignore missing stubs in imported modules
64
+ reportMissingImports = false # Ignore missing stubs in imported modules
62
65
 
63
66
  [tool.pytest.ini_options]
64
67
  # Run pytest with all our checkers, and don't spam us with massive tracebacks on error
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '4.4.3'
21
- __version_tuple__ = version_tuple = (4, 4, 3)
31
+ __version__ = version = '4.4.5'
32
+ __version_tuple__ = version_tuple = (4, 4, 5)
33
+
34
+ __commit_id__ = commit_id = 'g6ed12beec'
@@ -99,7 +99,7 @@ def deploy(
99
99
  def confirm_callback(svc_version):
100
100
  confirmation(
101
101
  f"Deploy {service_name.lower()} "
102
- f"of version `{svc_version}` to target `{backend.commands.target}`",
102
+ f" version `{svc_version}` to target `{backend.commands.target}`",
103
103
  yes,
104
104
  )
105
105
 
@@ -21,7 +21,7 @@ from edge_containers_cli.cmds.commands import (
21
21
  ServicesSchema,
22
22
  )
23
23
  from edge_containers_cli.definitions import ECContext
24
- from edge_containers_cli.git import del_key, set_value
24
+ from edge_containers_cli.git import check_exists, del_key, set_value
25
25
  from edge_containers_cli.logging import log
26
26
  from edge_containers_cli.shell import ShellError, shell
27
27
  from edge_containers_cli.utils import YamlTypes
@@ -142,9 +142,17 @@ class ArgoCommands(Commands):
142
142
  push_remove_key(self.target, f"ec_services.{service_name}")
143
143
 
144
144
  def deploy(self, service_name, version, args, confirm_callback=None) -> None:
145
- latest_version = self._get_latest_version(service_name)
146
145
  if not version:
146
+ latest_version = self._get_latest_version(service_name)
147
147
  version = latest_version
148
+
149
+ service_path = Path(globals.SERVICES_DIR) / service_name
150
+ if not check_exists(service_path, self.repo, version):
151
+ raise CommandError(
152
+ f"Service '{service_name}' not found in repo "
153
+ f"'{self.repo}' with branch/tag '{version}'"
154
+ )
155
+
148
156
  if confirm_callback:
149
157
  confirm_callback(version)
150
158
  deploy_dict: YamlTypes = {"enabled": True, "targetRevision": version}
@@ -52,8 +52,8 @@ class K8sCommands(Commands):
52
52
  )
53
53
 
54
54
  def deploy(self, service_name, version, args, confirm_callback=None):
55
- latest_version = self._get_latest_version(service_name)
56
55
  if not version:
56
+ latest_version = self._get_latest_version(service_name)
57
57
  version = latest_version
58
58
 
59
59
  chart = Helm(
@@ -234,3 +234,20 @@ def list_instances(
234
234
  sorted_list = natsorted(svc_list)[::-1]
235
235
  services_df = polars.from_dict({"version": sorted_list})
236
236
  return services_df
237
+
238
+
239
+ def check_exists(path: Path, repo: str, tag: str) -> bool:
240
+ """
241
+ Check if a path exists within the given repository and tag/branch.
242
+ """
243
+ with new_workdir() as working_dir:
244
+ try:
245
+ shell.run_command(f"git clone {repo} -b {tag} {working_dir}")
246
+ except ShellError:
247
+ log.debug(f"Branch or tag '{tag}' does not exist in repo '{repo}'.")
248
+ return False
249
+ full_path = Path(working_dir) / path
250
+ if not full_path.exists():
251
+ log.debug(f"'{path}' does not exist in repo '{repo}', tag {tag}.")
252
+ return False
253
+ return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edge-containers-cli
3
- Version: 4.4.3
3
+ Version: 4.4.5
4
4
  Summary: CLI for deploying and managing epics containers IOCs and services
5
5
  Author-email: Giles Knap <giles.knap@gmail.com>
6
6
  License: Apache License
@@ -221,6 +221,7 @@ Requires-Dist: ruamel.yaml
221
221
  Requires-Dist: jinja2
222
222
  Requires-Dist: polars-lts-cpu
223
223
  Requires-Dist: textual
224
+ Requires-Dist: urllib3<2.4.0
224
225
  Provides-Extra: dev
225
226
  Requires-Dist: copier; extra == "dev"
226
227
  Requires-Dist: pipdeptree; extra == "dev"
@@ -5,6 +5,7 @@ ruamel.yaml
5
5
  jinja2
6
6
  polars-lts-cpu
7
7
  textual
8
+ urllib3<2.4.0
8
9
 
9
10
  [dev]
10
11
  copier
@@ -64,6 +64,8 @@ deploy:
64
64
  - cmd: git ls-tree -r 2.0
65
65
  rsp: |
66
66
  100644 blob b7b39845b55fb4d45d58ba86ef4527917877d556 services/bl01t-ea-test-01/Chart.yaml
67
+ - cmd: git clone https://github.com/epics-containers/bl01t-services -b 1.0 /tmp/ec_tests
68
+ rsp: ""
67
69
  - cmd: argocd app get namespace/bl01t
68
70
  rsp: |
69
71
  spec: