From 96c7548d13d5bd7f396812a9fd06b817c43762ba Mon Sep 17 00:00:00 2001 From: Sean Fischer Date: Fri, 16 Apr 2021 20:37:03 -0400 Subject: [PATCH] Fix permissions issue --- cmd/lambda/update-distdb/main.go | 25 +++++++++++++++++-------- phish_food/etl.py | 2 ++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/cmd/lambda/update-distdb/main.go b/cmd/lambda/update-distdb/main.go index cb1c516..ceeab9e 100644 --- a/cmd/lambda/update-distdb/main.go +++ b/cmd/lambda/update-distdb/main.go @@ -145,7 +145,7 @@ func repopulateCounts(conn *sql.DB, sess *session.Session) (err error) { return err } -func downloadDb(svc *s3.S3, distBucketName string) (err error) { +func downloadDb(svc *s3.S3, distBucketName string, dbFname string) (err error) { // Download db file from bucket result, err := svc.GetObject(&s3.GetObjectInput{ @@ -164,7 +164,7 @@ func downloadDb(svc *s3.S3, distBucketName string) (err error) { return err } - err = ioutil.WriteFile(DB_NAME, buf, 0644) + err = ioutil.WriteFile(dbFname, buf, 0644) if err != nil { return err } @@ -172,9 +172,9 @@ func downloadDb(svc *s3.S3, distBucketName string) (err error) { return err } -func uploadDb(svc *s3.S3, distBucketName string) (err error) { +func uploadDb(svc *s3.S3, distBucketName string, dbFname string) (err error) { - buf, err := ioutil.ReadFile(DB_NAME) + buf, err := ioutil.ReadFile(dbFname) if err != nil { return err } @@ -199,18 +199,27 @@ func Handler() (err error) { S3Service := s3.New(sess) + // TODO: I am handling this file poorly. + // I need to fix this and adjust each func responsibilities + var dbFname string + if os.Getenv("DEV") == "YES" { + dbFname = DB_NAME + } else { + dbFname = "/tmp/" + DB_NAME + } + distBucketName := os.Getenv("DIST_BUCKET") - err = downloadDb(S3Service, distBucketName) + err = downloadDb(S3Service, distBucketName, dbFname) if err != nil { return err } if os.Getenv("DEV") != "YES" { - defer os.Remove(DB_NAME) + defer os.Remove(dbFname) } // Perform db update - conn, err := sql.Open("sqlite3", DB_NAME) + conn, err := sql.Open("sqlite3", dbFname) if err != nil { log.Fatal(err.Error()) } @@ -230,7 +239,7 @@ func Handler() (err error) { log.Println("Finished updating counts table") // Upload the file back to s3 - err = uploadDb(S3Service, distBucketName) + err = uploadDb(S3Service, distBucketName, dbFname) return err } diff --git a/phish_food/etl.py b/phish_food/etl.py index edc0b55..68a5b08 100644 --- a/phish_food/etl.py +++ b/phish_food/etl.py @@ -131,6 +131,8 @@ def distdb( ) bucket.grant_read_write(handler) + tradeables_bucket.grant_read_write(handler) + count_results_table.grant_read_data(handler) # Update db ever day at 11:30 # This should ensure that all of that day's ETL results are available