@@ -17,7 +17,7 @@ package internal
1717import (
1818 "encoding/json"
1919 "fmt"
20- "path/filepath "
20+ "regexp "
2121 "strings"
2222
2323 "github.com/go-playground/validator/v10"
@@ -70,33 +70,35 @@ func ParseInstanceGroups(jsonStr, groupName string) (*InstanceGroup, error) {
7070 return & instanceGroup , nil
7171}
7272
73- func UpdateCvdGroupJsonRaw (data any , containerName , ipAddr string ) {
73+ func UpdateCvdGroupJsonRaw (data any , podcvdHomeDir , ipAddr string ) {
7474 switch v := data .(type ) {
7575 case map [string ]any :
7676 for k , val := range v {
7777 if s , ok := val .(string ); ok {
78- v [k ] = updateStringOnCvdGroupJsonRaw (s , containerName , ipAddr )
78+ v [k ] = updateStringOnCvdGroupJsonRaw (s , podcvdHomeDir , ipAddr )
7979 } else {
80- UpdateCvdGroupJsonRaw (val , containerName , ipAddr )
80+ UpdateCvdGroupJsonRaw (val , podcvdHomeDir , ipAddr )
8181 }
8282 }
8383 case []any :
8484 for k , val := range v {
8585 if s , ok := val .(string ); ok {
86- v [k ] = updateStringOnCvdGroupJsonRaw (s , containerName , ipAddr )
86+ v [k ] = updateStringOnCvdGroupJsonRaw (s , podcvdHomeDir , ipAddr )
8787 } else {
88- UpdateCvdGroupJsonRaw (val , containerName , ipAddr )
88+ UpdateCvdGroupJsonRaw (val , podcvdHomeDir , ipAddr )
8989 }
9090 }
9191 }
9292}
9393
94- func updateStringOnCvdGroupJsonRaw (data , containerName , ipAddr string ) string {
94+ var cvdPathRegex = regexp .MustCompile (`^/var/tmp/cvd/[0-9]+/[0-9]+/home` )
95+
96+ func updateStringOnCvdGroupJsonRaw (data , podcvdHomeDir , ipAddr string ) string {
9597 data = strings .ReplaceAll (data , "0.0.0.0" , ipAddr )
9698 data = strings .ReplaceAll (data , "localhost" , ipAddr )
9799 data = strings .ReplaceAll (data , "127.0.0.1" , ipAddr )
98- if filepath . IsAbs (data ) {
99- data = fmt . Sprintf ( "%s:%s" , containerName , data )
100+ if cvdPathRegex . MatchString (data ) {
101+ data = cvdPathRegex . ReplaceAllString ( data , podcvdHomeDir )
100102 }
101103 return data
102104}
0 commit comments