Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/cmd/cli/command/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ func doubleCheckProjectName(projectName string) {
func newStackManagerForLoader(ctx context.Context, loader *compose.Loader) (session.StacksManager, error) {
targetDirectory, err := loader.ProjectWorkingDir(ctx)
if err != nil {
term.Debugf("Could not determine project working directory: %v", err)
// No project directory; look for .defang directory in current or parent directories
targetDirectory, _ = findTargetDirectory(".")
} else {
Expand Down
5 changes: 3 additions & 2 deletions src/pkg/clouds/aws/codebuild/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import (
"strings"
"time"

"github.com/DefangLabs/defang/src/pkg/types"
defangv1 "github.com/DefangLabs/defang/src/protos/io/defang/v1"
)

type Event interface {
Service() string
Etag() string
Etag() types.ETag
Host() string
Status() string
State() defangv1.ServiceState
Expand Down Expand Up @@ -56,7 +57,7 @@ func (e *CodebuildEvent) Service() string {
return e.service
}

func (e *CodebuildEvent) Etag() string {
func (e *CodebuildEvent) Etag() types.ETag {
return e.etag
}

Expand Down
37 changes: 24 additions & 13 deletions src/pkg/clouds/aws/ecs/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,39 @@ import (
"fmt"
"path"
"strings"
"sync"
"time"

"github.com/DefangLabs/defang/src/pkg/clouds/aws/ecs/ecsserviceaction"
"github.com/DefangLabs/defang/src/pkg/clouds/aws/ecs/ecstaskstatechange"
"github.com/DefangLabs/defang/src/pkg/types"
defangv1 "github.com/DefangLabs/defang/src/protos/io/defang/v1"
)

type Cache interface {
Get(string) string
Set(string, string)
Get(string) types.ETag
Set(string, types.ETag)
}

type LocalCache map[string]string
type LocalCache struct {
data map[string]string
mutex sync.RWMutex
}

var DeploymentEtags Cache = make(LocalCache)
func (c *LocalCache) Get(k string) types.ETag {
c.mutex.RLock()
defer c.mutex.RUnlock()
return c.data[k]
}

func (c LocalCache) Get(k string) string {
return c[k]
func (c *LocalCache) Set(k string, v types.ETag) {
c.mutex.Lock()
defer c.mutex.Unlock()
c.data[k] = v
}

func (c LocalCache) Set(k, v string) {
c[k] = v
var DeploymentEtags Cache = &LocalCache{
data: make(map[string]types.ETag),
}

type ECSServiceAction = ecsserviceaction.ECSServiceAction
Expand All @@ -40,7 +51,7 @@ type ECSDeploymentStateChange struct {

type Event interface {
Service() string
Etag() string
Etag() types.ETag
Host() string
Status() string
State() defangv1.ServiceState
Expand Down Expand Up @@ -136,7 +147,7 @@ func (e *TaskStateChangeEvent) Service() string {
}
return service
}
func (e *TaskStateChangeEvent) Etag() string {
func (e *TaskStateChangeEvent) Etag() types.ETag {
var etag string
override := e.Detail.Overrides.ContainerOverrides[0]
i := strings.LastIndex(override.Name, "_")
Expand Down Expand Up @@ -209,7 +220,7 @@ func (e *KanikoTaskStateChangeEvent) Service() string {
return service
}

func (e *KanikoTaskStateChangeEvent) Etag() string {
func (e *KanikoTaskStateChangeEvent) Etag() types.ETag {
override := e.getKanikoOverride()
if override == nil {
return ""
Expand Down Expand Up @@ -283,7 +294,7 @@ func (e *KanikoTaskStateChangeEvent) getKanikoOverride() *ecstaskstatechange.Ove
func (e *ServiceActionEvent) Service() string {
return serviceNameFromResources(e.Resources)
}
func (e *ServiceActionEvent) Etag() string {
func (e *ServiceActionEvent) Etag() types.ETag {
return ""
}
func (e *ServiceActionEvent) Host() string {
Expand All @@ -299,7 +310,7 @@ func (e *ServiceActionEvent) State() defangv1.ServiceState {
func (e *DeploymentStateChangeEvent) Service() string {
return serviceNameFromResources(e.Resources)
}
func (e *DeploymentStateChangeEvent) Etag() string {
func (e *DeploymentStateChangeEvent) Etag() types.ETag {
return DeploymentEtags.Get(e.Detail.DeploymentId)
}
func (e *DeploymentStateChangeEvent) Host() string {
Expand Down
Loading