cyclo-manager 1.0.0.dev8__tar.gz → 1.0.0.dev10__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.
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/PKG-INFO +1 -1
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/routers/repos.py +14 -3
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/routers/update.py +1 -5
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/PKG-INFO +1 -1
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager_cli/cli.py +4 -1
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/pyproject.toml +1 -1
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/README.md +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/__init__.py +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/main.py +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/models.py +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_host_agent/routers/__init__.py +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/SOURCES.txt +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/dependency_links.txt +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/entry_points.txt +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/requires.txt +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/top_level.txt +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager_cli/__init__.py +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager_cli/config/config.yml +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager_cli/docker/docker-compose.yml +0 -0
- {cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cyclo-manager
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev10
|
|
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
|
|
@@ -41,6 +41,7 @@ from fastapi import APIRouter, HTTPException, status
|
|
|
41
41
|
router = APIRouter(prefix='/repos', tags=['repos'])
|
|
42
42
|
|
|
43
43
|
GIT_TIMEOUT = 120.0
|
|
44
|
+
GIT_REMOTE_TIMEOUT = 5.0
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
def _resolve_workspace() -> Path:
|
|
@@ -123,7 +124,11 @@ async def _ensure_allowed_branch(repo_path: Path) -> None:
|
|
|
123
124
|
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=detail)
|
|
124
125
|
|
|
125
126
|
|
|
126
|
-
async def _git(
|
|
127
|
+
async def _git(
|
|
128
|
+
args: list[str],
|
|
129
|
+
cwd: Optional[Path] = None,
|
|
130
|
+
timeout: float = GIT_TIMEOUT,
|
|
131
|
+
) -> tuple[int, str, str]:
|
|
127
132
|
proc = await asyncio.create_subprocess_exec(
|
|
128
133
|
'git', *args,
|
|
129
134
|
cwd=str(cwd) if cwd else None,
|
|
@@ -131,7 +136,7 @@ async def _git(args: list[str], cwd: Optional[Path] = None) -> tuple[int, str, s
|
|
|
131
136
|
stderr=asyncio.subprocess.PIPE,
|
|
132
137
|
)
|
|
133
138
|
try:
|
|
134
|
-
stdout, stderr = await asyncio.wait_for(proc.communicate(), timeout=
|
|
139
|
+
stdout, stderr = await asyncio.wait_for(proc.communicate(), timeout=timeout)
|
|
135
140
|
except asyncio.TimeoutError:
|
|
136
141
|
proc.kill()
|
|
137
142
|
await proc.wait()
|
|
@@ -195,7 +200,13 @@ def _read_package_xml_version(repo_path: Path) -> Optional[str]:
|
|
|
195
200
|
|
|
196
201
|
|
|
197
202
|
async def _fetch_latest_tag(remote_url: str) -> Optional[str]:
|
|
198
|
-
|
|
203
|
+
try:
|
|
204
|
+
rc, out, _ = await _git(
|
|
205
|
+
['ls-remote', '--tags', remote_url],
|
|
206
|
+
timeout=GIT_REMOTE_TIMEOUT,
|
|
207
|
+
)
|
|
208
|
+
except asyncio.TimeoutError:
|
|
209
|
+
return None
|
|
199
210
|
if rc != 0:
|
|
200
211
|
return None
|
|
201
212
|
tags = []
|
|
@@ -26,7 +26,6 @@ from fastapi import APIRouter, HTTPException, status
|
|
|
26
26
|
router = APIRouter(prefix='/system', tags=['system'])
|
|
27
27
|
|
|
28
28
|
_update_status: dict = {'phase': 'idle', 'output': '', 'error': ''}
|
|
29
|
-
MAX_OUTPUT_CHARS = 120_000
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
@router.get('/version')
|
|
@@ -47,15 +46,12 @@ async def _run_update() -> None:
|
|
|
47
46
|
)
|
|
48
47
|
stdout, stderr = await asyncio.wait_for(proc.communicate(), timeout=600)
|
|
49
48
|
out = (stdout.decode(errors='replace') + stderr.decode(errors='replace')).strip()
|
|
50
|
-
|
|
51
|
-
out = out[-MAX_OUTPUT_CHARS:]
|
|
49
|
+
_update_status['output'] = out
|
|
52
50
|
if proc.returncode != 0:
|
|
53
51
|
_update_status['phase'] = 'error'
|
|
54
|
-
_update_status['output'] = out
|
|
55
52
|
_update_status['error'] = f'cyclo_manager update failed (exit {proc.returncode})'
|
|
56
53
|
else:
|
|
57
54
|
_update_status['phase'] = 'done'
|
|
58
|
-
_update_status['output'] = ''
|
|
59
55
|
except asyncio.TimeoutError:
|
|
60
56
|
_update_status['phase'] = 'error'
|
|
61
57
|
_update_status['error'] = 'cyclo_manager update timed out'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cyclo-manager
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev10
|
|
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
|
|
@@ -284,7 +284,10 @@ WantedBy=multi-user.target
|
|
|
284
284
|
print(f'Failed to install host agent service: {e}', file=sys.stderr)
|
|
285
285
|
return 1
|
|
286
286
|
except FileNotFoundError:
|
|
287
|
-
print(
|
|
287
|
+
print(
|
|
288
|
+
'Required command not found. Install the host agent service manually.',
|
|
289
|
+
file=sys.stderr,
|
|
290
|
+
)
|
|
288
291
|
return 1
|
|
289
292
|
|
|
290
293
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cyclo-manager"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.dev10"
|
|
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"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cyclo_manager-1.0.0.dev8 → cyclo_manager-1.0.0.dev10}/cyclo_manager_cli/docker/docker-compose.yml
RENAMED
|
File without changes
|
|
File without changes
|