Fix install
This commit is contained in:
@@ -25,8 +25,9 @@ class InstalledRepo:
|
|||||||
url: str
|
url: str
|
||||||
domains: list[str]
|
domains: list[str]
|
||||||
installed_at: int
|
installed_at: int
|
||||||
installed_version: str | None = None
|
installed_version: str | None = None # BCS "installed ref" (tag/release/branch)
|
||||||
ref: str | None = None
|
installed_manifest_version: str | None = None # informational only
|
||||||
|
ref: str | None = None # kept for backward compatibility / diagnostics
|
||||||
|
|
||||||
|
|
||||||
class BCSStorage:
|
class BCSStorage:
|
||||||
@@ -110,13 +111,24 @@ class BCSStorage:
|
|||||||
domains = []
|
domains = []
|
||||||
domains = [str(d) for d in domains if str(d).strip()]
|
domains = [str(d) for d in domains if str(d).strip()]
|
||||||
|
|
||||||
|
installed_version = entry.get("installed_version")
|
||||||
|
ref = entry.get("ref")
|
||||||
|
|
||||||
|
# Backward compatibility:
|
||||||
|
# If installed_version wasn't stored, fall back to ref.
|
||||||
|
if (not installed_version) and ref:
|
||||||
|
installed_version = ref
|
||||||
|
|
||||||
|
installed_manifest_version = entry.get("installed_manifest_version")
|
||||||
|
|
||||||
return InstalledRepo(
|
return InstalledRepo(
|
||||||
repo_id=str(entry.get("repo_id") or repo_id),
|
repo_id=str(entry.get("repo_id") or repo_id),
|
||||||
url=str(entry.get("url") or ""),
|
url=str(entry.get("url") or ""),
|
||||||
domains=domains,
|
domains=domains,
|
||||||
installed_at=int(entry.get("installed_at") or 0),
|
installed_at=int(entry.get("installed_at") or 0),
|
||||||
installed_version=str(entry.get("installed_version")) if entry.get("installed_version") else None,
|
installed_version=str(installed_version) if installed_version else None,
|
||||||
ref=str(entry.get("ref")) if entry.get("ref") else None,
|
installed_manifest_version=str(installed_manifest_version) if installed_manifest_version else None,
|
||||||
|
ref=str(ref) if ref else None,
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
@@ -127,8 +139,8 @@ class BCSStorage:
|
|||||||
out: list[InstalledRepo] = []
|
out: list[InstalledRepo] = []
|
||||||
if not isinstance(installed, dict):
|
if not isinstance(installed, dict):
|
||||||
return out
|
return out
|
||||||
for repo_id in list(installed.keys()):
|
for rid in list(installed.keys()):
|
||||||
item = await self.get_installed_repo(str(repo_id))
|
item = await self.get_installed_repo(str(rid))
|
||||||
if item:
|
if item:
|
||||||
out.append(item)
|
out.append(item)
|
||||||
return out
|
return out
|
||||||
@@ -140,6 +152,7 @@ class BCSStorage:
|
|||||||
url: str,
|
url: str,
|
||||||
domains: list[str],
|
domains: list[str],
|
||||||
installed_version: str | None,
|
installed_version: str | None,
|
||||||
|
installed_manifest_version: str | None = None,
|
||||||
ref: str | None,
|
ref: str | None,
|
||||||
) -> None:
|
) -> None:
|
||||||
data = await self._load()
|
data = await self._load()
|
||||||
@@ -153,7 +166,11 @@ class BCSStorage:
|
|||||||
"url": str(url),
|
"url": str(url),
|
||||||
"domains": [str(d) for d in (domains or []) if str(d).strip()],
|
"domains": [str(d) for d in (domains or []) if str(d).strip()],
|
||||||
"installed_at": int(time.time()),
|
"installed_at": int(time.time()),
|
||||||
|
# IMPORTANT: this is what BCS uses as "installed version" (ref/tag/branch)
|
||||||
"installed_version": installed_version,
|
"installed_version": installed_version,
|
||||||
|
# informational only
|
||||||
|
"installed_manifest_version": installed_manifest_version,
|
||||||
|
# keep ref too (debug/backward compatibility)
|
||||||
"ref": ref,
|
"ref": ref,
|
||||||
}
|
}
|
||||||
await self._save(data)
|
await self._save(data)
|
||||||
|
|||||||
Reference in New Issue
Block a user