cyclo-manager 0.2.0.dev13__tar.gz → 0.2.1.dev1__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-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/PKG-INFO +7 -12
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/README.md +6 -11
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/main.py +3 -4
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/routers/repos.py +11 -7
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/routers/update.py +0 -2
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/PKG-INFO +7 -12
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager_cli/__init__.py +1 -1
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager_cli/cli.py +23 -9
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager_cli/config/config.yml +1 -1
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager_cli/docker/docker-compose.yml +2 -2
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/pyproject.toml +1 -1
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/setup.cfg +1 -1
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/__init__.py +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/models.py +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_host_agent/routers/__init__.py +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/SOURCES.txt +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/dependency_links.txt +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/entry_points.txt +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/requires.txt +0 -0
- {cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cyclo-manager
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1.dev1
|
|
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
|
|
@@ -67,12 +67,6 @@ From **PyPI**:
|
|
|
67
67
|
pip install cyclo-manager
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Pre-release versions:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
pip install --pre cyclo-manager==0.2.0.dev0
|
|
74
|
-
```
|
|
75
|
-
|
|
76
70
|
If `cyclo_manager` is not on `PATH`, add the user script directory:
|
|
77
71
|
|
|
78
72
|
```bash
|
|
@@ -96,7 +90,8 @@ python3 -m cyclo_manager_cli.cli up
|
|
|
96
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. |
|
|
97
91
|
| `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
|
|
98
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. |
|
|
99
|
-
| `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).
|
|
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). |
|
|
100
95
|
| `cyclo_manager --help` | Subcommand overview |
|
|
101
96
|
|
|
102
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`.
|
|
@@ -144,8 +139,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
|
|
|
144
139
|
|
|
145
140
|
| Compose service | Container name | `cyclo_manager up` | Image (example) |
|
|
146
141
|
|-----------------|----------------|--------------------|-----------------|
|
|
147
|
-
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.
|
|
148
|
-
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.
|
|
142
|
+
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
|
|
143
|
+
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
|
|
149
144
|
| `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
|
|
150
145
|
| `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
|
|
151
146
|
|
|
@@ -177,7 +172,7 @@ robot_container: ai_worker
|
|
|
177
172
|
|
|
178
173
|
sockets:
|
|
179
174
|
ai_worker: "/agents/ai_worker/s6_agent.sock"
|
|
180
|
-
|
|
175
|
+
cyclo_intelligence: "/agents/cyclo_intelligence/s6_agent.sock"
|
|
181
176
|
host_agent: "/agents/host/host_agent.sock"
|
|
182
177
|
```
|
|
183
178
|
|
|
@@ -198,7 +193,7 @@ On the host, sockets typically live under:
|
|
|
198
193
|
```text
|
|
199
194
|
/var/run/robotis/agent_sockets/
|
|
200
195
|
├── ai_worker/s6_agent.sock
|
|
201
|
-
├──
|
|
196
|
+
├── cyclo_intelligence/s6_agent.sock
|
|
202
197
|
└── host/host_agent.sock ← created by cyclo_manager up
|
|
203
198
|
```
|
|
204
199
|
|
|
@@ -53,12 +53,6 @@ From **PyPI**:
|
|
|
53
53
|
pip install cyclo-manager
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
Pre-release versions:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
pip install --pre cyclo-manager==0.2.0.dev0
|
|
60
|
-
```
|
|
61
|
-
|
|
62
56
|
If `cyclo_manager` is not on `PATH`, add the user script directory:
|
|
63
57
|
|
|
64
58
|
```bash
|
|
@@ -82,7 +76,8 @@ python3 -m cyclo_manager_cli.cli up
|
|
|
82
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. |
|
|
83
77
|
| `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
|
|
84
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. |
|
|
85
|
-
| `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).
|
|
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). |
|
|
86
81
|
| `cyclo_manager --help` | Subcommand overview |
|
|
87
82
|
|
|
88
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`.
|
|
@@ -130,8 +125,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
|
|
|
130
125
|
|
|
131
126
|
| Compose service | Container name | `cyclo_manager up` | Image (example) |
|
|
132
127
|
|-----------------|----------------|--------------------|-----------------|
|
|
133
|
-
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.
|
|
134
|
-
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.
|
|
128
|
+
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
|
|
129
|
+
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
|
|
135
130
|
| `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
|
|
136
131
|
| `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
|
|
137
132
|
|
|
@@ -163,7 +158,7 @@ robot_container: ai_worker
|
|
|
163
158
|
|
|
164
159
|
sockets:
|
|
165
160
|
ai_worker: "/agents/ai_worker/s6_agent.sock"
|
|
166
|
-
|
|
161
|
+
cyclo_intelligence: "/agents/cyclo_intelligence/s6_agent.sock"
|
|
167
162
|
host_agent: "/agents/host/host_agent.sock"
|
|
168
163
|
```
|
|
169
164
|
|
|
@@ -184,7 +179,7 @@ On the host, sockets typically live under:
|
|
|
184
179
|
```text
|
|
185
180
|
/var/run/robotis/agent_sockets/
|
|
186
181
|
├── ai_worker/s6_agent.sock
|
|
187
|
-
├──
|
|
182
|
+
├── cyclo_intelligence/s6_agent.sock
|
|
188
183
|
└── host/host_agent.sock ← created by cyclo_manager up
|
|
189
184
|
```
|
|
190
185
|
|
|
@@ -21,10 +21,9 @@
|
|
|
21
21
|
import logging
|
|
22
22
|
from pathlib import Path
|
|
23
23
|
|
|
24
|
-
import uvicorn
|
|
25
|
-
from fastapi import FastAPI
|
|
26
|
-
|
|
27
24
|
from cyclo_host_agent.routers import repos, update
|
|
25
|
+
from fastapi import FastAPI
|
|
26
|
+
import uvicorn
|
|
28
27
|
|
|
29
28
|
logging.basicConfig(
|
|
30
29
|
level=logging.INFO,
|
|
@@ -37,7 +36,7 @@ SOCKET_PATH = '/var/run/robotis/agent_sockets/host/host_agent.sock'
|
|
|
37
36
|
app = FastAPI(
|
|
38
37
|
title='cyclo_host_agent',
|
|
39
38
|
description='Host agent for Cyclo Manager: repo management.',
|
|
40
|
-
version='0.2.
|
|
39
|
+
version='0.2.1',
|
|
41
40
|
)
|
|
42
41
|
|
|
43
42
|
app.include_router(repos.router)
|
|
@@ -20,12 +20,10 @@
|
|
|
20
20
|
|
|
21
21
|
import asyncio
|
|
22
22
|
import os
|
|
23
|
-
import re
|
|
24
23
|
from pathlib import Path
|
|
24
|
+
import re
|
|
25
25
|
from typing import Optional
|
|
26
26
|
|
|
27
|
-
from fastapi import APIRouter, HTTPException, status
|
|
28
|
-
|
|
29
27
|
from cyclo_host_agent.models import (
|
|
30
28
|
ContainerScriptResponse,
|
|
31
29
|
FileChange,
|
|
@@ -33,11 +31,12 @@ from cyclo_host_agent.models import (
|
|
|
33
31
|
RepoInfo,
|
|
34
32
|
RepoListResponse,
|
|
35
33
|
RepoStatusResponse,
|
|
36
|
-
RepoUpdateStatus,
|
|
37
34
|
RepoUpdatesResponse,
|
|
35
|
+
RepoUpdateStatus,
|
|
38
36
|
UpdateRequest,
|
|
39
37
|
UpdateResponse,
|
|
40
38
|
)
|
|
39
|
+
from fastapi import APIRouter, HTTPException, status
|
|
41
40
|
|
|
42
41
|
router = APIRouter(prefix='/repos', tags=['repos'])
|
|
43
42
|
|
|
@@ -110,12 +109,12 @@ async def _ensure_allowed_branch(repo_path: Path) -> None:
|
|
|
110
109
|
allowed = ', '.join(sorted(ALLOWED_UPDATE_BRANCHES))
|
|
111
110
|
if branch:
|
|
112
111
|
detail = (
|
|
113
|
-
f
|
|
112
|
+
f'Updates are only allowed on branches: {allowed}. '
|
|
114
113
|
f"Current branch is '{branch}'."
|
|
115
114
|
)
|
|
116
115
|
else:
|
|
117
116
|
detail = (
|
|
118
|
-
f
|
|
117
|
+
f'Updates are only allowed on branches: {allowed}. '
|
|
119
118
|
'Could not determine the current branch (detached HEAD?).'
|
|
120
119
|
)
|
|
121
120
|
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=detail)
|
|
@@ -222,7 +221,12 @@ async def _repo_update_status(repo_path: Path) -> Optional[RepoUpdateStatus]:
|
|
|
222
221
|
|
|
223
222
|
latest = await _fetch_latest_tag(remote_url)
|
|
224
223
|
if not latest:
|
|
225
|
-
return RepoUpdateStatus(
|
|
224
|
+
return RepoUpdateStatus(
|
|
225
|
+
name=repo_path.name,
|
|
226
|
+
branch=branch,
|
|
227
|
+
current_version=current,
|
|
228
|
+
has_update=False,
|
|
229
|
+
)
|
|
226
230
|
|
|
227
231
|
return RepoUpdateStatus(
|
|
228
232
|
name=repo_path.name,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cyclo-manager
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1.dev1
|
|
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
|
|
@@ -67,12 +67,6 @@ From **PyPI**:
|
|
|
67
67
|
pip install cyclo-manager
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Pre-release versions:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
pip install --pre cyclo-manager==0.2.0.dev0
|
|
74
|
-
```
|
|
75
|
-
|
|
76
70
|
If `cyclo_manager` is not on `PATH`, add the user script directory:
|
|
77
71
|
|
|
78
72
|
```bash
|
|
@@ -96,7 +90,8 @@ python3 -m cyclo_manager_cli.cli up
|
|
|
96
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. |
|
|
97
91
|
| `cyclo_manager up --pull` | `docker compose pull` first, then the same as `up`. |
|
|
98
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. |
|
|
99
|
-
| `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).
|
|
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). |
|
|
100
95
|
| `cyclo_manager --help` | Subcommand overview |
|
|
101
96
|
|
|
102
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`.
|
|
@@ -144,8 +139,8 @@ Defined in [`cyclo_manager_cli/docker/docker-compose.yml`](cyclo_manager_cli/doc
|
|
|
144
139
|
|
|
145
140
|
| Compose service | Container name | `cyclo_manager up` | Image (example) |
|
|
146
141
|
|-----------------|----------------|--------------------|-----------------|
|
|
147
|
-
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.
|
|
148
|
-
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.
|
|
142
|
+
| `cyclo_manager` | `cyclo_manager` | **Started** | `robotis/cyclo-manager:0.2.1` |
|
|
143
|
+
| `ui` | `cyclo_manager_ui` | **Started** | `robotis/cyclo-manager-ui:0.2.1` |
|
|
149
144
|
| `rmw_zenoh` | `zenoh_daemon` | **Created only** | `robotis/zenoh-daemon:latest` |
|
|
150
145
|
| `novnc-server` | `novnc-server` | **Created only** | `robotis/novnc-server:latest` |
|
|
151
146
|
|
|
@@ -177,7 +172,7 @@ robot_container: ai_worker
|
|
|
177
172
|
|
|
178
173
|
sockets:
|
|
179
174
|
ai_worker: "/agents/ai_worker/s6_agent.sock"
|
|
180
|
-
|
|
175
|
+
cyclo_intelligence: "/agents/cyclo_intelligence/s6_agent.sock"
|
|
181
176
|
host_agent: "/agents/host/host_agent.sock"
|
|
182
177
|
```
|
|
183
178
|
|
|
@@ -198,7 +193,7 @@ On the host, sockets typically live under:
|
|
|
198
193
|
```text
|
|
199
194
|
/var/run/robotis/agent_sockets/
|
|
200
195
|
├── ai_worker/s6_agent.sock
|
|
201
|
-
├──
|
|
196
|
+
├── cyclo_intelligence/s6_agent.sock
|
|
202
197
|
└── host/host_agent.sock ← created by cyclo_manager up
|
|
203
198
|
```
|
|
204
199
|
|
|
@@ -95,7 +95,7 @@ def _setup_socket_dir(user: str) -> bool:
|
|
|
95
95
|
check=True,
|
|
96
96
|
capture_output=True,
|
|
97
97
|
)
|
|
98
|
-
print(
|
|
98
|
+
print(' [3/3] Removing stale socket file (if any)...')
|
|
99
99
|
subprocess.run(
|
|
100
100
|
['sudo', 'rm', '-f', HOST_AGENT_SOCKET],
|
|
101
101
|
check=True,
|
|
@@ -109,8 +109,10 @@ def _setup_socket_dir(user: str) -> bool:
|
|
|
109
109
|
|
|
110
110
|
def _install_sudoers(user: str) -> bool:
|
|
111
111
|
"""
|
|
112
|
-
Write
|
|
113
|
-
|
|
112
|
+
Write sudoers rules for cyclo_manager.
|
|
113
|
+
|
|
114
|
+
Grant NOPASSWD for udev operations needed by container.sh
|
|
115
|
+
(cp to /etc/udev/rules.d/, udevadm control/trigger).
|
|
114
116
|
"""
|
|
115
117
|
print(' Installing sudoers rules (cp, udevadm)...')
|
|
116
118
|
sudoers_content = (
|
|
@@ -272,7 +274,10 @@ def _teardown_host_agent() -> None:
|
|
|
272
274
|
steps = [
|
|
273
275
|
(['sudo', 'systemctl', 'stop', f'{HOST_AGENT_SERVICE}.service'], 'stop service'),
|
|
274
276
|
(['sudo', 'systemctl', 'disable', f'{HOST_AGENT_SERVICE}.service'], 'disable service'),
|
|
275
|
-
(
|
|
277
|
+
(
|
|
278
|
+
['sudo', 'rm', '-f', f'/etc/systemd/system/{HOST_AGENT_SERVICE}.service'],
|
|
279
|
+
'remove unit file',
|
|
280
|
+
),
|
|
276
281
|
(['sudo', 'systemctl', 'daemon-reload'], 'daemon-reload'),
|
|
277
282
|
(['sudo', 'rm', '-f', '/etc/sudoers.d/cyclo_manager'], 'remove sudoers'),
|
|
278
283
|
(['sudo', 'rm', '-rf', HOST_AGENT_SOCKET_DIR], 'remove socket dir'),
|
|
@@ -356,10 +361,19 @@ def cmd_update(args: argparse.Namespace) -> int:
|
|
|
356
361
|
print('pip install timed out.', file=sys.stderr)
|
|
357
362
|
return 1
|
|
358
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
|
+
|
|
359
375
|
print('Starting containers...')
|
|
360
376
|
try:
|
|
361
|
-
if getattr(args, 'pull', False):
|
|
362
|
-
subprocess.run([*base, 'pull'], env=env, check=True)
|
|
363
377
|
subprocess.run([*base, 'up', '-d', *COMPOSE_SERVICES_UP], env=env, check=True)
|
|
364
378
|
subprocess.run(
|
|
365
379
|
[*base, 'create', '--no-recreate', *COMPOSE_SERVICES_CREATE_ONLY],
|
|
@@ -402,12 +416,12 @@ def main() -> int:
|
|
|
402
416
|
|
|
403
417
|
update_parser = sub.add_parser(
|
|
404
418
|
'update',
|
|
405
|
-
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',
|
|
406
420
|
)
|
|
407
421
|
update_parser.add_argument(
|
|
408
|
-
'--pull',
|
|
422
|
+
'--no-pull',
|
|
409
423
|
action='store_true',
|
|
410
|
-
help='
|
|
424
|
+
help='Skip docker compose pull before starting containers (use cached images only)',
|
|
411
425
|
)
|
|
412
426
|
update_parser.set_defaults(func=cmd_update)
|
|
413
427
|
|
{cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager_cli/docker/docker-compose.yml
RENAMED
|
@@ -11,7 +11,7 @@ services:
|
|
|
11
11
|
|
|
12
12
|
cyclo_manager:
|
|
13
13
|
container_name: cyclo_manager
|
|
14
|
-
image: robotis/cyclo-manager:0.2.
|
|
14
|
+
image: robotis/cyclo-manager:0.2.1
|
|
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.
|
|
30
|
+
image: robotis/cyclo-manager-ui:0.2.1
|
|
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.
|
|
7
|
+
version = "0.2.1.dev1"
|
|
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
|
{cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{cyclo_manager-0.2.0.dev13 → cyclo_manager-0.2.1.dev1}/cyclo_manager.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|