rosotacom-dev 2.5.dev72__py3-none-any.whl → 2.5.dev73__py3-none-any.whl
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.
- rosotacom/cli.py +27 -5
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/METADATA +1 -1
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/RECORD +7 -7
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/WHEEL +0 -0
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/entry_points.txt +0 -0
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/licenses/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/top_level.txt +0 -0
rosotacom/cli.py
CHANGED
|
@@ -794,6 +794,31 @@ def _new_instance_id() -> str:
|
|
|
794
794
|
return hashlib.sha1(seed.encode("utf-8")).hexdigest()[:8]
|
|
795
795
|
|
|
796
796
|
|
|
797
|
+
#: The timestamp every instance directory carries between its session slug and
|
|
798
|
+
#: its id: `<slug>_YYYY-MM-DD_HH-MM-SS_<id>`. Spelled out digit by digit rather
|
|
799
|
+
#: than left as `*`, because a session's name may be a *prefix* of another
|
|
800
|
+
#: session's name and `f"{slug}_*"` then collects the other session's instances
|
|
801
|
+
#: too. `ccng_remote_assist_*` matches every `ccng_remote_assist_kilted_dds_*`,
|
|
802
|
+
#: and because the matches are ordered by name, `[-1]` answers with the wrong
|
|
803
|
+
#: session's run whenever the longer name sorts after a digit — which `k` does.
|
|
804
|
+
#:
|
|
805
|
+
#: That is not hypothetical. On 2026-08-21 it made `rosotacom status
|
|
806
|
+
#: ccng_remote_assist` report a `ccng_remote_assist_kilted_dds` run that had
|
|
807
|
+
#: been shut down 45 minutes earlier, so three two-host runs concluded their
|
|
808
|
+
#: link never came up while it was in fact carrying traffic for eleven minutes.
|
|
809
|
+
#: Nothing in the reading said it came from another session.
|
|
810
|
+
_INSTANCE_STAMP_GLOB = "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]"
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
def _instance_glob(session_slug: str, instance_id: str | None = None) -> str:
|
|
814
|
+
"""The pattern matching this session's instances, and no other session's.
|
|
815
|
+
|
|
816
|
+
With the stamp pinned, the names sort chronologically, so `sorted(...)[-1]`
|
|
817
|
+
is the newest instance rather than merely the last name.
|
|
818
|
+
"""
|
|
819
|
+
return f"*/{session_slug}_{_INSTANCE_STAMP_GLOB}_{instance_id or '*'}"
|
|
820
|
+
|
|
821
|
+
|
|
797
822
|
def _session_instances_root(runtime: RuntimeConfig) -> Path:
|
|
798
823
|
return (runtime.session_instances_dir or (Path.cwd() / "session-instances")).resolve()
|
|
799
824
|
|
|
@@ -818,7 +843,7 @@ def _resolve_session_instance(
|
|
|
818
843
|
resolved_instance_id = _safe_path_token(instance_id or _new_instance_id())
|
|
819
844
|
|
|
820
845
|
if instance_id:
|
|
821
|
-
matches = sorted(root.glob(
|
|
846
|
+
matches = sorted(root.glob(_instance_glob(session_slug, resolved_instance_id)))
|
|
822
847
|
if matches:
|
|
823
848
|
host_dir = matches[-1].resolve()
|
|
824
849
|
else:
|
|
@@ -8781,10 +8806,7 @@ def smoke(args: argparse.Namespace) -> int:
|
|
|
8781
8806
|
def _find_latest_instance_dir(runtime: RuntimeConfig, session: ResolvedSession, instance_id: str | None) -> Path:
|
|
8782
8807
|
root = _session_instances_root(runtime)
|
|
8783
8808
|
session_slug = _session_instance_slug(session, runtime)
|
|
8784
|
-
if instance_id
|
|
8785
|
-
pattern = f"*/{session_slug}_*_{_safe_path_token(instance_id)}"
|
|
8786
|
-
else:
|
|
8787
|
-
pattern = f"*/{session_slug}_*"
|
|
8809
|
+
pattern = _instance_glob(session_slug, _safe_path_token(instance_id) if instance_id else None)
|
|
8788
8810
|
matches = sorted(p for p in root.glob(pattern) if p.is_dir())
|
|
8789
8811
|
if not matches:
|
|
8790
8812
|
raise RuntimeError(
|
|
@@ -6,7 +6,7 @@ rosotacom/benched_set.py,sha256=lBA1Rj04dbr2e-lIvYTWoL55_LdUpCAC-y7eIvJZ8lc,2721
|
|
|
6
6
|
rosotacom/benchmark.py,sha256=3QoXJtWUGQPwvDWyQT_fOjx6K9G2pmvtnVurA21G2QY,76612
|
|
7
7
|
rosotacom/benchmark_delta.py,sha256=qXzriBkbXOeJdlLKM4ziov1F-JfwlseYHE48S9hjFsQ,10005
|
|
8
8
|
rosotacom/bundle_check.py,sha256=l_3BSuYk6juXQmsNU6jkxRbH8ayH2GkiW9ONKMQ1oJY,18270
|
|
9
|
-
rosotacom/cli.py,sha256=
|
|
9
|
+
rosotacom/cli.py,sha256=WOl0PLl-tEu28ahHh9HIpu-hmNlD4WcH2b45HzoqMJg,438036
|
|
10
10
|
rosotacom/cli_benchmark.py,sha256=yL5izp7_Y_ngGsx5R8yN2lSUe_Y5qxBYiMArDx4ms5I,355085
|
|
11
11
|
rosotacom/deployment.py,sha256=XVhB8JjxhAsglSEEPtiVSeV6fCG0rgGmDRulh14oIYQ,7318
|
|
12
12
|
rosotacom/ffmpeg_packet.py,sha256=zB1BHgY1kexr5sETVMkm4bkVnRytj9k2t0uOYiHUZ6M,4267
|
|
@@ -205,9 +205,9 @@ rosotacom/resources/ws/session/creation/generate_session_files.py,sha256=3Sx4xTS
|
|
|
205
205
|
rosotacom/resources/ws/session/creation/run_session.py,sha256=G2hJhrmLp11gm3JZ6_C-zZcqu_reXlE_wmobB7BiCfU,16849
|
|
206
206
|
rosotacom/resources/ws/session/creation/run_session_in_external_terminal.py,sha256=Ub_5f-ttUUc-rAPrZmg_Op34s8Z4C91hTyEn8fgyt-E,2633
|
|
207
207
|
rosotacom/resources/ws/session/creation/strip_ansi.py,sha256=vNjpemcq4xHr0VG4x0bZqvgwEBEfOgN-b4PzbrM5nfM,851
|
|
208
|
-
rosotacom_dev-2.5.
|
|
209
|
-
rosotacom_dev-2.5.
|
|
210
|
-
rosotacom_dev-2.5.
|
|
211
|
-
rosotacom_dev-2.5.
|
|
212
|
-
rosotacom_dev-2.5.
|
|
213
|
-
rosotacom_dev-2.5.
|
|
208
|
+
rosotacom_dev-2.5.dev73.dist-info/licenses/LICENSE.txt,sha256=FDB3-fao3lqZ94wsJHKAH7U88kAnfvZhZC8Hm5rN__g,1459
|
|
209
|
+
rosotacom_dev-2.5.dev73.dist-info/METADATA,sha256=Waeqm5ydlo3j0N--3kXVQXNF1QHPikSLYu3Y_dnQ9k0,58884
|
|
210
|
+
rosotacom_dev-2.5.dev73.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
211
|
+
rosotacom_dev-2.5.dev73.dist-info/entry_points.txt,sha256=im11ZWqBbgjQUBz2Ik2RNfMu54wlMwgiVpsBKeI7dCI,49
|
|
212
|
+
rosotacom_dev-2.5.dev73.dist-info/top_level.txt,sha256=BZrtQcIVDWn_pQZR3Mlssqy5SaRXHjOa6B-1D9Fy4Ao,10
|
|
213
|
+
rosotacom_dev-2.5.dev73.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72.dist-info → rosotacom_dev-2.5.dev73.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
|
File without changes
|