You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by "TSultanov (via GitHub)" <gi...@apache.org> on 2023/04/18 14:16:14 UTC

[GitHub] [beam] TSultanov commented on a diff in pull request #26102: [Playground] Gradle task to remove snippet by its ID

TSultanov commented on code in PR #26102:
URL: https://github.com/apache/beam/pull/26102#discussion_r1170102726


##########
playground/backend/cmd/remove_unused_snippets.go:
##########
@@ -16,46 +16,141 @@
 package main
 
 import (
+	"beam.apache.org/playground/backend/internal/constants"
+	"beam.apache.org/playground/backend/internal/logger"
 	"context"
+	"flag"
 	"fmt"
 	"os"
-	"strconv"
 	"time"
 
 	"beam.apache.org/playground/backend/internal/db/datastore"
 	"beam.apache.org/playground/backend/internal/db/mapper"
 )
 
-func main() {
-	if len(os.Args) < 3 {
-		fmt.Println("Go must have at least three arguments")
-		return
+func createDatastoreClient(ctx context.Context, projectId string) (*datastore.Datastore, error) {
+	pcMapper := mapper.NewPrecompiledObjectMapper()
+	db, err := datastore.New(ctx, pcMapper, projectId)
+	if err != nil {
+		logger.Errorf("Couldn't create the database client, err: %s \n", err.Error())
+		return nil, err
 	}
-	dayDiff := os.Args[1]
-	projectId := os.Args[2]
-	fmt.Println("Removing unused snippets is running...")
+
+	return db, nil
+}
+
+func cleanup(dayDiff int, projectId, namespace string) error {
+	logger.Infof("Removing unused snippets is running...")
 	startDate := time.Now()
 
-	diff, err := strconv.Atoi(dayDiff)
+	ctx := context.WithValue(context.Background(), constants.DatastoreNamespaceKey, namespace)
+	db, err := createDatastoreClient(ctx, projectId)
 	if err != nil {
-		fmt.Printf("Couldn't convert days to integer from the input parameter, err: %s \n", err.Error())
-		return
+		return err
 	}
 
-	ctx := context.Background()
-	pcMapper := mapper.NewPrecompiledObjectMapper()
-	db, err := datastore.New(ctx, pcMapper, projectId)
+	err = db.DeleteUnusedSnippets(ctx, int32(dayDiff))
+	if err != nil {
+		logger.Errorf("Couldn't delete unused code snippets, err: %s \n", err.Error())
+		return err
+	}
+
+	diffTime := time.Now().Sub(startDate).Milliseconds()
+	logger.Infof("Removing unused snippets finished, work time: %d ms\n", diffTime)
+
+	return nil
+}
+
+func remove(snippetId string, projectId, namespace string) error {
+	logger.Infof("Removing snippet %s is running...", snippetId)
+	startDate := time.Now()
+
+	ctx := context.WithValue(context.Background(), constants.DatastoreNamespaceKey, namespace)
+	db, err := createDatastoreClient(ctx, projectId)
 	if err != nil {
-		fmt.Printf("Couldn't create the database client, err: %s \n", err.Error())
-		return
+		return err
 	}
 
-	err = db.DeleteUnusedSnippets(ctx, int32(diff))
+	err = db.DeleteSnippet(ctx, snippetId)
 	if err != nil {
-		fmt.Printf("Couldn't delete unused code snippets, err: %s \n", err.Error())
-		return
+		fmt.Printf("Couldn't delete code snippet, err: %s \n", err.Error())
+		return err
 	}
 
 	diffTime := time.Now().Sub(startDate).Milliseconds()
-	fmt.Printf("Removing unused snippets finished, work time: %d ms\n", diffTime)
+	logger.Infof("Removing snippet %s finished, work time: %d ms\n", snippetId, diffTime)
+
+	return nil
+}
+
+func main() {
+	if len(os.Args) < 2 {
+		fmt.Println("expected 'cleanup' or 'remove' subcommands")
+		os.Exit(1)
+	}
+
+	cwd, err := os.Getwd()
+	if err != nil {
+		fmt.Printf("Couldn't get the current working directory, err: %s \n", err.Error())
+		os.Exit(1)
+	}
+
+	switch os.Args[1] {

Review Comment:
   Good catch, thanks!



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org