lp: task test better

This commit is contained in:
Andrew Jackson (Ajax) 2023-11-21 22:10:25 -06:00
parent ec43903ad6
commit deae3ad05f
3 changed files with 34 additions and 19 deletions

View File

@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"os"
"time"
"github.com/urfave/cli/v2"
"golang.org/x/xerrors"
@ -74,17 +75,13 @@ var wdPostTaskCmd = &cli.Command{
if err != nil {
return xerrors.Errorf("cannot get miner id %w", err)
}
did, err := deps.db.BeginTransaction(ctx, func(tx *harmonydb.Tx) (commit bool, err error) {
_, err = tx.Exec(`INSERT INTO harmony_task (name, posted_time, added_by) VALUES ('WdPost', CURRENT_TIMESTAMP, 123)`)
var id int64
_, err = deps.db.BeginTransaction(ctx, func(tx *harmonydb.Tx) (commit bool, err error) {
err = tx.QueryRow(`INSERT INTO harmony_task (name, posted_time, added_by) VALUES ('WdPost', CURRENT_TIMESTAMP, 123) RETURNING id`).Scan(&id)
if err != nil {
log.Error("inserting harmony_task: ", err)
return false, xerrors.Errorf("inserting harmony_task: %w", err)
}
var id int64
if err = tx.QueryRow(`SELECT id FROM harmony_task ORDER BY update_time DESC LIMIT 1`).Scan(&id); err != nil {
log.Error("getting inserted id: ", err)
return false, xerrors.Errorf("getting inserted id: %w", err)
}
_, err = tx.Exec(`INSERT INTO wdpost_partition_tasks
(task_id, sp_id, proving_period_start, deadline_index, partition_index) VALUES ($1, $2, $3, $4, $5)`,
id, maddr, ht, cctx.Uint64("deadline"), 0)
@ -101,8 +98,17 @@ var wdPostTaskCmd = &cli.Command{
if err != nil {
return xerrors.Errorf("writing SQL transaction: %w", err)
}
log.Infof("Inserted task %v", did)
log.Infof("Check your lotus-provider logs for more details.")
fmt.Printf("Inserted task %v. Waiting for success ", id)
var result string
for {
time.Sleep(time.Second)
deps.db.QueryRow(ctx, `SELECT result FROM harmony_test WHERE task_id=$1`, id).Scan(&result)
if result != "" {
break
}
fmt.Print(".")
}
log.Infof("Result:", result)
return nil
},
}

View File

@ -2,5 +2,6 @@ CREATE TABLE harmony_test (
task_id bigint
constraint harmony_test_pk
primary key,
options text
options text,
result text
);

View File

@ -2,6 +2,7 @@ package lpmessage
import (
"context"
"encoding/json"
"github.com/google/uuid"
"github.com/ipfs/go-cid"
@ -149,15 +150,22 @@ func (s *Sender) Send(ctx context.Context, msg *types.Message, mss *api.MessageS
}
if noSend {
log.Errorw("SKIPPED SENDING MESSAGE PER ENVIRONMENT VARIABLE - NOT PRODUCTION SAFE",
"from_key", fromA.String(),
"nonce", msg.Nonce,
"to_addr", msg.To.String(),
"signed_data", data,
"signed_json", string(jsonBytes),
"signed_cid", sigMsg.Cid(),
"send_reason", reason,
)
data, err := json.MarshalIndent(map[string]any{
"from_key": fromA.String(),
"nonce": msg.Nonce,
"to_addr": msg.To.String(),
"signed_data": data,
"signed_json": string(jsonBytes),
"signed_cid": sigMsg.Cid(),
"send_reason": reason,
}, "", " ")
if err != nil {
return false, xerrors.Errorf("marshaling message: %w", err)
}
id := ctx.Value(CtxTaskID)
tx.Exec(`UPDATE harmony_test SET result=$1 WHERE task_id=$2`, string(data), id)
log.Infof("SKIPPED sending test message to chain. Query harmony_test WHERE task_id= %v", id)
return true, nil // nothing committed
}
// write to db