cli: event trigger retry_conf support to squash (close #4296) (#4324)

This commit is contained in:
Aravind Shankar 2020-04-10 08:22:41 +05:30 committed by GitHub
parent 4698f054e0
commit 53e4f994d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 12 deletions

View File

@ -11,6 +11,7 @@ The order and collapsed state of columns is now persisted across page navigation
### Bug fixes and improvements
- cli: add retry_conf in event trigger for squashing migrations (close #4296) (#4324)
- cli: allow customization of server api paths (close #4016)
- cli: clean up migration files created during a failed migrate api (close #4312) (#4319)
- cli: add support for multiple versions of plugin (close #4105)

View File

@ -40,14 +40,23 @@ func (q CustomQuery) MergeEventTriggers(squashList *database.CustomList) error {
prevElems := make([]*list.Element, 0)
for _, val := range g.Group {
element := val.(*list.Element)
switch element.Value.(type) {
case *trackTableInput:
switch obj := element.Value.(type) {
case *createEventTriggerInput:
if obj.Replace {
for _, e := range prevElems {
squashList.Remove(e)
}
err := eventTriggerTransition.Trigger("delete_event_trigger", &evCfg, nil)
if err != nil {
return err
}
}
err := eventTriggerTransition.Trigger("create_event_trigger", &evCfg, nil)
if err != nil {
return err
}
prevElems = append(prevElems, element)
case *unTrackTableInput:
case *deleteEventTriggerInput:
err := eventTriggerTransition.Trigger("delete_event_trigger", &evCfg, nil)
if err != nil {
return err

View File

@ -475,10 +475,17 @@ type createEventTriggerInput struct {
Definition *createEventTriggerOperationInput `json:"definition,omitempty" yaml:"definition,omitempty"`
Headers interface{} `json:"headers" yaml:"headers"`
Replace bool `json:"replace" yaml:"replace"`
RetryConf *createEventTriggerRetryConfInput `json:"retry_conf" yaml:"retry_conf"`
createEventTriggerOperationInput
}
type createEventTriggerRetryConfInput struct {
IntervalSec int `json:"interval_sec" yaml:"interval_sec"`
NumRetries int `json:"num_retries" yaml:"num_retries"`
TimeOutSec int `json:"timeout_sec" yaml:"timeout_sec"`
}
type createEventTriggerOperationInput struct {
Insert interface{} `json:"insert,omitempty" yaml:"insert,omitempty"`
Update interface{} `json:"update,omitempty" yaml:"update,omitempty"`
@ -493,15 +500,16 @@ func (c *createEventTriggerInput) MarshalJSON() ([]byte, error) {
c.Definition = nil
}
return json.Marshal(&struct {
Name string `json:"name" yaml:"name"`
Table tableSchema `json:"table" yaml:"table"`
Webhook string `json:"webhook,omitempty" yaml:"webhook,omitempty"`
WebhookFromEnv string `json:"webhook_from_env,omitempty" yaml:"webhook_from_env,omitempty"`
Headers interface{} `json:"headers" yaml:"headers"`
Replace bool `json:"replace" yaml:"replace"`
Insert interface{} `json:"insert,omitempty" yaml:"insert,omitempty"`
Update interface{} `json:"update,omitempty" yaml:"update,omitempty"`
Delete interface{} `json:"delete,omitempty" yaml:"delete,omitempty"`
Name string `json:"name" yaml:"name"`
Table tableSchema `json:"table" yaml:"table"`
Webhook string `json:"webhook,omitempty" yaml:"webhook,omitempty"`
WebhookFromEnv string `json:"webhook_from_env,omitempty" yaml:"webhook_from_env,omitempty"`
Headers interface{} `json:"headers" yaml:"headers"`
Replace bool `json:"replace" yaml:"replace"`
RetryConf *createEventTriggerRetryConfInput `json:"retry_conf" yaml:"retry_conf"`
Insert interface{} `json:"insert,omitempty" yaml:"insert,omitempty"`
Update interface{} `json:"update,omitempty" yaml:"update,omitempty"`
Delete interface{} `json:"delete,omitempty" yaml:"delete,omitempty"`
}{
Name: c.Name,
Table: c.Table,
@ -509,6 +517,7 @@ func (c *createEventTriggerInput) MarshalJSON() ([]byte, error) {
WebhookFromEnv: c.WebhookFromEnv,
Headers: c.Headers,
Replace: c.Replace,
RetryConf: c.RetryConf,
Insert: c.Insert,
Update: c.Update,
Delete: c.Delete,