From 518d777e63237bc707f25645bc2a2bfe5576d5de Mon Sep 17 00:00:00 2001 From: saffronjam Date: Mon, 20 Nov 2023 10:57:21 +0100 Subject: [PATCH] add option to disable ping path --- models/sys/deployment/client.go | 14 ++++++++++---- models/sys/deployment/dto.go | 7 ++++++- models/sys/storage_manager/client.go | 14 ++++++++++---- models/sys/vm/client.go | 14 ++++++++++---- pkg/workers/ping/workers.go | 23 +++++++++++++++-------- 5 files changed, 51 insertions(+), 21 deletions(-) diff --git a/models/sys/deployment/client.go b/models/sys/deployment/client.go index b4cc60b0..4cc7d50e 100644 --- a/models/sys/deployment/client.go +++ b/models/sys/deployment/client.go @@ -70,19 +70,25 @@ func (client *Client) WithActivities(activities ...string) *Client { }) } - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "$or", orFilter, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } func (client *Client) WithNoActivities() *Client { - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "activities", bson.M{ "$gte": bson.M{}, }, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } diff --git a/models/sys/deployment/dto.go b/models/sys/deployment/dto.go index 71775618..1b648b71 100644 --- a/models/sys/deployment/dto.go +++ b/models/sys/deployment/dto.go @@ -62,6 +62,11 @@ func (deployment *Deployment) ToDTO(storageManagerURL *string) body.DeploymentRe image = &app.Image } + var healthCheckPath *string + if app.PingPath != "" { + healthCheckPath = &app.PingPath + } + return body.DeploymentRead{ ID: deployment.ID, Name: deployment.Name, @@ -81,7 +86,7 @@ func (deployment *Deployment) ToDTO(storageManagerURL *string) body.DeploymentRe Private: app.Private, InternalPort: app.InternalPort, Image: image, - HealthCheckPath: &app.PingPath, + HealthCheckPath: healthCheckPath, Status: deployment.StatusMessage, PingResult: pingResult, Integrations: integrations, diff --git a/models/sys/storage_manager/client.go b/models/sys/storage_manager/client.go index 8a09368a..071e46d4 100644 --- a/models/sys/storage_manager/client.go +++ b/models/sys/storage_manager/client.go @@ -70,19 +70,25 @@ func (client *Client) WithActivities(activities ...string) *Client { }) } - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "$or", orFilter, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } func (client *Client) WithNoActivities() *Client { - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "activities", bson.M{ "$gte": bson.M{}, }, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } diff --git a/models/sys/vm/client.go b/models/sys/vm/client.go index ad535b7b..cb3860f4 100644 --- a/models/sys/vm/client.go +++ b/models/sys/vm/client.go @@ -70,19 +70,25 @@ func (client *Client) WithActivities(activities ...string) *Client { }) } - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "$or", orFilter, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } func (client *Client) WithNoActivities() *Client { - client.ActivityResourceClient.AddExtraFilter(bson.D{{ + filter := bson.D{{ "activities", bson.M{ "$gte": bson.M{}, }, - }}) + }} + + client.ResourceClient.AddExtraFilter(filter) + client.ActivityResourceClient.AddExtraFilter(filter) return client } diff --git a/pkg/workers/ping/workers.go b/pkg/workers/ping/workers.go index 2e949e64..fb03f008 100644 --- a/pkg/workers/ping/workers.go +++ b/pkg/workers/ping/workers.go @@ -49,13 +49,9 @@ func pingDeployment(deployment *deploymentModels.Deployment) { return } - if mainApp.Private { - return - } - baseURL := deployment.GetURL() - if baseURL == nil { - utils.PrettyPrintError(makeError(fmt.Errorf("deployment %s has no url", deployment.Name))) + if mainApp.Private || mainApp.PingPath == "" || baseURL == nil { + go resetPing(*deployment) return } @@ -75,13 +71,24 @@ func pingDeployment(deployment *deploymentModels.Deployment) { func pingAndSave(deployment deploymentModels.Deployment, url string) { code, err := ping(url) - if err != nil { utils.PrettyPrintError(fmt.Errorf("error fetching deployment status ping. details: %w", err)) return } - _ = deployment_service.SavePing(deployment.ID, code) + err = deployment_service.SavePing(deployment.ID, code) + if err != nil { + utils.PrettyPrintError(fmt.Errorf("error saving deployment status ping. details: %w", err)) + return + } +} + +func resetPing(deployment deploymentModels.Deployment) { + err := deployment_service.SavePing(deployment.ID, 0) + if err != nil { + utils.PrettyPrintError(fmt.Errorf("error resetting deployment status ping. details: %w", err)) + return + } } func ping(url string) (int, error) {