cyclo-manager 0.2.1.dev0__tar.gz → 0.3.0__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.1.dev0 → cyclo_manager-0.3.0}/PKG-INFO +5 -4
  2. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/README.md +4 -3
  3. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/main.py +2 -1
  4. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/PKG-INFO +5 -4
  5. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager_cli/__init__.py +1 -1
  6. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager_cli/cli.py +14 -5
  7. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager_cli/docker/docker-compose.yml +2 -2
  8. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/pyproject.toml +1 -1
  9. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/setup.cfg +0 -1
  10. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/__init__.py +0 -0
  11. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/models.py +0 -0
  12. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/routers/__init__.py +0 -0
  13. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/routers/repos.py +0 -0
  14. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_host_agent/routers/update.py +0 -0
  15. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/SOURCES.txt +0 -0
  16. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/dependency_links.txt +0 -0
  17. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/entry_points.txt +0 -0
  18. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/requires.txt +0 -0
  19. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager.egg-info/top_level.txt +0 -0
  20. {cyclo_manager-0.2.1.dev0 → cyclo_manager-0.3.0}/cyclo_manager_cli/config/config.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 0.2.1.dev0
3
+ Version: 0.3.0
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
@@ -90,7 +90,8 @@ python3 -m cyclo_manager_cli.cli up
90
90
  | `cyclo_manager up` | Install/refresh **cyclo_host_agent** (systemd unit, socket dir, sudoers), then `docker compose up -d` for **API + UI**, then `docker compose create --no-recreate` for **Zenoh** and **noVNC** (created but **not started**). Sets **`CYCLO_MANAGER_CONFIG_FILE`** to the bundled config. |
91
91
  | `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
92
92
  | `cyclo_manager down` | **Tear down host agent** (stop/disable service, remove unit, sudoers, socket dir), then `docker compose down` for all services in the bundled compose file. |
93
- | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). Optional `--pull` pulls images before the final `up`. |
93
+ | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, **`docker compose pull`**, then `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). |
94
+ | `cyclo_manager update --no-pull` | Same as `update`, but skip image pull (use locally cached images). |
94
95
  | `cyclo_manager --help` | Subcommand overview |
95
96
 
96
97
  **`down` vs `update`:** `down` removes the host agent entirely. `update` only stops Docker containers, upgrades the pip package, restarts the stack, and refreshes the host agent — it does **not** call `cyclo_manager down`.
@@ -138,8 +139,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
138
139
 
139
140
  | Compose service | Container name | `cyclo_manager up` | Image (example) |
140
141
  |-----------------|----------------|--------------------|-----------------|
141
- | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
142
- | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
142
+ | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.3.0` |
143
+ | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.3.0` |
143
144
  | `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
144
145
  | `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
145
146
 
@@ -76,7 +76,8 @@ python3 -m cyclo_manager_cli.cli up
76
76
  | `cyclo_manager up` | Install/refresh **cyclo_host_agent** (systemd unit, socket dir, sudoers), then `docker compose up -d` for **API + UI**, then `docker compose create --no-recreate` for **Zenoh** and **noVNC** (created but **not started**). Sets **`CYCLO_MANAGER_CONFIG_FILE`** to the bundled config. |
77
77
  | `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
78
78
  | `cyclo_manager down` | **Tear down host agent** (stop/disable service, remove unit, sudoers, socket dir), then `docker compose down` for all services in the bundled compose file. |
79
- | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). Optional `--pull` pulls images before the final `up`. |
79
+ | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, **`docker compose pull`**, then `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). |
80
+ | `cyclo_manager update --no-pull` | Same as `update`, but skip image pull (use locally cached images). |
80
81
  | `cyclo_manager --help` | Subcommand overview |
81
82
 
82
83
  **`down` vs `update`:** `down` removes the host agent entirely. `update` only stops Docker containers, upgrades the pip package, restarts the stack, and refreshes the host agent — it does **not** call `cyclo_manager down`.
@@ -124,8 +125,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
124
125
 
125
126
  | Compose service | Container name | `cyclo_manager up` | Image (example) |
126
127
  |-----------------|----------------|--------------------|-----------------|
127
- | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
128
- | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
128
+ | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.3.0` |
129
+ | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.3.0` |
129
130
  | `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
130
131
  | `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
131
132
 
@@ -22,6 +22,7 @@ import logging
22
22
  from pathlib import Path
23
23
 
24
24
  from cyclo_host_agent.routers import repos, update
25
+ from cyclo_manager_cli import __version__
25
26
  from fastapi import FastAPI
26
27
  import uvicorn
27
28
 
@@ -36,7 +37,7 @@ SOCKET_PATH = '/var/run/robotis/agent_sockets/host/host_agent.sock'
36
37
  app = FastAPI(
37
38
  title='cyclo_host_agent',
38
39
  description='Host agent for Cyclo Manager: repo management.',
39
- version='0.2.1',
40
+ version=__version__,
40
41
  )
