Reintroducing localhost for local syncbase instances
Change-Id: If22427ec79e31c79b705f1dd9f8179239dd292b9
diff --git a/src/group-manager.js b/src/group-manager.js
index e5880ab..97e215f 100644
--- a/src/group-manager.js
+++ b/src/group-manager.js
@@ -14,25 +14,23 @@
createSyncGroup: function(name, prefixes) {
var self = this;
- return this.prereq.then(function() {
- var sg = self.syncbaseWrapper.syncGroup(self.sgAdmin, name);
+ var sg = self.syncbaseWrapper.syncGroup(self.sgAdmin, name);
- var mgmt = vanadium.naming.join(self.mountNames.app, 'sgmt', name);
- var spec = sg.buildSpec(prefixes, [mgmt]);
+ var mgmt = vanadium.naming.join(self.mountNames.app, 'sgmt', name);
+ var spec = sg.buildSpec(prefixes, [mgmt]);
- /* TODO(rosswang): Right now, duplicate SyncBase creates on
- * different SyncBase instances results in siloed SyncGroups.
- * Revisit this logic once it merges properly. */
- return sg.joinOrCreate(spec).then(function() {
- // TODO(rosswang): this is a hack to make the syncgroup joinable
- return self.vanadiumWrapper.setPermissions(mgmt, new Map([
- ['Admin', {in: ['...']}],
- ['Read', {in: ['...']}],
- ['Resolve', {in: ['...']}]
- ]));
- }).then(function() {
- return sg;
- });
+ /* TODO(rosswang): Right now, duplicate SyncBase creates on
+ * different SyncBase instances results in siloed SyncGroups.
+ * Revisit this logic once it merges properly. */
+ return sg.joinOrCreate(spec).then(function() {
+ // TODO(rosswang): this is a hack to make the syncgroup joinable
+ return self.vanadiumWrapper.setPermissions(mgmt, new Map([
+ ['Admin', {in: ['...']}],
+ ['Read', {in: ['...']}],
+ ['Resolve', {in: ['...']}]
+ ]));
+ }).then(function() {
+ return sg;
});
},
@@ -62,11 +60,7 @@
* mount names on ns.dev.v.io don't yet default to Resolve in [...].
*/
this.vanadiumWrapper.setPermissions(this.mountNames.user, basicPerms),
- this.vanadiumWrapper.setPermissions(this.mountNames.app, basicPerms),
- this.prereq.then(function() {
- // TODO(rosswang): This seems wrong too.
- return self.vanadiumWrapper.setPermissions(self.sgAdmin, basicPerms);
- })
+ this.vanadiumWrapper.setPermissions(this.mountNames.app, basicPerms)
]);
}
},
@@ -85,12 +79,6 @@
this.sgAdmin = vanadium.naming.join(mountNames.app, 'sgadmin');
- /* TODO(rosswang): Once Vanadium supports global sync-group admin
- * creation, remove this. For now, use the first local SyncBase
- * instance to administrate. */
- this.prereq = vanadiumWrapper.mount(this.sgAdmin, syncbaseWrapper.mountName,
- vanadiumWrapper.multiMount.FAIL);
-
this.advertise().catch(this.onError);
}
});
diff --git a/src/travel.js b/src/travel.js
index 00485ca..2f99380 100644
--- a/src/travel.js
+++ b/src/travel.js
@@ -428,7 +428,7 @@
});
var sbName = opts.syncbase ||
- queryString.parse(location.search).syncbase || 'travel/sgadmin';
+ queryString.parse(location.search).syncbase || 4000;
if ($.isNumeric(sbName)) {
sbName = '/localhost:' + sbName;
}
diff --git a/tools/start_services.sh b/tools/start_services.sh
index e6509e2..5eda897 100644
--- a/tools/start_services.sh
+++ b/tools/start_services.sh
@@ -31,17 +31,33 @@
local -r PORT=${port-4000}
local -r SYNCBASED_ADDR=":$((PORT))"
local -r BLESSINGS=`principal dump --v23.credentials=${CREDS} -s=true`
- local -r RE="dev\.v\.io/u/(.*)"
- if [[ ${BLESSINGS} =~ ${RE} ]]
- then local -r V_USER=${BASH_REMATCH[1]}
+
+ if [ ${admin-} ]; then
+ local -r RE="dev\.v\.io/u/(.*)"
+ if [[ ${BLESSINGS} =~ ${RE} ]]; then
+ local -r V_USER=${BASH_REMATCH[1]}
+ fi
+ local -r SG_NAME=users/${V_USER}/travel/sgadmin
+ local -r NS_ROOT=/ns.dev.v.io:8101
+ else
+ local -r MOUNTTABLED_ADDR=":$((PORT+1))"
+ mounttabled \
+ --v23.tcp.address=${MOUNTTABLED_ADDR} \
+ --v23.credentials=${CREDS} &
+
+ local -r SG_NAME=syncbase
+ local -r NS_ROOT=/${MOUNTTABLED_ADDR}
fi
+
+ echo "Starting syncbased on ${SYNCBASED_ADDR} mounted at ${NS_ROOT}/${SG_NAME}"
+
mkdir -p $TMP
./bin/syncbased \
--v=5 \
--alsologtostderr=false \
--root-dir=${TMP}/syncbase_${PORT} \
- --name=users/${V_USER}/travel/sgadmin \
- --v23.namespace.root=/ns.dev.v.io:8101 \
+ --name=${SG_NAME} \
+ --v23.namespace.root=${NS_ROOT} \
--v23.tcp.address=${SYNCBASED_ADDR} \
--v23.credentials=${CREDS} \
--v23.permissions.literal="{\"Admin\":{\"In\":[\"${BLESSINGS}\"]},\"Write\":{\"In\":[\"${BLESSINGS}\"]},\"Read\":{\"In\":[\"${BLESSINGS}\"]},\"Resolve\":{\"In\":[\"${BLESSINGS}\"]},\"Debug\":{\"In\":[\"...\"]}}"