cyclo-manager 1.0.0.dev6__tar.gz → 1.0.0.dev7__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-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/PKG-INFO +2 -2
  2. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/README.md +1 -1
  3. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/PKG-INFO +2 -2
  4. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager_cli/cli.py +3 -1
  5. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/pyproject.toml +1 -1
  6. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/__init__.py +0 -0
  7. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/main.py +0 -0
  8. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/models.py +0 -0
  9. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/routers/__init__.py +0 -0
  10. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/routers/repos.py +0 -0
  11. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_host_agent/routers/update.py +0 -0
  12. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/SOURCES.txt +0 -0
  13. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/dependency_links.txt +0 -0
  14. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/entry_points.txt +0 -0
  15. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/requires.txt +0 -0
  16. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager.egg-info/top_level.txt +0 -0
  17. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager_cli/__init__.py +0 -0
  18. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager_cli/config/config.yml +0 -0
  19. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/cyclo_manager_cli/docker/docker-compose.yml +0 -0
  20. {cyclo_manager-1.0.0.dev6 → cyclo_manager-1.0.0.dev7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 1.0.0.dev6
3
+ Version: 1.0.0.dev7
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
@@ -129,7 +129,7 @@ The API container reaches it at `/agents/host/host_agent.sock` (see bundled `con
129
129
  - List and update **`~/ROBOTIS-GIT/*`** git repositories (Version Management in the UI)
130
130
  - Run Cyclo Manager package updates from the UI by delegating to `cyclo_manager update`
131
131
 
132
- `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` so systemd updates do not depend on `PATH`. After that, UI-triggered updates can refresh the host agent non-interactively. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
132
+ `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` with `SETENV`, so UI-triggered updates can pass the current `PYTHONPATH` to sudo and do not depend on `PATH`. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
133
133
 
134
134
  Repository scanning uses `CYCLO_HOST_AGENT_WORKSPACE` when set. Otherwise it uses the service user's home directory, except root-only devices with `/data/docker`, where `/data/docker` is used automatically.
135
135
 
@@ -115,7 +115,7 @@ The API container reaches it at `/agents/host/host_agent.sock` (see bundled `con
115
115
  - List and update **`~/ROBOTIS-GIT/*`** git repositories (Version Management in the UI)
116
116
  - Run Cyclo Manager package updates from the UI by delegating to `cyclo_manager update`
117
117
 
118
- `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` so systemd updates do not depend on `PATH`. After that, UI-triggered updates can refresh the host agent non-interactively. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
118
+ `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` with `SETENV`, so UI-triggered updates can pass the current `PYTHONPATH` to sudo and do not depend on `PATH`. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
119
119
 
120
120
  Repository scanning uses `CYCLO_HOST_AGENT_WORKSPACE` when set. Otherwise it uses the service user's home directory, except root-only devices with `/data/docker`, where `/data/docker` is used automatically.
121
121
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyclo-manager
3
- Version: 1.0.0.dev6
3
+ Version: 1.0.0.dev7
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
@@ -129,7 +129,7 @@ The API container reaches it at `/agents/host/host_agent.sock` (see bundled `con
129
129
  - List and update **`~/ROBOTIS-GIT/*`** git repositories (Version Management in the UI)
130
130
  - Run Cyclo Manager package updates from the UI by delegating to `cyclo_manager update`
131
131
 
132
- `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` so systemd updates do not depend on `PATH`. After that, UI-triggered updates can refresh the host agent non-interactively. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
132
+ `cyclo_manager up` installs the `refresh-host-agent` CLI subcommand into sudoers. It is registered as `sys.executable -m cyclo_manager_cli.cli refresh-host-agent` with `SETENV`, so UI-triggered updates can pass the current `PYTHONPATH` to sudo and do not depend on `PATH`. The command is idempotent and refreshes the socket directory, sudoers file, systemd unit, and service state after package upgrades.
133
133
 
134
134
  Repository scanning uses `CYCLO_HOST_AGENT_WORKSPACE` when set. Otherwise it uses the service user's home directory, except root-only devices with `/data/docker`, where `/data/docker` is used automatically.
135
135
 
@@ -175,6 +175,7 @@ def _install_sudoers(user: str) -> bool:
175
175
  f'{user} ALL=(ALL) NOPASSWD: /usr/bin/cp, '
176
176
  f'/usr/bin/udevadm control --reload-rules, '
177
177
  f'/usr/bin/udevadm trigger, '
178
+ 'SETENV: '
178
179
  f'{sys.executable} -m cyclo_manager_cli.cli refresh-host-agent\n'
179
180
  )
180
181
  sudoers_file = '/etc/sudoers.d/cyclo_manager'
@@ -300,8 +301,9 @@ def _refresh_host_agent_after_update() -> int:
300
301
 
301
302
  refresh_command = [sys.executable, '-m', 'cyclo_manager_cli.cli', 'refresh-host-agent']
302
303
  print(f'Refreshing host agent with sudo command: {" ".join(refresh_command)}')
304
+ pythonpath = os.pathsep.join(dict.fromkeys(path for path in sys.path if path))
303
305
  try:
304
- subprocess.run(['sudo', '-n', *refresh_command], check=True)
306
+ subprocess.run(['sudo', '-n', f'PYTHONPATH={pythonpath}', *refresh_command], check=True)
305
307
  return 0
306
308
  except subprocess.CalledProcessError as e:
307
309
  if sys.stdin.isatty():
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cyclo-manager"
7
- version = "1.0.0.dev6"
7
+ version = "1.0.0.dev7"
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"