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  }