Use VERSION_ID to distinguish between stable and unreleased debian

In base-files 12.3 in bookworm/testing, VERSION_CODENAME is added to
/etc/os-release. Unreleased versions of debian still remain without
version numbers, so use VERSION_ID to distinguish between stable and
unreleased versions.

BUG=b:253622661
TEST=launch bookworm container and check cros.list

Change-Id: I61c7390ad97a468054bfff46ac0da9c979c9b51f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/tremplin/+/3958879
Reviewed-by: David Munro <davidmunro@google.com>
Tested-by: James Ye <jamesye@google.com>
Commit-Queue: James Ye <jamesye@google.com>
diff --git a/src/chromiumos/tremplin/tremplin.go b/src/chromiumos/tremplin/tremplin.go
index ee71999..0d7964d 100644
--- a/src/chromiumos/tremplin/tremplin.go
+++ b/src/chromiumos/tremplin/tremplin.go
@@ -1243,7 +1243,7 @@
 	if err == nil {
 		response.OsRelease = osRelease.toProto()
 		if osRelease.id == "debian" {
-			err = s.writeContainerFile(container.Name, "/etc/apt/sources.list.d/cros.list", createAptSourceList(s.milestone, osRelease.versionCodename))
+			err = s.writeContainerFile(container.Name, "/etc/apt/sources.list.d/cros.list", createAptSourceList(s.milestone, osRelease.versionID, osRelease.versionCodename))
 		} // else unknown distro so do nothing.
 		if err != nil {
 			log.Print("Failed to update guest cros.list: ", err)
diff --git a/src/chromiumos/tremplin/version.go b/src/chromiumos/tremplin/version.go
index a717220..623eecc 100644
--- a/src/chromiumos/tremplin/version.go
+++ b/src/chromiumos/tremplin/version.go
@@ -141,20 +141,19 @@
 	}
 }
 
-func createAptSourceList(milestone int, osVersion string) string {
+func createAptSourceList(milestone int, osVersionId string, osVersionCodename string) string {
 	var list strings.Builder
-	if osVersion == "" {
-		// The VERSION_CODENAME tag is only required to be
-		// present on stable versions of debian. For
-		// testing/unstable/experimental, bullseye is the most
-		// recent set of packages.
-		osVersion = "bullseye"
+	if osVersionId == "" {
+		// The VERSION_ID tag is only present on stable versions of
+		// debian. For testing/unstable/experimental, bullseye is the
+		// most recent set of packages we ship.
+		osVersionCodename = "bullseye"
 	}
-	list.WriteString(fmt.Sprintf("deb https://storage.googleapis.com/cros-packages/%d %s main\n", milestone, osVersion))
+	list.WriteString(fmt.Sprintf("deb https://storage.googleapis.com/cros-packages/%d %s main\n", milestone, osVersionCodename))
 
 	// On buster, we need the backports repo.
-	if osVersion == "buster" {
-		list.WriteString(fmt.Sprintf("deb https://deb.debian.org/debian %s-backports main\n", osVersion))
+	if osVersionCodename == "buster" {
+		list.WriteString(fmt.Sprintf("deb https://deb.debian.org/debian %s-backports main\n", osVersionCodename))
 	}
 
 	return list.String()