Skip to content

Commit

Permalink
satellite/satellitedb: add last_ip_port to node_events
Browse files Browse the repository at this point in the history
add new column, last_ip_port, to node_events table, so we can send this
info to node operators.

Change-Id: If01d827f36a4bacd1c6d286a7c7b48ca12aad04f
  • Loading branch information
cam-a authored and Storj Robot committed Jan 23, 2024
1 parent 608ab61 commit f6646b0
Show file tree
Hide file tree
Showing 7 changed files with 862 additions and 19 deletions.
2 changes: 2 additions & 0 deletions satellite/satellitedb/dbx/node.dbx
Expand Up @@ -218,6 +218,8 @@ model node_event (
field id blob
// emails is the storagenode operators contact address.
field email text
// last_ip_port is the last known ip and port of the storage node. Set if we want to send it to operator.
field last_ip_port text ( nullable )
// node_id is the storagenode storj.NodeID.
field node_id blob
// event is the event kind, which refers to satellite/nodeevents.Type.
Expand Down
74 changes: 56 additions & 18 deletions satellite/satellitedb/dbx/satellitedb.dbx.go
Expand Up @@ -482,6 +482,7 @@ CREATE TABLE node_api_versions (
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
last_ip_port text,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
Expand Down Expand Up @@ -1178,6 +1179,7 @@ CREATE TABLE node_api_versions (
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
last_ip_port text,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
Expand Down Expand Up @@ -4785,6 +4787,7 @@ func (NodeApiVersion_UpdatedAt_Field) _Column() string { return "updated_at" }
type NodeEvent struct {
Id []byte
Email string
LastIpPort *string
NodeId []byte
Event int
CreatedAt time.Time
Expand All @@ -4795,6 +4798,7 @@ type NodeEvent struct {
func (NodeEvent) _Table() string { return "node_events" }

type NodeEvent_Create_Fields struct {
LastIpPort NodeEvent_LastIpPort_Field
CreatedAt NodeEvent_CreatedAt_Field
LastAttempted NodeEvent_LastAttempted_Field
EmailSent NodeEvent_EmailSent_Field
Expand Down Expand Up @@ -4843,6 +4847,38 @@ func (f NodeEvent_Email_Field) value() interface{} {

func (NodeEvent_Email_Field) _Column() string { return "email" }

type NodeEvent_LastIpPort_Field struct {
_set bool
_null bool
_value *string
}

func NodeEvent_LastIpPort(v string) NodeEvent_LastIpPort_Field {
return NodeEvent_LastIpPort_Field{_set: true, _value: &v}
}

func NodeEvent_LastIpPort_Raw(v *string) NodeEvent_LastIpPort_Field {
if v == nil {
return NodeEvent_LastIpPort_Null()
}
return NodeEvent_LastIpPort(*v)
}

func NodeEvent_LastIpPort_Null() NodeEvent_LastIpPort_Field {
return NodeEvent_LastIpPort_Field{_set: true, _null: true}
}

func (f NodeEvent_LastIpPort_Field) isnull() bool { return !f._set || f._null || f._value == nil }

func (f NodeEvent_LastIpPort_Field) value() interface{} {
if !f._set || f._null {
return nil
}
return f._value
}

func (NodeEvent_LastIpPort_Field) _Column() string { return "last_ip_port" }

type NodeEvent_NodeId_Field struct {
_set bool
_null bool
Expand Down Expand Up @@ -12735,19 +12771,20 @@ func (obj *pgxImpl) Create_NodeEvent(ctx context.Context,
defer mon.Task()(&ctx)(&err)
__id_val := node_event_id.value()
__email_val := node_event_email.value()
__last_ip_port_val := optional.LastIpPort.value()
__node_id_val := node_event_node_id.value()
__event_val := node_event_event.value()
__last_attempted_val := optional.LastAttempted.value()
__email_sent_val := optional.EmailSent.value()

var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, node_id, event, last_attempted, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?, ?")}
var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, last_ip_port, node_id, event, last_attempted, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?, ?, ?")}
var __clause = &__sqlbundle_Hole{SQL: __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("("), __columns, __sqlbundle_Literal(") VALUES ("), __placeholders, __sqlbundle_Literal(")")}}}

var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent")}}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent")}}

var __values []interface{}
__values = append(__values, __id_val, __email_val, __node_id_val, __event_val, __last_attempted_val, __email_sent_val)
__values = append(__values, __id_val, __email_val, __last_ip_port_val, __node_id_val, __event_val, __last_attempted_val, __email_sent_val)

__optional_columns := __sqlbundle_Literals{Join: ", "}
__optional_placeholders := __sqlbundle_Literals{Join: ", "}
Expand All @@ -12770,7 +12807,7 @@ func (obj *pgxImpl) Create_NodeEvent(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return nil, obj.makeErr(err)
}
Expand Down Expand Up @@ -15292,7 +15329,7 @@ func (obj *pgxImpl) Get_NodeEvent_By_Id(ctx context.Context,
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)

var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.id = ?")
var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.id = ?")

var __values []interface{}
__values = append(__values, node_event_id.value())
Expand All @@ -15301,7 +15338,7 @@ func (obj *pgxImpl) Get_NodeEvent_By_Id(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return (*NodeEvent)(nil), obj.makeErr(err)
}
Expand All @@ -15315,7 +15352,7 @@ func (obj *pgxImpl) First_NodeEvent_By_Email_And_Event_OrderBy_Desc_CreatedAt(ct
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)

var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.email = ? AND node_events.event = ? ORDER BY node_events.created_at DESC LIMIT 1 OFFSET 0")
var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.email = ? AND node_events.event = ? ORDER BY node_events.created_at DESC LIMIT 1 OFFSET 0")

var __values []interface{}
__values = append(__values, node_event_email.value(), node_event_event.value())
Expand All @@ -15339,7 +15376,7 @@ func (obj *pgxImpl) First_NodeEvent_By_Email_And_Event_OrderBy_Desc_CreatedAt(ct
}

node_event = &NodeEvent{}
err = __rows.Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = __rows.Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -21162,19 +21199,20 @@ func (obj *pgxcockroachImpl) Create_NodeEvent(ctx context.Context,
defer mon.Task()(&ctx)(&err)
__id_val := node_event_id.value()
__email_val := node_event_email.value()
__last_ip_port_val := optional.LastIpPort.value()
__node_id_val := node_event_node_id.value()
__event_val := node_event_event.value()
__last_attempted_val := optional.LastAttempted.value()
__email_sent_val := optional.EmailSent.value()

var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, node_id, event, last_attempted, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?, ?")}
var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, last_ip_port, node_id, event, last_attempted, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?, ?, ?")}
var __clause = &__sqlbundle_Hole{SQL: __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("("), __columns, __sqlbundle_Literal(") VALUES ("), __placeholders, __sqlbundle_Literal(")")}}}

var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent")}}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent")}}

