cyclo-manager 0.2.0.dev7__tar.gz → 0.2.0.dev9__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 (20) hide show
  1. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/PKG-INFO +1 -1
  2. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/models.py +1 -0
  3. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/routers/repos.py +6 -2
  4. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/routers/update.py +2 -2
  5. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/PKG-INFO +1 -1
  6. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager_cli/cli.py +3 -1
  7. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/pyproject.toml +1 -1
  8. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/README.md +0 -0
  9. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/__init__.py +0 -0
  10. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/main.py +0 -0
  11. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_host_agent/routers/__init__.py +0 -0
  12. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/SOURCES.txt +0 -0
  13. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/dependency_links.txt +0 -0
  14. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/entry_points.txt +0 -0
  15. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/requires.txt +0 -0
  16. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager.egg-info/top_level.txt +0 -0
  17. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager_cli/__init__.py +0 -0
  18. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager_cli/config/config.yml +0 -0
  19. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/cyclo_manager_cli/docker/docker-compose.yml +0 -0
  20. {cyclo_manager-0.2.0.dev7 → cyclo_manager-0.2.0.dev9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 0.2.0.dev7
3
+ Version: 0.2.0.dev9
4
4
  Summary: cyclo_manager CLI: pip-installable launcher for cyclo_manager server and UI containers. Run 'cyclo_manager up' to start Docker stack.
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -43,6 +43,7 @@ class RepoUpdateStatus(BaseModel):
43
43
  """Version update status for a single repository."""
44
44
 
45
45
  name: str
46
+ branch: Optional[str] = None
46
47
  current_version: Optional[str] = None
47
48
  latest_version: Optional[str] = None
48
49
  has_update: bool
@@ -176,16 +176,20 @@ async def _repo_update_status(repo_path: Path) -> Optional[RepoUpdateStatus]:
176
176
  if not remote_url or not _is_managed_remote(remote_url):
177
177
  return None
178
178
 
179
+ rc, branch_out, _ = await _git(['rev-parse', '--abbrev-ref', 'HEAD'], cwd=repo_path)
180
+ branch = branch_out.strip() if rc == 0 else None
181
+
179
182
  current = _read_package_xml_version(repo_path)
180
183
  if not current:
181
- return RepoUpdateStatus(name=repo_path.name, has_update=False)
184
+ return RepoUpdateStatus(name=repo_path.name, branch=branch, has_update=False)
182
185
 
183
186
  latest = await _fetch_latest_tag(remote_url)
184
187
  if not latest:
185
- return RepoUpdateStatus(name=repo_path.name, current_version=current, has_update=False)
188
+ return RepoUpdateStatus(name=repo_path.name, branch=branch, current_version=current, has_update=False)
186
189
 
187
190
  return RepoUpdateStatus(
188
191
  name=repo_path.name,
192
+ branch=branch,
189
193
  current_version=current,
190
194
  latest_version=latest,
191
195
  has_update=_is_newer(latest, current),
@@ -84,7 +84,7 @@ def _delayed_exec(cmd: list[str], delay: float = 2.0) -> None:
84
84
  async def reboot_host() -> dict:
85
85
  """Reboot the host machine after returning a response."""
86
86
  loop = asyncio.get_event_loop()
87
- loop.run_in_executor(None, _delayed_exec, ['sudo', 'reboot'])
87
+ loop.run_in_executor(None, _delayed_exec, ['sudo', '/usr/sbin/reboot'])
88
88
  return {'status': 'rebooting'}
89
89
 
90
90
 
@@ -92,5 +92,5 @@ async def reboot_host() -> dict:
92
92
  async def shutdown_host() -> dict:
93
93
  """Shut down the host machine after returning a response."""
94
94
  loop = asyncio.get_event_loop()
95
- loop.run_in_executor(None, _delayed_exec, ['sudo', 'poweroff'])
95
+ loop.run_in_executor(None, _delayed_exec, ['sudo', '/usr/sbin/poweroff'])
96
96
  return {'status': 'shutting_down'}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 0.2.0.dev7
3
+ Version: 0.2.0.dev9
4
4
  Summary: cyclo_manager CLI: pip-installable launcher for cyclo_manager server and UI containers. Run 'cyclo_manager up' to start Docker stack.
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -111,7 +111,9 @@ def _install_sudoers(user: str) -> bool:
111
111
  sudoers_content = (
112
112
  f'{user} ALL=(ALL) NOPASSWD: /usr/bin/cp, '
113
113
  f'/usr/bin/udevadm control --reload-rules, '
114
- f'/usr/bin/udevadm trigger\n'
114
+ f'/usr/bin/udevadm trigger, '
115
+ f'/usr/sbin/reboot, '
116
+ f'/usr/sbin/poweroff\n'
115
117
  )
116
118
  sudoers_file = '/etc/sudoers.d/cyclo_manager'
117
119
  try:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cyclo-manager"
7
- version = "0.2.0.dev7"
7
+ version = "0.2.0.dev9"
8
8
  description = "cyclo_manager CLI: pip-installable launcher for cyclo_manager server and UI containers. Run 'cyclo_manager up' to start Docker stack."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"