Hotfix 4, fix commented out s3 😭

This commit is contained in:
TraceEntertains 2025-02-23 17:12:23 -05:00
parent 7fec60a222
commit 0f63dee88b
2 changed files with 130 additions and 128 deletions

View File

@ -2,8 +2,10 @@ package database
import (
"os"
"time"
"github.com/PretendoNetwork/super-mario-maker/globals"
"github.com/lib/pq"
)
func initPostgres() {
@ -155,125 +157,125 @@ func ensureEventCourseMetaDataFileExists() {
// * ensures that it exists both in S3 and in the
// * database before booting. It has the reserved
// * DataID 900000
// bucket := os.Getenv("PN_SMM_CONFIG_S3_BUCKET")
// key := "900000.bin"
bucket := os.Getenv("PN_SMM_CONFIG_S3_BUCKET")
key := "900000.bin"
// objectSizeS3, err := globals.S3ObjectSize(bucket, key)
// if err != nil {
// globals.Logger.Errorf("Failed to stat event course metadata file. Ensure your S3 credentials are correct and the 900000.bin file is uploaded to your bucket. S3 error: %s", err.Error())
// os.Exit(0)
// }
objectSizeS3, err := globals.S3ObjectSize(bucket, key)
if err != nil {
globals.Logger.Errorf("Failed to stat event course metadata file. Ensure your S3 credentials are correct and the 900000.bin file is uploaded to your bucket. S3 error: %s", err.Error())
os.Exit(0)
}
// globals.Logger.Success("Event course metadata file found. Verifying database")
globals.Logger.Success("Event course metadata file found. Verifying database")
// var exists bool
// err = Postgres.QueryRow(`SELECT EXISTS(SELECT 1 FROM datastore.objects WHERE data_id=900000) AS "exists"`).Scan(&exists)
// if err != nil {
// globals.Logger.Errorf("Error querying for event course metadata object in Postgres: %s", err.Error())
// os.Exit(0)
// }
var exists bool
err = Postgres.QueryRow(`SELECT EXISTS(SELECT 1 FROM datastore.objects WHERE data_id=900000) AS "exists"`).Scan(&exists)
if err != nil {
globals.Logger.Errorf("Error querying for event course metadata object in Postgres: %s", err.Error())
os.Exit(0)
}
// now := time.Now()
now := time.Now()
// if !exists {
// var dataID uint64
if !exists {
var dataID uint64
// globals.Logger.Info("Event course metadata object not found in Postgres. Creating")
globals.Logger.Info("Event course metadata object not found in Postgres. Creating")
// err := Postgres.QueryRow(`INSERT INTO datastore.objects (
// data_id,
// upload_completed,
// owner,
// size,
// name,
// data_type,
// meta_binary,
// permission,
// permission_recipients,
// delete_permission,
// delete_permission_recipients,
// flag,
// period,
// refer_data_id,
// tags,
// persistence_slot_id,
// extra_data,
// creation_date,
// update_date
// ) VALUES (
// $1,
// $2,
// $3,
// $4,
// $5,
// $6,
// $7,
// $8,
// $9,
// $10,
// $11,
// $12,
// $13,
// $14,
// $15,
// $16,
// $17,
// $18,
// $19
// ) RETURNING data_id`,
// 900000,
// true,
// 2, // * "Quazal Rendez-Vous" special account
// objectSizeS3,
// "", // * Has no name
// 50, // * Metadata file has DataType 50. Event courses have DataType 51
// []byte{}, // * No MetaBinary
// 0, // * Accessible by everyone
// pq.Array([]uint32{}),
// 3, // * THE REAL SERVER HAS THIS SET TO 0, FOR EVERYONE. THAT'S SUPER INSECURE.
// pq.Array([]uint32{}),
// 0,
// 64306,
// 0,
// pq.Array([]string{}),
// 0, // * Unsure what the slot ID actually is
// pq.Array([]string{}),
// now,
// now,
// ).Scan(&dataID)
// if err != nil {
// globals.Logger.Errorf("Error creating event course metadata object: %s", err.Error())
// os.Exit(0)
// }
// } else {
// var objectSizeDB uint32
err := Postgres.QueryRow(`INSERT INTO datastore.objects (
data_id,
upload_completed,
owner,
size,
name,
data_type,
meta_binary,
permission,
permission_recipients,
delete_permission,
delete_permission_recipients,
flag,
period,
refer_data_id,
tags,
persistence_slot_id,
extra_data,
creation_date,
update_date
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
$7,
$8,
$9,
$10,
$11,
$12,
$13,
$14,
$15,
$16,
$17,
$18,
$19
) RETURNING data_id`,
900000,
true,
2, // * "Quazal Rendez-Vous" special account
objectSizeS3,
"", // * Has no name
50, // * Metadata file has DataType 50. Event courses have DataType 51
[]byte{}, // * No MetaBinary
0, // * Accessible by everyone
pq.Array([]uint32{}),
3, // * THE REAL SERVER HAS THIS SET TO 0, FOR EVERYONE. THAT'S SUPER INSECURE.
pq.Array([]uint32{}),
0,
64306,
0,
pq.Array([]string{}),
0, // * Unsure what the slot ID actually is
pq.Array([]string{}),
now,
now,
).Scan(&dataID)
if err != nil {
globals.Logger.Errorf("Error creating event course metadata object: %s", err.Error())
os.Exit(0)
}
} else {
var objectSizeDB uint32
// err := Postgres.QueryRow(`SELECT size FROM datastore.objects WHERE data_id=900000`).Scan(&objectSizeDB)
// if err != nil {
// globals.Logger.Errorf("Error querying event course metadata object size: %s", err.Error())
// os.Exit(0)
// }
err := Postgres.QueryRow(`SELECT size FROM datastore.objects WHERE data_id=900000`).Scan(&objectSizeDB)
if err != nil {
globals.Logger.Errorf("Error querying event course metadata object size: %s", err.Error())
os.Exit(0)
}
// if objectSizeS3 != uint64(objectSizeDB) {
// globals.Logger.Success("Event course metadata object found in Postgres! Updating size")
if objectSizeS3 != uint64(objectSizeDB) {
globals.Logger.Success("Event course metadata object found in Postgres! Updating size")
// _, err := Postgres.Exec(`UPDATE datastore.objects SET size=$1, update_date=$2 WHERE data_id=900000`, objectSizeS3, now)
// if err != nil {
// globals.Logger.Errorf("Error updating event course metadata object size: %s", err.Error())
// os.Exit(0)
// }
// } else {
// globals.Logger.Success("Event course metadata object found in Postgres!")
// }
_, err := Postgres.Exec(`UPDATE datastore.objects SET size=$1, update_date=$2 WHERE data_id=900000`, objectSizeS3, now)
if err != nil {
globals.Logger.Errorf("Error updating event course metadata object size: %s", err.Error())
os.Exit(0)
}
} else {
globals.Logger.Success("Event course metadata object found in Postgres!")
}
// globals.Logger.Info("Ensuring event course metadata object has correct delete permission")
globals.Logger.Info("Ensuring event course metadata object has correct delete permission")
// _, err = Postgres.Exec(`UPDATE datastore.objects SET delete_permission=3 WHERE data_id=900000`)
// if err != nil {
// globals.Logger.Errorf("Error updating event course metadata object delete permission: %s", err.Error())
// os.Exit(0)
// }
// }
_, err = Postgres.Exec(`UPDATE datastore.objects SET delete_permission=3 WHERE data_id=900000`)
if err != nil {
globals.Logger.Errorf("Error updating event course metadata object delete permission: %s", err.Error())
os.Exit(0)
}
}
globals.Logger.Success("Event course metadata object found and is up to date!")
}

42
init.go
View File

@ -15,8 +15,8 @@ import (
"github.com/PretendoNetwork/nex-go/v2"
//"github.com/minio/minio-go/v7"
//"github.com/minio/minio-go/v7/pkg/credentials"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/metadata"
@ -32,10 +32,10 @@ func init() {
globals.Logger.Warning("Error loading .env file")
}
// s3Endpoint := os.Getenv("PN_SMM_CONFIG_S3_ENDPOINT")
// s3AccessKey := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_KEY")
// s3AccessSecret := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_SECRET")
// s3SecureEnv := os.Getenv("PN_SMM_CONFIG_S3_SECURE")
s3Endpoint := os.Getenv("PN_SMM_CONFIG_S3_ENDPOINT")
s3AccessKey := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_KEY")
s3AccessSecret := os.Getenv("PN_SMM_CONFIG_S3_ACCESS_SECRET")
s3SecureEnv := os.Getenv("PN_SMM_CONFIG_S3_SECURE")
postgresURI := os.Getenv("PN_SMM_POSTGRES_URI")
authenticationServerPort := os.Getenv("PN_SMM_AUTHENTICATION_SERVER_PORT")
@ -126,24 +126,24 @@ func init() {
"X-API-Key", accountGRPCAPIKey,
)
// staticCredentials := credentials.NewStaticV4(s3AccessKey, s3AccessSecret, "")
staticCredentials := credentials.NewStaticV4(s3AccessKey, s3AccessSecret, "")
// s3Secure, err := strconv.ParseBool(s3SecureEnv)
// if err != nil {
// globals.Logger.Warningf("PN_SMM_CONFIG_S3_SECURE environment variable not set. Using default value: %t", true)
// s3Secure = true
// }
s3Secure, err := strconv.ParseBool(s3SecureEnv)
if err != nil {
globals.Logger.Warningf("PN_SMM_CONFIG_S3_SECURE environment variable not set. Using default value: %t", true)
s3Secure = true
}
// minIOClient, err := minio.New(s3Endpoint, &minio.Options{
// Creds: staticCredentials,
// Secure: s3Secure,
// })
// if err != nil {
// panic(err)
// }
minIOClient, err := minio.New(s3Endpoint, &minio.Options{
Creds: staticCredentials,
Secure: s3Secure,
})
if err != nil {
panic(err)
}
// globals.MinIOClient = minIOClient
// globals.Presigner = globals.NewS3Presigner(globals.MinIOClient)
globals.MinIOClient = minIOClient
globals.Presigner = globals.NewS3Presigner(globals.MinIOClient)
// * Connect to and setup databases
database.ConnectPostgres()