Skip to content
Open
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
55 changes: 33 additions & 22 deletions cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ dapr run --run-file /path/to/directory -k
} else {
print.SuccessStatusEvent(os.Stdout, "Exited Dapr successfully")
}
daprRunning <- false
sigCh <- os.Interrupt
}()

Expand Down Expand Up @@ -330,7 +331,7 @@ dapr run --run-file /path/to/directory -k
daprRunning <- true
}()

<-daprRunning
daprRunStatus := <-daprRunning

go func() {
if output.AppCMD == nil {
Expand Down Expand Up @@ -382,6 +383,7 @@ dapr run --run-file /path/to/directory -k
} else {
print.SuccessStatusEvent(os.Stdout, "Exited App successfully")
}
appRunning <- false
sigCh <- os.Interrupt
}()

Expand All @@ -400,32 +402,41 @@ dapr run --run-file /path/to/directory -k
os.Exit(1)
}

// Metadata API is only available if app has started listening to port, so wait for app to start before calling metadata API.
err = metadata.Put(output.DaprHTTPPort, "cliPID", strconv.Itoa(os.Getpid()), output.AppID, unixDomainSocket)
if err != nil {
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for cliPID: %s", err.Error())
}

if output.AppCMD != nil {
if output.AppCMD.Process != nil {
print.InfoStatusEvent(os.Stdout, fmt.Sprintf("Updating metadata for appPID: %d", output.AppCMD.Process.Pid))
err = metadata.Put(output.DaprHTTPPort, "appPID", strconv.Itoa(output.AppCMD.Process.Pid), output.AppID, unixDomainSocket)
if err != nil {
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for appPID: %s", err.Error())
}
// Call metadata endpoint and update the dapr cli PID, app PID and app command in separate goroutine to avoid blocking termination signals.
// For example, when "dapr run" initialization fails with fatal errors on component init errors.
// See issue: https://github.com/dapr/cli/issues/1338
go func() {
for !daprRunStatus || !appRunStatus {
return
}

appCommand := strings.Join(args, " ")
print.InfoStatusEvent(os.Stdout, "Updating metadata for app command: "+appCommand)
err = metadata.Put(output.DaprHTTPPort, "appCommand", appCommand, output.AppID, unixDomainSocket)
// Metadata API is only available if app has started listening to port, so wait for app to start before calling metadata API.
err = metadata.Put(output.DaprHTTPPort, "cliPID", strconv.Itoa(os.Getpid()), output.AppID, unixDomainSocket)
if err != nil {
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for appCommand: %s", err.Error())
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for cliPID: %s", err.Error())
}

if output.AppCMD != nil {
if output.AppCMD.Process != nil {
print.InfoStatusEvent(os.Stdout, fmt.Sprintf("Updating metadata for appPID: %d", output.AppCMD.Process.Pid))
err = metadata.Put(output.DaprHTTPPort, "appPID", strconv.Itoa(output.AppCMD.Process.Pid), output.AppID, unixDomainSocket)
if err != nil {
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for appPID: %s", err.Error())
}
}

appCommand := strings.Join(args, " ")
print.InfoStatusEvent(os.Stdout, "Updating metadata for app command: "+appCommand)
err = metadata.Put(output.DaprHTTPPort, "appCommand", appCommand, output.AppID, unixDomainSocket)
if err != nil {
print.WarningStatusEvent(os.Stdout, "Could not update sidecar metadata for appCommand: %s", err.Error())
} else {
print.SuccessStatusEvent(os.Stdout, "You're up and running! Both Dapr and your app logs will appear here.\n")
}
} else {
print.SuccessStatusEvent(os.Stdout, "You're up and running! Both Dapr and your app logs will appear here.\n")
print.SuccessStatusEvent(os.Stdout, "You're up and running! Dapr logs will appear here.\n")
}
} else {
print.SuccessStatusEvent(os.Stdout, "You're up and running! Dapr logs will appear here.\n")
}
}()

<-sigCh
print.InfoStatusEvent(os.Stdout, "\nterminated signal received: shutting down")
Expand Down
Loading