Skip to content
This repository was archived by the owner on Jan 16, 2021. It is now read-only.

Commit 34ff3df

Browse files
committed
gddo-admin: use the new database API for admin commands
Use default context.TODO() when initializing database for usage without remote_api for search. This CL mainly fixes the gddo-admin commands. Change-Id: I8518f3aeff57d3e733a99a45c50177cffaf35621 Reviewed-on: https://go-review.googlesource.com/57730 Reviewed-by: Ross Light <[email protected]>
1 parent 9362177 commit 34ff3df

File tree

13 files changed

+47
-23
lines changed

13 files changed

+47
-23
lines changed

database/database.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ func newAppEngineContext(host string) (context.Context, error) {
132132
return remote_api.NewRemoteContext(host, client)
133133
}
134134

135-
// New creates a gddo database. serverUri, idleTimeout, and logConn configure
135+
// New creates a gddo database. serverURI, idleTimeout, and logConn configure
136136
// the use of redis. gaeEndpoint is the target of the App Engine remoteapi
137137
// endpoint.
138-
func New(serverUri string, idleTimeout time.Duration, logConn bool, gaeEndpoint string) (*Database, error) {
138+
func New(serverURI string, idleTimeout time.Duration, logConn bool, gaeEndpoint string) (*Database, error) {
139139
pool := &redis.Pool{
140-
Dial: newDBDialer(serverUri, logConn),
140+
Dial: newDBDialer(serverURI, logConn),
141141
MaxIdle: 10,
142142
IdleTimeout: idleTimeout,
143143
}
@@ -148,9 +148,12 @@ func New(serverUri string, idleTimeout time.Duration, logConn bool, gaeEndpoint
148148
}
149149
c.Close()
150150

151-
gaeCtx, err := newAppEngineContext(gaeEndpoint)
152-
if err != nil {
153-
return nil, err
151+
gaeCtx := context.TODO()
152+
if gaeEndpoint != "" {
153+
var err error
154+
if gaeCtx, err = newAppEngineContext(gaeEndpoint); err != nil {
155+
return nil, err
156+
}
154157
}
155158

156159
return &Database{Pool: pool, AppEngineContext: gaeCtx}, nil
@@ -753,6 +756,8 @@ func (db *Database) Importers(path string) ([]Package, error) {
753756
return db.getPackages("index:import:"+path, false)
754757
}
755758

759+
// Block puts a domain, repo or package into the block set, removes all the
760+
// packages under it from the database and prevents future crawling from it.
756761
func (db *Database) Block(root string) error {
757762
c := db.Pool.Get()
758763
defer c.Close()
@@ -785,6 +790,8 @@ var isBlockedScript = redis.NewScript(0, `
785790
return 0
786791
`)
787792

793+
// IsBlocked returns whether the package is blocked or belongs to a blocked
794+
// domain/repo.
788795
func (db *Database) IsBlocked(path string) (bool, error) {
789796
c := db.Pool.Get()
790797
defer c.Close()

doc/get.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
package doc
99

1010
import (
11-
"github.com/golang/gddo/gosrc"
1211
"go/doc"
1312
"net/http"
1413
"strings"
14+
15+
"github.com/golang/gddo/gosrc"
1516
)
1617

1718
func Get(client *http.Client, importPath string, etag string) (*Package, error) {

gddo-admin/block.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
package main
88

99
import (
10-
"github.com/golang/gddo/database"
1110
"log"
1211
"os"
12+
13+
"github.com/golang/gddo/database"
1314
)
1415

1516
var blockCommand = &command{
@@ -23,7 +24,7 @@ func block(c *command) {
2324
c.printUsage()
2425
os.Exit(1)
2526
}
26-
db, err := database.New()
27+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
2728
if err != nil {
2829
log.Fatal(err)
2930
}

gddo-admin/crawl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func crawl(c *command) {
2828
c.printUsage()
2929
os.Exit(1)
3030
}
31-
db, err := database.New()
31+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
3232
if err != nil {
3333
log.Fatal(err)
3434
}

gddo-admin/dangle.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func dangle(c *command) {
2626
c.printUsage()
2727
os.Exit(1)
2828
}
29-
db, err := database.New()
29+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
3030
if err != nil {
3131
log.Fatal(err)
3232
}

gddo-admin/delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func del(c *command) {
2424
c.printUsage()
2525
os.Exit(1)
2626
}
27-
db, err := database.New()
27+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
2828
if err != nil {
2929
log.Fatal(err)
3030
}

gddo-admin/main.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"fmt"
1313
"os"
1414
"strings"
15+
"time"
1516
)
1617

1718
type command struct {
@@ -26,6 +27,14 @@ func (c *command) printUsage() {
2627
c.flag.PrintDefaults()
2728
}
2829

30+
var (
31+
project = flag.String("project", "", "App Engine project ID used to interact with remote API.")
32+
redisServer = flag.String("db-server", "redis://127.0.0.1:6379", "URI of Redis server.")
33+
dbIdleTimeout = flag.Duration("db-idle-timeout", 250*time.Second, "Close database connections after remaining idle for this duration.")
34+
)
35+
36+
var gaeEndpoint string
37+
2938
var commands = []*command{
3039
blockCommand,
3140
reindexCommand,
@@ -48,10 +57,18 @@ func printUsage() {
4857
}
4958
}
5059

60+
func setDefaults() {
61+
if *project != "" {
62+
gaeEndpoint = fmt.Sprintf("serviceproxy-dot-%s.appspot.com", *project)
63+
}
64+
}
65+
5166
func main() {
5267
flag.Usage = printUsage
5368
flag.Parse()
5469
args := flag.Args()
70+
setDefaults()
71+
5572
if len(args) >= 1 {
5673
for _, c := range commands {
5774
if args[0] == c.name {

gddo-admin/popular.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func popular(c *command) {
3030
c.printUsage()
3131
os.Exit(1)
3232
}
33-
db, err := database.New()
33+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
3434
if err != nil {
3535
log.Fatal(err)
3636
}

gddo-admin/reindex.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func reindex(c *command) {
5151
c.printUsage()
5252
os.Exit(1)
5353
}
54-
db, err := database.New()
54+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
5555
if err != nil {
5656
log.Fatal(err)
5757
}

gddo-admin/stats.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func stats(c *command) {
3737
c.printUsage()
3838
os.Exit(1)
3939
}
40-
db, err := database.New()
40+
db, err := database.New(*redisServer, *dbIdleTimeout, false, gaeEndpoint)
4141
if err != nil {
4242
log.Fatal(err)
4343
}

0 commit comments

Comments
 (0)