+declare -A NODES
+
+sync() {
+ if [[ "$NODE" != localhost ]] ; then
+ if ! ssh $NODE test -d ${GITTARGET}.git ; then
+ ssh $NODE git init --bare ${GITTARGET}.git
+ if ! git remote add $NODE $DEPLOY_USER@$NODE:${GITTARGET}.git ; then
+ git remote set-url $NODE $DEPLOY_USER@$NODE:${GITTARGET}.git
+ fi
+ git push $NODE $BRANCH
+ ssh $NODE git clone ${GITTARGET}.git ${GITTARGET}
+ fi
+
+ git push $NODE $BRANCH
+ ssh $NODE git -C ${GITTARGET} checkout $BRANCH
+ ssh $NODE git -C ${GITTARGET} pull
+ fi
+}
+
+deploynode() {
+ if [[ -z "${NODES[$NODE]}" ]] ; then
+ echo "No roles declared for '$NODE' in local.params"
+ exit 1
+ fi
+
+ if [[ "$NODE" = localhost ]] ; then
+ sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
+ else
+ ssh $DEPLOY_USER@$NODE "cd ${GITTARGET} && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
+ fi
+}
+
+loadconfig() {
+ CONFIG_FILE=local.params
+ CONFIG_DIR=local_config_dir
+ if [[ ! -s $CONFIG_FILE ]] ; then
+ echo "Must be run from initialized setup dir, maybe you need to 'initialize' first?"
+ fi
+ source ${CONFIG_FILE}
+ GITTARGET=arvados-deploy-config-${CLUSTER}
+}
+