Skip to content

Commit

Permalink
fix: migration 26 replace calc max failed visits
Browse files Browse the repository at this point in the history
  • Loading branch information
dennis-tra committed Nov 20, 2023
1 parent 725eaba commit d84e97f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
14 changes: 7 additions & 7 deletions pkg/db/client_db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func setup(t *testing.T) (context.Context, *DBClient, func(t *testing.T)) {

c := config.Database{
DatabaseHost: "localhost",
DatabasePort: 2345,
DatabasePort: 5432,
DatabaseName: "nebula_test",
DatabasePassword: "password",
DatabaseUser: "nebula_test",
Expand All @@ -80,7 +80,7 @@ func TestClient_InitCrawl(t *testing.T) {
ctx, client, teardown := setup(t)
defer teardown(t)

crawl, err := client.InitCrawl(ctx)
crawl, err := client.InitCrawl(ctx, "test")
require.NoError(t, err)

assert.NotZero(t, crawl.ID)
Expand Down Expand Up @@ -187,7 +187,7 @@ func TestClient_PersistCrawlProperties(t *testing.T) {
ctx, client, teardown := setup(t)
defer teardown(t)

crawl, err := client.InitCrawl(ctx)
crawl, err := client.InitCrawl(ctx, "test")
require.NoError(t, err)

props := map[string]map[string]int{}
Expand Down Expand Up @@ -239,7 +239,7 @@ func TestClient_PersistCrawlVisit(t *testing.T) {
ctx, client, teardown := setup(t)
defer teardown(t)

crawl, err := client.InitCrawl(ctx)
crawl, err := client.InitCrawl(ctx, "test")
require.NoError(t, err)

peerID, err := lp2ptest.RandPeerID()
Expand Down Expand Up @@ -282,7 +282,7 @@ func TestClient_SessionScenario_1(t *testing.T) {
ctx, client, teardown := setup(t)
defer teardown(t)

crawl, err := client.InitCrawl(ctx)
crawl, err := client.InitCrawl(ctx, "test")
require.NoError(t, err)

peerID, err := lp2ptest.RandPeerID()
Expand Down Expand Up @@ -393,7 +393,7 @@ func TestClient_SessionScenario_1(t *testing.T) {
assert.InDelta(t, s.LastFailedVisit.Time.UnixNano(), visitEnd.UnixNano(), float64(time.Microsecond))
assert.Equal(t, s.FinishReason.String, models.NetErrorConnectionRefused)

crawl, err = client.InitCrawl(ctx)
crawl, err = client.InitCrawl(ctx, "test")
require.NoError(t, err)
visitStart = time.Now().Add(-time.Second)
visitEnd = time.Now()
Expand Down Expand Up @@ -466,7 +466,7 @@ func TestClient_SessionScenario_2(t *testing.T) {
ctx, client, teardown := setup(t)
defer teardown(t)

crawl, err := client.InitCrawl(ctx)
crawl, err := client.InitCrawl(ctx, "test")
require.NoError(t, err)

peerID, err := lp2ptest.RandPeerID()
Expand Down
25 changes: 25 additions & 0 deletions pkg/db/migrations/000026_add_net_errors.up.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,29 @@ ALTER TYPE net_error ADD VALUE 'cant_assign_requested_address';
ALTER TYPE net_error ADD VALUE 'connection_gated';
ALTER TYPE net_error RENAME VALUE 'no_public_ip' TO 'no_ip_address';

CREATE OR REPLACE FUNCTION calc_max_failed_visits(
first_successful_visit TIMESTAMPTZ,
last_successful_visit TIMESTAMPTZ,
error net_error
)
RETURNS INT AS
$$
DECLARE
uptime INTERVAL;
BEGIN
SELECT last_successful_visit - first_successful_visit INTO uptime;
IF error = 'no_good_addresses' OR error = 'no_ip_address' OR error = 'no_route_to_host' OR error = 'peer_id_mismatch' THEN
RETURN 0;
ELSIF uptime < '1h'::INTERVAL THEN
RETURN 0;
ELSIF uptime < '6h'::INTERVAL THEN
RETURN 1;
ELSIF uptime < '24h'::INTERVAL THEN
RETURN 2;
ELSE
RETURN 3;
END IF;
END;
$$ LANGUAGE 'plpgsql' ;

COMMIT

0 comments on commit d84e97f

Please sign in to comment.