41
42
 
42
43
  app.include_router(repos.router)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 0.2.1.dev0
3
+ Version: 0.3.0
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
@@ -90,7 +90,8 @@ python3 -m cyclo_manager_cli.cli up
90
90
  | `cyclo_manager up` | Install/refresh **cyclo_host_agent** (systemd unit, socket dir, sudoers), then `docker compose up -d` for **API + UI**, then `docker compose create --no-recreate` for **Zenoh** and **noVNC** (created but **not started**). Sets **`CYCLO_MANAGER_CONFIG_FILE`** to the bundled config. |
91
91
  | `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
92
92
  | `cyclo_manager down` | **Tear down host agent** (stop/disable service, remove unit, sudoers, socket dir), then `docker compose down` for all services in the bundled compose file. |
93
- | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). Optional `--pull` pulls images before the final `up`. |
93
+ | `cyclo_manager update` | `docker compose down` (containers only — **host agent stays installed**), `pip install -U cyclo-manager`, **`docker compose pull`**, then `docker compose up` + create optional services, then **refresh host agent** (unit, socket, sudoers). |
94
+ | `cyclo_manager update --no-pull` | Same as `update`, but skip image pull (use locally cached images). |
94
95
  | `cyclo_manager --help` | Subcommand overview |
95
96
 
96
97
  **`down` vs `update`:** `down` removes the host agent entirely. `update` only stops Docker containers, upgrades the pip package, restarts the stack, and refreshes the host agent — it does **not** call `cyclo_manager down`.
@@ -138,8 +139,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
138
139
 
139
140
  | Compose service | Container name | `cyclo_manager up` | Image (example) |
140
141
  |-----------------|----------------|--------------------|-----------------|
141
- | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
142
- | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
142
+ | `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.3.0` |
143
+ | `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.3.0` |
143
144
  | `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
144
145
  | `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
145
146
 
@@ -18,4 +18,4 @@
18
18
 
19
19
  """cyclo_manager CLI - pip-installable launcher for cyclo_manager server and UI containers."""
20
20
 
21
- __version__ = '0.2.1'
21
+ __version__ = '0.3.0'
@@ -361,10 +361,19 @@ def cmd_update(args: argparse.Namespace) -> int:
361
361
  print('pip install timed out.', file=sys.stderr)
362
362
  return 1
363
363
 
364
+ if not getattr(args, 'no_pull', False):
365
+ print('Pulling latest images...')
366
+ try:
367
+ subprocess.run([*base, 'pull'], env=env, check=True)
368
+ except subprocess.CalledProcessError as e:
369
+ print(
370
+ f'Warning: docker compose pull failed (exit {e.returncode}); '
371
+ 'continuing with cached images.',
372
+ file=sys.stderr,
373
+ )
374
+
364
375
  print('Starting containers...')
365
376
  try:
366
- if getattr(args, 'pull', False):
367
- subprocess.run([*base, 'pull'], env=env, check=True)
368
377
  subprocess.run([*base, 'up', '-d', *COMPOSE_SERVICES_UP], env=env, check=True)
369
378
  subprocess.run(
370
379
  [*base, 'create', '--no-recreate', *COMPOSE_SERVICES_CREATE_ONLY],
@@ -407,12 +416,12 @@ def main() -> int:
407
416
 
408
417
  update_parser = sub.add_parser(
409
418
  'update',
410
- help='Down containers, pip install -U cyclo-manager, then up again',
419
+ help='Down containers, pip install -U cyclo-manager, pull images, then up again',
411
420
  )
412
421
  update_parser.add_argument(
413
- '--pull',
422
+ '--no-pull',
414
423
  action='store_true',
415
- help='Always pull images when running cyclo_manager up',
424
+ help='Skip docker compose pull before starting containers (use cached images only)',
416
425
  )
417
426
  update_parser.set_defaults(func=cmd_update)
418
427
 
@@ -11,7 +11,7 @@ services:
11
11
 
12
12
  cyclo_manager:
13
13
  container_name: cyclo_manager
14
- image: robotis/cyclo-manager:0.2.1
14
+ image: robotis/cyclo-manager:0.3.0
15
15
  restart: always
16
16
  network_mode: host
17
17
  volumes:
@@ -27,7 +27,7 @@ services:
27
27
 
28
28
  ui:
29
29
  container_name: cyclo_manager_ui
30
- image: robotis/cyclo-manager-ui:0.2.1
30
+ image: robotis/cyclo-manager-ui:0.3.0
31
31
  restart: always
32
32
  network_mode: host
33
33
  environment:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cyclo-manager"
7
- version = "0.2.1.dev0"
7
+ version = "0.3.0"
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"
@@ -1,6 +1,5 @@
1
1
  [metadata]
2
2
  name = cyclo-manager
3
- version = 0.2.1
4
3
 
5
4
  [egg_info]
6
5
  egg_base = .