github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/store/dockercomposeservices/reducers.go (about) 1 package dockercomposeservices 2 3 import ( 4 "fmt" 5 6 "github.com/tilt-dev/tilt/internal/container" 7 "github.com/tilt-dev/tilt/internal/dockercompose" 8 "github.com/tilt-dev/tilt/internal/store" 9 "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" 10 "github.com/tilt-dev/tilt/pkg/model" 11 "github.com/tilt-dev/tilt/pkg/model/logstore" 12 ) 13 14 func SpanIDForDCService(mn model.ManifestName) logstore.SpanID { 15 return logstore.SpanID(fmt.Sprintf("dc:%s", mn)) 16 } 17 18 func HandleDockerComposeServiceUpsertAction(state *store.EngineState, action DockerComposeServiceUpsertAction) { 19 obj := action.DockerComposeService 20 n := obj.Name 21 state.DockerComposeServices[n] = obj 22 23 mn := model.ManifestName(obj.GetAnnotations()[v1alpha1.AnnotationManifest]) 24 mt, ok := state.ManifestTargets[mn] 25 if !ok || !mt.Manifest.IsDC() { 26 return 27 } 28 29 dcs, ok := mt.State.RuntimeState.(dockercompose.State) 30 if !ok { 31 dcs = dockercompose.State{} 32 } 33 34 dcs = dcs.WithSpanID(SpanIDForDCService(mn)) 35 36 cid := obj.Status.ContainerID 37 if cid != "" { 38 dcs = dcs.WithContainerID(container.ID(cid)) 39 } 40 41 cState := obj.Status.ContainerState 42 if cState != nil { 43 dcs = dcs.WithContainerState(*cState) 44 dcs = dcs.WithPorts(obj.Status.PortBindings) 45 } 46 47 mt.State.RuntimeState = dcs 48 } 49 50 func HandleDockerComposeServiceDeleteAction(state *store.EngineState, action DockerComposeServiceDeleteAction) { 51 delete(state.DockerComposeServices, action.Name) 52 }