fix: v1 event push on REST API, namespace (#1575)

* fix: v1 event push on REST API, namespace

* fix(go-sdk): duration timeouts should be cast to seconds
This commit is contained in:
abelanger5
2025-04-18 13:22:00 -04:00
committed by GitHub
parent 4e42beecc6
commit 7e1b43bf4a
3 changed files with 28 additions and 16 deletions
+12 -6
View File
@@ -145,12 +145,11 @@ func makeContractTaskOpts(t *TaskShared, taskDefaults *create.TaskDefaults) *con
}
if t.ExecutionTimeout != nil {
executionTimeout := t.ExecutionTimeout.String()
taskOpts.Timeout = executionTimeout
taskOpts.Timeout = durationToSeconds(*t.ExecutionTimeout)
}
if t.ScheduleTimeout != nil {
scheduleTimeout := t.ScheduleTimeout.String()
scheduleTimeout := durationToSeconds(*t.ScheduleTimeout)
taskOpts.ScheduleTimeout = &scheduleTimeout
}
@@ -174,12 +173,11 @@ func makeContractTaskOpts(t *TaskShared, taskDefaults *create.TaskDefaults) *con
}
if t.ExecutionTimeout == nil && taskDefaults.ExecutionTimeout != 0 {
executionTimeout := taskDefaults.ExecutionTimeout.String()
taskOpts.Timeout = executionTimeout
taskOpts.Timeout = durationToSeconds(taskDefaults.ExecutionTimeout)
}
if t.ScheduleTimeout == nil && taskDefaults.ScheduleTimeout != 0 {
scheduleTimeout := taskDefaults.ScheduleTimeout.String()
scheduleTimeout := durationToSeconds(taskDefaults.ScheduleTimeout)
taskOpts.ScheduleTimeout = &scheduleTimeout
}
@@ -240,6 +238,14 @@ func (t *TaskDeclaration[I]) Dump(workflowName string, taskDefaults *create.Task
return base
}
func durationToSeconds(d time.Duration) string {
if d == 0 {
return "0s"
}
return fmt.Sprintf("%ds", int(d.Seconds()))
}
func (t *DurableTaskDeclaration[I]) Dump(workflowName string, taskDefaults *create.TaskDefaults) *contracts.CreateTaskOpts {
base := makeContractTaskOpts(&t.TaskShared, taskDefaults)
base.ReadableId = t.Name
+15 -2
View File
@@ -165,10 +165,23 @@ func NewWorkflowDeclaration[I any, O any](opts create.WorkflowCreateOpts[I], v0
workflowName := opts.Name
if ns := v0.Namespace(); ns != "" && !strings.HasPrefix(opts.Name, ns) {
ns := v0.Namespace()
if ns != "" && !strings.HasPrefix(opts.Name, ns) {
workflowName = fmt.Sprintf("%s%s", ns, workflowName)
}
onEvents := opts.OnEvents
if ns != "" && len(onEvents) > 0 {
// Prefix the events with the namespace
onEvents = make([]string, len(opts.OnEvents))
for i, event := range opts.OnEvents {
onEvents[i] = fmt.Sprintf("%s%s", ns, event)
}
}
wf := &workflowDeclarationImpl[I, O]{
v0: v0,
crons: crons,
@@ -176,7 +189,7 @@ func NewWorkflowDeclaration[I any, O any](opts create.WorkflowCreateOpts[I], v0
metrics: metrics,
workflows: workflows,
Name: workflowName,
OnEvents: opts.OnEvents,
OnEvents: onEvents,
OnCron: opts.OnCron,
Concurrency: opts.Concurrency,
// OnFailureTask: opts.OnFailureTask, // TODO: add this back in