sensorlog: syncbase: rename "table" to "collection"
Second half of part 1 of transition plan.
MultiPart: 3/3
Change-Id: Iba15c9fd8951102215187a43710434dafdc1b353
diff --git a/go/src/v.io/x/sensorlog/README.md b/go/src/v.io/x/sensorlog/README.md
index 670c017..536f2f5 100644
--- a/go/src/v.io/x/sensorlog/README.md
+++ b/go/src/v.io/x/sensorlog/README.md
@@ -29,10 +29,10 @@
$ V23_CREDENTIALS=<creds> SL_DEVID=dev1 ./scripts/run_measured.sh
-By default, it starts a local mounttable at port 8707 (override using
+By default, it starts a local mount table at port 8707 (override using
`$SL_IPADDR_PORT`), mounts it at
`/ns.dev.v.io:8101/users/<email-from-blessing>/sl/measured/<devid>`,
-starts a Syncbase instance mounted in the local mounttable at
+starts a Syncbase instance mounted in the local mount table at
`sl/measured/<devid>`, and a measuring daemon against the Syncbase instance.
### Using the client
@@ -41,7 +41,7 @@
$ V23_CREDENTIALS=<creds> ./scripts/run_cli_syncbased.sh
-By default, it starts a local mounttable at port 8202 (override using
+By default, it starts a local mount table at port 8202 (override using
`$SL_IPADDR_PORT`) and starts a Syncbase instance mounted in it at
`sl/client/main` (override using `$SL_DEVID`).
diff --git a/go/src/v.io/x/sensorlog/internal/client/device.go b/go/src/v.io/x/sensorlog/internal/client/device.go
index 040c0be..e3838bd 100644
--- a/go/src/v.io/x/sensorlog/internal/client/device.go
+++ b/go/src/v.io/x/sensorlog/internal/client/device.go
@@ -36,7 +36,7 @@
SgPublishSb: sgPublishSb,
}
devSgName := config.SyncgroupName(sgPublishSb, devKey.Key())
- devRow := db.Table(devKey.Table()).Row(devKey.Key())
+ devRow := db.Collection(devKey.Collection()).Row(devKey.Key())
if exists, err := devRow.Exists(ctx); err != nil {
return nil, err
diff --git a/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go b/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
index ce7d5f3..8c2defc 100644
--- a/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
+++ b/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
@@ -34,9 +34,9 @@
v23test.SkipUnlessRunningIntegrationTests(t)
sh := v23test.NewShell(t, nil)
defer sh.Cleanup()
- // Start a 'global' mounttable.
+ // Start a 'global' mount table.
globalMT, globalMTShutdown := startAdditionalMT(sh, "--v23.tcp.address=127.0.0.1:0")
- // Mount the local mounttable in the global one.
+ // Mount the local mount table in the global one.
localMT := naming.Join(globalMT, "localmt")
sh.StartRootMountTableWithOpts(mounttablelib.Opts{MountName: localMT})
@@ -52,7 +52,7 @@
time.Sleep(1 * time.Second)
- // Initialize measuring device syncgroup using the global mounttable alias
+ // Initialize measuring device syncgroup using the global mount table alias
// of measured Syncbase for publishing.
devId := "measured1"
publishSb := naming.Join(localMT, measuredSb)
@@ -68,7 +68,7 @@
// Allow time for syncgroup metadata sync.
time.Sleep(3 * time.Second)
- // After syncgroup has been joined, sync can use local mounttable. Kill the
+ // After syncgroup has been joined, sync can use local mount table. Kill the
// global one.
globalMTShutdown(os.Interrupt)
@@ -112,7 +112,7 @@
}
func initSyncgroup(ctx *context.T, sbService, devId, admin, publishSb, sgMT string) error {
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredCollections)
if err != nil {
return fmt.Errorf("failed initializing measured database: %v", err)
}
@@ -129,7 +129,7 @@
}
func watchForStreams(ctx *context.T, sbService, devId string) (stop func() (gotStreams []string, err error)) {
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredCollections)
if err != nil {
return func() ([]string, error) {
return nil, fmt.Errorf("failed opening measured database: %v", err)
diff --git a/go/src/v.io/x/sensorlog/internal/client/list.go b/go/src/v.io/x/sensorlog/internal/client/list.go
index 23339e3..795480b 100644
--- a/go/src/v.io/x/sensorlog/internal/client/list.go
+++ b/go/src/v.io/x/sensorlog/internal/client/list.go
@@ -24,7 +24,7 @@
// in chronological order, calling listCb for each.
// TODO(ivanpi): Allow specifying time interval.
func ListStreamData(ctx *context.T, db syncbase.Database, streamKey *sbmodel.KStreamDef, listCb ListCallback) error {
- tableName := sbmodel.KDataPoint{}.Table()
+ collectionName := sbmodel.KDataPoint{}.Collection()
dataPrefix := keyutil.Join(streamKey.DevId, streamKey.StreamId, "")
bdb, err := db.BeginBatch(ctx, wire.BatchOptions{ReadOnly: true})
@@ -33,14 +33,14 @@
}
defer bdb.Abort(ctx)
- streamRow := bdb.Table(streamKey.Table()).Row(streamKey.Key())
+ streamRow := bdb.Collection(streamKey.Collection()).Row(streamKey.Key())
if exists, err := streamRow.Exists(ctx); err != nil {
return err
} else if !exists {
return verror.New(verror.ErrNoExist, ctx, "Stream '"+streamKey.Key()+"' does not exist")
}
- sstr := bdb.Table(tableName).Scan(ctx, syncbase.Prefix(dataPrefix))
+ sstr := bdb.Collection(collectionName).Scan(ctx, syncbase.Prefix(dataPrefix))
defer sstr.Cancel()
for sstr.Advance() {
@@ -64,11 +64,11 @@
// points until ctx is cancelled.
// TODO(ivanpi): Allow specifying time interval.
func FollowStreamData(ctx *context.T, db syncbase.Database, streamKey *sbmodel.KStreamDef, listCb ListCallback) error {
- tableName := sbmodel.KDataPoint{}.Table()
+ collectionName := sbmodel.KDataPoint{}.Collection()
dataPrefix := keyutil.Join(streamKey.DevId, streamKey.StreamId, "")
// Watch for DataPoints, existing followed by new.
- ws, err := db.Watch(ctx, tableName, dataPrefix, nil)
+ ws, err := db.Watch(ctx, collectionName, dataPrefix, nil)
if err != nil {
return err
}
diff --git a/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go b/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
index 1616768..d29b431 100644
--- a/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
+++ b/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
@@ -99,7 +99,7 @@
}
func listStreamData(ctx *context.T, sbService, devId, streamId string, expectVal float64) error {
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening master database: %v", err)
}
diff --git a/go/src/v.io/x/sensorlog/internal/client/stream.go b/go/src/v.io/x/sensorlog/internal/client/stream.go
index e4ebc4a..237ad00 100644
--- a/go/src/v.io/x/sensorlog/internal/client/stream.go
+++ b/go/src/v.io/x/sensorlog/internal/client/stream.go
@@ -52,8 +52,8 @@
}
if err := syncbase.RunInBatch(ctx, db, wire.BatchOptions{}, func(db syncbase.BatchDatabase) error {
- devRow := db.Table(devKey.Table()).Row(devKey.Key())
- stmRow := db.Table(stmKey.Table()).Row(stmKey.Key())
+ devRow := db.Collection(devKey.Collection()).Row(devKey.Key())
+ stmRow := db.Collection(stmKey.Collection()).Row(stmKey.Key())
if exists, err := devRow.Exists(ctx); err != nil {
return err
diff --git a/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go b/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
index de36070..3d9c32d 100644
--- a/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
+++ b/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
@@ -17,7 +17,7 @@
)
func AddTestDevice(ctx *context.T, sbService, devId, publishSb string) error {
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening master database: %v", err)
}
@@ -33,7 +33,7 @@
}
func CreateTestStream(ctx *context.T, sbService, devId, streamId, script string, interval time.Duration) error {
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening master database: %v", err)
}
diff --git a/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go b/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
index 930ad50..4308086 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/syncgroup.go
@@ -51,13 +51,13 @@
sbutil.AddPermsForPattern(&sgAcl, admin, access.Read, access.Admin)
// Maps all syncgroup prefixes to ACLs.
- prefixSpec := make(map[wire.TableRow]access.Permissions)
+ prefixSpec := make(map[wire.CollectionRow]access.Permissions)
// StreamDef : <devId>
// Admin client has full permissions, measured drops to readonly.
- prefixStreamDef := wire.TableRow{
- TableName: sbmodel.KStreamDef{}.Table(),
- Row: devId,
+ prefixStreamDef := wire.CollectionRow{
+ CollectionName: sbmodel.KStreamDef{}.Collection(),
+ Row: devId,
}
aclStreamDef := access.Permissions{}
sbutil.AddPermsForPrincipal(&aclStreamDef, v23.GetPrincipal(ctx), access.Resolve, access.Read)
@@ -66,20 +66,20 @@
// DataPoint : <devId>
// Admin client has full permissions, measured drops to read/write.
- prefixDataPoint := wire.TableRow{
- TableName: sbmodel.KDataPoint{}.Table(),
- Row: devId,
+ prefixDataPoint := wire.CollectionRow{
+ CollectionName: sbmodel.KDataPoint{}.Collection(),
+ Row: devId,
}
aclDataPoint := access.Permissions{}
sbutil.AddPermsForPrincipal(&aclDataPoint, v23.GetPrincipal(ctx), access.Resolve, access.Read, access.Write)
sbutil.AddPermsForPattern(&aclDataPoint, admin, access.Resolve, access.Read, access.Write, access.Admin)
prefixSpec[prefixDataPoint] = aclDataPoint
- var prefixes []wire.TableRow
+ var prefixes []wire.CollectionRow
// Apply prefix ACLs to all syncgroup prefixes.
for prefix, prefixAcl := range prefixSpec {
// Ignore ErrNoAccess, assume we already dropped permissions.
- err := db.Table(prefix.TableName).SetPrefixPermissions(ctx, syncbase.Prefix(prefix.Row), prefixAcl)
+ err := db.Collection(prefix.CollectionName).SetPrefixPermissions(ctx, syncbase.Prefix(prefix.Row), prefixAcl)
if err != nil && verror.ErrorID(err) != verror.ErrNoAccess.ID {
return err
}
diff --git a/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go b/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
index 1522c73..a54a667 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/syncgroup_test.go
@@ -23,7 +23,7 @@
defer cleanup()
// Open app/db (create both) as measured.
- db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, sbmodel.MeasuredTables)
+ db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, sbmodel.MeasuredCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
@@ -49,12 +49,12 @@
t.Errorf("InitSyncgroup should be idempotent, retry failed: %v", err)
}
- // measured should have dropped privileges on <StreamDefTable>/<devId>.
+ // measured should have dropped privileges on <StreamDefCollection>/<devId>.
expectPerms := access.Permissions{}.
Add(security.BlessingPattern("root:one"), string(access.Resolve), string(access.Read)).
Add(security.BlessingPattern("root:two"), string(access.Resolve), string(access.Read), string(access.Write), string(access.Admin))
- sgDataTable := db.Table(sbmodel.KStreamDef{}.Table())
- if gotPerms, err := sgDataTable.GetPrefixPermissions(ctxMeasured, devId); err != nil {
+ sgDataCollection := db.Collection(sbmodel.KStreamDef{}.Collection())
+ if gotPerms, err := sgDataCollection.GetPrefixPermissions(ctxMeasured, devId); err != nil {
t.Errorf("GetPrefixPermissions failed: %v", err)
} else if got, want := gotPerms[0].Perms.Normalize(), expectPerms.Normalize(); !reflect.DeepEqual(got, want) {
t.Errorf("Unexpected permissions on streamdef/<devId>: got %v, want %v", got, want)
diff --git a/go/src/v.io/x/sensorlog/internal/measure/watcher.go b/go/src/v.io/x/sensorlog/internal/measure/watcher.go
index 08e8415..c9260a6 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/watcher.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/watcher.go
@@ -27,11 +27,11 @@
// WatchForStreams is synchronous and runs until the context is cancelled or
// an error is encountered.
func WatchForStreams(ctx *context.T, db syncbase.Database, devId string, register RegisterWorker) error {
- tableName := sbmodel.KStreamDef{}.Table()
+ collectionName := sbmodel.KStreamDef{}.Collection()
watchPrefix := keyutil.Join(devId, "")
// Watch for StreamDef changes and register samplers as needed.
- ws, err := db.Watch(ctx, tableName, watchPrefix, nil)
+ ws, err := db.Watch(ctx, collectionName, watchPrefix, nil)
if err != nil {
return err
}
diff --git a/go/src/v.io/x/sensorlog/internal/measure/watcher_test.go b/go/src/v.io/x/sensorlog/internal/measure/watcher_test.go
index 973381f..9bba516 100644
--- a/go/src/v.io/x/sensorlog/internal/measure/watcher_test.go
+++ b/go/src/v.io/x/sensorlog/internal/measure/watcher_test.go
@@ -23,7 +23,7 @@
"v.io/x/sensorlog/internal/util"
)
-var watchTables = []sbmodel.TableSpec{
+var watchCollections = []sbmodel.CollectionSpec{
{Prototype: &sbmodel.KStreamDef{}},
}
@@ -32,7 +32,7 @@
defer cleanup()
// Open app/db (create both) as measured. Keep write permission on StreamDef.
- db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, watchTables)
+ db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, watchCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
@@ -81,7 +81,7 @@
defer cleanup()
// Open app/db (create both) as measured. Keep write permission on StreamDef.
- db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, watchTables)
+ db, err := sbutil.CreateOrOpenDB(ctxMeasured, sbName, watchCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
@@ -126,7 +126,7 @@
func putStreamDef(t *testing.T, ctx *context.T, db syncbase.DatabaseHandle, devId, desc string) {
key := sbmodel.KStreamDef{DevId: devId, StreamId: keyutil.UUID()}
val := sbmodel.VStreamDef{Desc: desc}
- if err := db.Table(key.Table()).Put(ctx, key.Key(), &val); err != nil {
+ if err := db.Collection(key.Collection()).Put(ctx, key.Key(), &val); err != nil {
t.Fatalf(tu.FormatLogLine(2, "failed to put StreamDef %s (%s): %v", key.Key(), val.Desc, err))
}
}
diff --git a/go/src/v.io/x/sensorlog/internal/sbmodel/sbmodel.vdl.go b/go/src/v.io/x/sensorlog/internal/sbmodel/sbmodel.vdl.go
index bff9f2a..ff0f41a 100644
--- a/go/src/v.io/x/sensorlog/internal/sbmodel/sbmodel.vdl.go
+++ b/go/src/v.io/x/sensorlog/internal/sbmodel/sbmodel.vdl.go
@@ -9,8 +9,8 @@
//
// Every type <T> stored in Syncbase is defined as a pair of types, K<T> and
// V<T>, representing data stored in the key and value, respectively, in a
-// single table. K<T> types satisfy the PersistentDataKey interface, supporting
-// conversion to and from the row key.
+// single collection. K<T> types satisfy the PersistentDataKey interface,
+// supporting conversion to and from the row key.
package sbmodel
import (
diff --git a/go/src/v.io/x/sensorlog/internal/sbmodel/types.go b/go/src/v.io/x/sensorlog/internal/sbmodel/types.go
index 73aceac..7d5007d 100644
--- a/go/src/v.io/x/sensorlog/internal/sbmodel/types.go
+++ b/go/src/v.io/x/sensorlog/internal/sbmodel/types.go
@@ -13,8 +13,8 @@
// PersistentDataKey is a type encapsulating data from the row key of a
// top-level value type persisted to Syncbase.
type PersistentDataKey interface {
- // Table returns the name of the Syncbase table for the data type.
- Table() string
+ // Collection returns the name of the Syncbase collection for the data type.
+ Collection() string
// Key returns the row key for the value.
Key() string
// Parse parses the row key for the value into self. Returns an error if key
@@ -23,8 +23,8 @@
}
// devicecfg : <DevId>
-func (_ KDeviceCfg) Table() string { return "devicecfg" }
-func (k *KDeviceCfg) Key() string { return keyutil.Join(k.DevId) }
+func (_ KDeviceCfg) Collection() string { return "devicecfg" }
+func (k *KDeviceCfg) Key() string { return keyutil.Join(k.DevId) }
func (k *KDeviceCfg) Parse(key string) error {
parts, err := keyutil.Split(key, 1)
if err != nil {
@@ -35,8 +35,8 @@
}
// streamdef : <DevId>/<StreamId>
-func (_ KStreamDef) Table() string { return "streamdef" }
-func (k *KStreamDef) Key() string { return keyutil.Join(k.DevId, k.StreamId) }
+func (_ KStreamDef) Collection() string { return "streamdef" }
+func (k *KStreamDef) Key() string { return keyutil.Join(k.DevId, k.StreamId) }
func (k *KStreamDef) Parse(key string) error {
parts, err := keyutil.Split(key, 2)
if err != nil {
@@ -47,7 +47,7 @@
}
// sdata : <DevId>/<StreamId>/<Timestamp>
-func (k KDataPoint) Table() string {
+func (k KDataPoint) Collection() string {
return "sdata"
}
func (k *KDataPoint) Key() string {
@@ -66,22 +66,22 @@
return nil
}
-// TableSpec defines a Syncbase table, encapsulating a key prototype and
+// CollectionSpec defines a Syncbase collection, encapsulating a key prototype and
// permissions.
-type TableSpec struct {
+type CollectionSpec struct {
Prototype PersistentDataKey
ReadOnly bool
}
// All top-level types persisted to master device Syncbase.
-var MasterTables = []TableSpec{
+var MasterCollections = []CollectionSpec{
{Prototype: &KDeviceCfg{}},
{Prototype: &KStreamDef{}},
{Prototype: &KDataPoint{}},
}
// All top-level types persisted to measured Syncbase.
-var MeasuredTables = []TableSpec{
+var MeasuredCollections = []CollectionSpec{
{Prototype: &KStreamDef{}, ReadOnly: true},
{Prototype: &KDataPoint{}},
}
diff --git a/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl b/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl
index 5f729bf..cf59d04 100644
--- a/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl
+++ b/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl
@@ -6,8 +6,8 @@
//
// Every type <T> stored in Syncbase is defined as a pair of types, K<T> and
// V<T>, representing data stored in the key and value, respectively, in a
-// single table. K<T> types satisfy the PersistentDataKey interface, supporting
-// conversion to and from the row key.
+// single collection. K<T> types satisfy the PersistentDataKey interface,
+// supporting conversion to and from the row key.
package sbmodel
import (
diff --git a/go/src/v.io/x/sensorlog/internal/sbmodel/types_test.go b/go/src/v.io/x/sensorlog/internal/sbmodel/types_test.go
index c82ced7..ff891c3 100644
--- a/go/src/v.io/x/sensorlog/internal/sbmodel/types_test.go
+++ b/go/src/v.io/x/sensorlog/internal/sbmodel/types_test.go
@@ -31,8 +31,8 @@
if got, want := keyPrototype, kt.keyParsed; !reflect.DeepEqual(got, want) {
t.Errorf("incorrect key parse: got %v, want %v", got, want)
}
- if got, want := kt.keyParsed.Table(), keyPrototype.Table(); got != want {
- t.Errorf("incorrect parsed key table: got %v, want %v", got, want)
+ if got, want := kt.keyParsed.Collection(), keyPrototype.Collection(); got != want {
+ t.Errorf("incorrect parsed key collection: got %v, want %v", got, want)
}
if got, want := kt.keyParsed.Key(), kt.keyStr; got != want {
t.Errorf("incorrect key build: got %s, want %s", got, want)
diff --git a/go/src/v.io/x/sensorlog/internal/sbutil/syncbase.go b/go/src/v.io/x/sensorlog/internal/sbutil/syncbase.go
index 0f8fd43..d3d843f 100644
--- a/go/src/v.io/x/sensorlog/internal/sbutil/syncbase.go
+++ b/go/src/v.io/x/sensorlog/internal/sbutil/syncbase.go
@@ -17,8 +17,8 @@
)
// CreateOrOpenDB opens the Sensor Log database hosted on specified Syncbase
-// instance, creating it if missing, initializing specified tables.
-func CreateOrOpenDB(ctx *context.T, sbService string, tables []sbmodel.TableSpec) (syncbase.Database, error) {
+// instance, creating it if missing, initializing specified collections.
+func CreateOrOpenDB(ctx *context.T, sbService string, collections []sbmodel.CollectionSpec) (syncbase.Database, error) {
aclFull := access.Permissions{}
// Allow everyone to resolve to allow joining syncgroups.
AddPermsForPattern(&aclFull, string(security.AllPrincipals), access.Resolve)
@@ -43,9 +43,9 @@
return nil, err
}
- // TODO(ivanpi): Add table schemas when available.
- for _, ts := range tables {
- tb := db.Table(ts.Prototype.Table())
+ // TODO(ivanpi): Add schemas when available.
+ for _, ts := range collections {
+ tb := db.Collection(ts.Prototype.Collection())
acl := aclReadOnly
if !ts.ReadOnly {
acl = aclFull
@@ -58,8 +58,8 @@
return db, nil
}
-// creatable is satisfied by Syncbase hierarchy layers (app, db, table) that
-// can be created and tested for existence.
+// creatable is satisfied by Syncbase hierarchy layers (app, db, collection)
+// that can be created and tested for existence.
type creatable interface {
Create(ctx *context.T, acl access.Permissions) error
Exists(ctx *context.T) (bool, error)
diff --git a/go/src/v.io/x/sensorlog/internal/sbutil/syncbase_test.go b/go/src/v.io/x/sensorlog/internal/sbutil/syncbase_test.go
index eb41163..a31fa52 100644
--- a/go/src/v.io/x/sensorlog/internal/sbutil/syncbase_test.go
+++ b/go/src/v.io/x/sensorlog/internal/sbutil/syncbase_test.go
@@ -23,16 +23,16 @@
ctxGuest := sbtu.NewCtx(ctxOwner, rootPrincipal, "two")
// Try to open app/db (create both) as guest, fail with ErrNoAccess.
- if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterTables); verror.ErrorID(err) != verror.ErrNoAccess.ID {
+ if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterCollections); verror.ErrorID(err) != verror.ErrNoAccess.ID {
t.Errorf("CreateOrOpenDB should have failed with ErrNoAccess, got error: %v", err)
}
// Open app/db (create both) as owner.
- dbOwner, err := sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MasterTables)
+ dbOwner, err := sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MasterCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
// Open existing app/db as guest.
- if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterTables); err != nil {
+ if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterCollections); err != nil {
t.Errorf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
// Destroy db (but not app) to simulate interrupted creation.
@@ -40,16 +40,16 @@
t.Errorf("dbOwner.Destroy should have succeeded, got error: %v", err)
}
// Try to open app/db (create db) as guest, fail with ErrNoAccess.
- if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterTables); verror.ErrorID(err) != verror.ErrNoAccess.ID {
+ if _, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterCollections); verror.ErrorID(err) != verror.ErrNoAccess.ID {
t.Errorf("CreateOrOpenDB should have failed with ErrNoAccess, got error: %v", err)
}
// Open app/db (recreate db) as owner.
- dbOwner, err = sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MasterTables)
+ dbOwner, err = sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MasterCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
// Open recreated app/db as guest.
- dbGuest, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterTables)
+ dbGuest, err := sbutil.CreateOrOpenDB(ctxGuest, sbName, sbmodel.MasterCollections)
if err != nil {
t.Errorf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
@@ -62,21 +62,21 @@
} else if got, want := perms.Normalize(), expectPerms.Normalize(); !reflect.DeepEqual(got, want) {
t.Errorf("Unexpected database permissions: got %v, want %v", got, want)
}
- // Check that all tables exist.
- for _, ts := range sbmodel.MasterTables {
- tb := dbGuest.Table(ts.Prototype.Table())
+ // Check that all collections exist.
+ for _, ts := range sbmodel.MasterCollections {
+ tb := dbGuest.Collection(ts.Prototype.Collection())
if exists, err := tb.Exists(ctxGuest); err != nil || !exists {
- t.Errorf("Expected table %s to exist, got: %v (error: %v)", tb.Name(), exists, err)
+ t.Errorf("Expected collection %s to exist, got: %v (error: %v)", tb.Name(), exists, err)
}
}
}
-func TestTablePermissions(t *testing.T) {
+func TestCollectionPermissions(t *testing.T) {
_, ctxOwner, sbName, _, cleanup := sbtu.SetupOrDieCustom("one", "one:sb", nil)
defer cleanup()
// Open app/db (create both) as owner.
- dbOwner, err := sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MeasuredTables)
+ dbOwner, err := sbutil.CreateOrOpenDB(ctxOwner, sbName, sbmodel.MeasuredCollections)
if err != nil {
t.Fatalf("CreateOrOpenDB should have succeeded, got error: %v", err)
}
@@ -88,11 +88,11 @@
Add(security.AllPrincipals, string(access.Resolve)).
Add(security.BlessingPattern("root:one"), string(access.Admin), string(access.Read))
- // Check that all tables have correct permissions (full or readonly).
- for _, ts := range sbmodel.MeasuredTables {
- tb := dbOwner.Table(ts.Prototype.Table())
+ // Check that all collections have correct permissions (full or readonly).
+ for _, ts := range sbmodel.MeasuredCollections {
+ tb := dbOwner.Collection(ts.Prototype.Collection())
if exists, err := tb.Exists(ctxOwner); err != nil || !exists {
- t.Errorf("Expected table %s to exist, got: %v (error: %v)", tb.Name(), exists, err)
+ t.Errorf("Expected collection %s to exist, got: %v (error: %v)", tb.Name(), exists, err)
}
want := expectPermsFull
if ts.ReadOnly {
@@ -101,7 +101,7 @@
if got, err := tb.GetPermissions(ctxOwner); err != nil {
t.Errorf("GetPermissions should have succeeded, got error: %v", err)
} else if got, want = got.Normalize(), want.Normalize(); !reflect.DeepEqual(got, want) {
- t.Errorf("Unexpected table %s permissions: got %v, want %v", tb.Name(), got, want)
+ t.Errorf("Unexpected collection %s permissions: got %v, want %v", tb.Name(), got, want)
}
}
}
diff --git a/go/src/v.io/x/sensorlog/measured/measured.go b/go/src/v.io/x/sensorlog/measured/measured.go
index f44eff4..c0c0b45 100644
--- a/go/src/v.io/x/sensorlog/measured/measured.go
+++ b/go/src/v.io/x/sensorlog/measured/measured.go
@@ -31,7 +31,7 @@
// Flags below are only applied the first time measured is run against a Syncbase service with the same devid.
flagAdmin = flag.String("admin", "", "Blessing of admin user allowed to join the syncgroup. Must be specified.")
flagPublishSb = flag.String("publish-sb", "", "Syncbase service to publish the syncgroup at. Must be absolute. Must be specified. The syncgroup is published as '"+config.SyncgroupName("<publish-sb>", "<devid>")+"'.")
- flagPublishMt = flag.String("publish-mt", "", "Additional mounttable to use for sync rendezvous in addition to namespace roots. Optional.")
+ flagPublishMt = flag.String("publish-mt", "", "Additional mount table to use for sync rendezvous in addition to namespace roots. Optional.")
)
func main() {
@@ -59,7 +59,7 @@
publishMts = append(publishMts, *flagPublishMt)
}
- db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MeasuredTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MeasuredCollections)
if err != nil {
vlog.Errorf("Failed opening Syncbase db: %v", err)
return 1
@@ -79,7 +79,7 @@
})
writer := func(ctx *context.T, key *sbmodel.KDataPoint, val sbmodel.VDataPoint) error {
- return db.Table(key.Table()).Put(ctx, key.Key(), val)
+ return db.Collection(key.Collection()).Put(ctx, key.Key(), val)
}
waitWatch := util.AsyncRun(func() error {
diff --git a/go/src/v.io/x/sensorlog/scripts/run_measured.sh b/go/src/v.io/x/sensorlog/scripts/run_measured.sh
index 30e5c6d..9340648 100755
--- a/go/src/v.io/x/sensorlog/scripts/run_measured.sh
+++ b/go/src/v.io/x/sensorlog/scripts/run_measured.sh
@@ -6,13 +6,13 @@
# Starts an instance of measured and required services.
#
# mounttabled is started locally at IPADDR:PORT, mounting itself to the global
-# mounttable at $GLOBAL_MT/users/$USER/$PREFIX/$DEVID. syncbased is started in
-# the local mounttable at $PREFIX/$DEVID/syncbased.
+# mount table at $GLOBAL_MT/users/$USER/$PREFIX/$DEVID. syncbased is started in
+# the local mount table at $PREFIX/$DEVID/syncbased.
# measured is started, creating a syncgroup published at the local syncbased as
-# reached through the global mounttable:
+# reached through the global mount table:
# $GLOBAL_MT/users/$USER/$PREFIX/$DEVID/$PREFIX/$DEVID/syncbased
# Once the syncgroup is joined, sync is configured to use either the global or
-# the local mounttable (unless the local mounttable IPADDR:PORT changes).
+# the local mount table (unless the local mount table IPADDR:PORT changes).
# measured drops most permissions on prefixes in the syncgroup. Full admin
# permissions are granted to $ADMIN (as a blessing extension of the same
# default blessing as the one running this script).
diff --git a/go/src/v.io/x/sensorlog/scripts/runner_lib.sh b/go/src/v.io/x/sensorlog/scripts/runner_lib.sh
index 62af0c7..b5e77ce 100644
--- a/go/src/v.io/x/sensorlog/scripts/runner_lib.sh
+++ b/go/src/v.io/x/sensorlog/scripts/runner_lib.sh
@@ -49,7 +49,7 @@
export -f get_user_email
# Starts mounttabled at IPADDR:PORT. If $GLOBAL_MOUNT is provided, the
-# mounttable mounts itself under $GLOBAL_MOUNT/$NAME.
+# mount table mounts itself under $GLOBAL_MOUNT/$NAME.
# run_mounttabled NAME IPADDR:PORT [GLOBAL_MOUNT]
function run_mounttabled() {
local -r NAME="$1"
@@ -58,7 +58,7 @@
if [[ -n "${GLOBAL_MOUNT}" ]]; then
GLOBAL_MOUNT="${GLOBAL_MOUNT}/${NAME}"
fi
- # TODO(ivanpi): Lock down mounttable permissions.
+ # TODO(ivanpi): Lock down mount table permissions.
"${JIRI_ROOT}"/release/go/bin/vbecome -duration="${TIMEOUT}" \
-name="$(name_to_blessing "${NAME}/mounttabled")" \
"${JIRI_ROOT}"/release/go/bin/mounttabled -v23.tcp.address "${IPADDR_PORT}" \
@@ -95,7 +95,7 @@
# Starts measured that uses $PUBLISH_SB to publish the syncgroup. Expects a
# syncbase instance to have been started at $MT with the same $NAME. If
# $PUBLISH_MT is provided, the syncgroup is advertised there in addition to
-# the local mounttable.
+# the local mount table.
# run_measured MT NAME DEVID ADMIN PUBLISH_SB [PUBLISH_MT]
function run_measured() {
local -r MT="$1"
diff --git a/go/src/v.io/x/sensorlog/slcli/device.go b/go/src/v.io/x/sensorlog/slcli/device.go
index 373e43c..688bff4 100644
--- a/go/src/v.io/x/sensorlog/slcli/device.go
+++ b/go/src/v.io/x/sensorlog/slcli/device.go
@@ -58,7 +58,7 @@
desc = args[2]
}
- db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening Syncbase db: %v", err)
}
diff --git a/go/src/v.io/x/sensorlog/slcli/list.go b/go/src/v.io/x/sensorlog/slcli/list.go
index b62b448..f92d6be 100644
--- a/go/src/v.io/x/sensorlog/slcli/list.go
+++ b/go/src/v.io/x/sensorlog/slcli/list.go
@@ -58,7 +58,7 @@
return nil
}
- db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening Syncbase db: %v", err)
}
diff --git a/go/src/v.io/x/sensorlog/slcli/stream.go b/go/src/v.io/x/sensorlog/slcli/stream.go
index 1b7fb1f..b87673d 100644
--- a/go/src/v.io/x/sensorlog/slcli/stream.go
+++ b/go/src/v.io/x/sensorlog/slcli/stream.go
@@ -81,7 +81,7 @@
return err
}
- db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterTables)
+ db, err := sbutil.CreateOrOpenDB(ctx, *flagSbService, sbmodel.MasterCollections)
if err != nil {
return fmt.Errorf("failed opening Syncbase db: %v", err)
}