var __values []interface{}
__values = append(__values, __id_val, __email_val, __node_id_val, __event_val, __last_attempted_val, __email_sent_val)
__values = append(__values, __id_val, __email_val, __last_ip_port_val, __node_id_val, __event_val, __last_attempted_val, __email_sent_val)

__optional_columns := __sqlbundle_Literals{Join: ", "}
__optional_placeholders := __sqlbundle_Literals{Join: ", "}
Expand All @@ -21197,7 +21235,7 @@ func (obj *pgxcockroachImpl) Create_NodeEvent(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return nil, obj.makeErr(err)
}
Expand Down Expand Up @@ -23719,7 +23757,7 @@ func (obj *pgxcockroachImpl) Get_NodeEvent_By_Id(ctx context.Context,
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)

var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.id = ?")
var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.id = ?")

var __values []interface{}
__values = append(__values, node_event_id.value())
Expand All @@ -23728,7 +23766,7 @@ func (obj *pgxcockroachImpl) Get_NodeEvent_By_Id(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return (*NodeEvent)(nil), obj.makeErr(err)
}
Expand All @@ -23742,7 +23780,7 @@ func (obj *pgxcockroachImpl) First_NodeEvent_By_Email_And_Event_OrderBy_Desc_Cre
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)

var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.email = ? AND node_events.event = ? ORDER BY node_events.created_at DESC LIMIT 1 OFFSET 0")
var __embed_stmt = __sqlbundle_Literal("SELECT node_events.id, node_events.email, node_events.last_ip_port, node_events.node_id, node_events.event, node_events.created_at, node_events.last_attempted, node_events.email_sent FROM node_events WHERE node_events.email = ? AND node_events.event = ? ORDER BY node_events.created_at DESC LIMIT 1 OFFSET 0")

var __values []interface{}
__values = append(__values, node_event_email.value(), node_event_event.value())
Expand All @@ -23766,7 +23804,7 @@ func (obj *pgxcockroachImpl) First_NodeEvent_By_Email_And_Event_OrderBy_Desc_Cre
}

node_event = &NodeEvent{}
err = __rows.Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
err = __rows.Scan(&node_event.Id, &node_event.Email, &node_event.LastIpPort, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.LastAttempted, &node_event.EmailSent)
if err != nil {
return nil, err
}
Expand Down
1 change: 1 addition & 0 deletions satellite/satellitedb/dbx/satellitedb.dbx.pgx.sql
Expand Up @@ -169,6 +169,7 @@ CREATE TABLE node_api_versions (
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
last_ip_port text,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
Expand Down
1 change: 1 addition & 0 deletions satellite/satellitedb/dbx/satellitedb.dbx.pgxcockroach.sql
Expand Up @@ -169,6 +169,7 @@ CREATE TABLE node_api_versions (
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
last_ip_port text,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
Expand Down
8 changes: 8 additions & 0 deletions satellite/satellitedb/migrate.go
Expand Up @@ -2596,6 +2596,14 @@ func (db *satelliteDB) ProductionMigration() *migrate.Migration {
`UPDATE projects SET default_versioning = 1 WHERE default_versioning = 0;`,
},
},
{
DB: &db.migrationDB,
Description: "add last_ip_port to node_events",
Version: 255,
Action: migrate.SQL{
`ALTER TABLE node_events ADD COLUMN last_ip_port TEXT;`,
},
},
// NB: after updating testdata in `testdata`, run
// `go generate` to update `migratez.go`.
},
Expand Down
3 changes: 2 additions & 1 deletion satellite/satellitedb/migratez.go
Expand Up @@ -13,7 +13,7 @@ func (db *satelliteDB) testMigration() *migrate.Migration {
{
DB: &db.migrationDB,
Description: "Testing setup",
Version: 254,
Version: 255,
Action: migrate.SQL{`-- AUTOGENERATED BY storj.io/dbx
-- DO NOT EDIT
CREATE TABLE account_freeze_events (
Expand Down Expand Up @@ -185,6 +185,7 @@ CREATE TABLE node_api_versions (
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
last_ip_port text,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
Expand Down

0 comments on commit f6646b0

Please sign in to comment.