veyron/services/mgmt/node/impl: fixing the node manager test failure
related to mount table entries caching

This CL makes sure that the node manager test flushes cache entries 
for names before it tries to resolve these names. This is necessary 
because as of https://veyron-review.googlesource.com/#/c/3709 veyron 
caches resolved entries.

Change-Id: I80e34b9f11e93e2614517c9ea128d29e466282a9
diff --git a/services/mgmt/node/impl/impl_test.go b/services/mgmt/node/impl/impl_test.go
index 16988ec..6935713 100644
--- a/services/mgmt/node/impl/impl_test.go
+++ b/services/mgmt/node/impl/impl_test.go
@@ -295,7 +295,7 @@
 	}
 	scriptPathV2 := evalLink()
 	if scriptPathFactory == scriptPathV2 {
-		t.Errorf("current link didn't change")
+		t.Fatalf("current link didn't change")
 	}
 
 	// This is from the child node manager started by the node manager
@@ -325,7 +325,7 @@
 	// repository: this should fail, and current link should be unchanged.
 	updateExpectError(t, "v2NM", verror.NotFound)
 	if evalLink() != scriptPathV2 {
-		t.Errorf("script changed")
+		t.Fatalf("script changed")
 	}
 
 	// Create a third version of the node manager and issue an update.
@@ -336,7 +336,7 @@
 
 	scriptPathV3 := evalLink()
 	if scriptPathV3 == scriptPathV2 {
-		t.Errorf("current link didn't change")
+		t.Fatalf("current link didn't change")
 	}
 
 	// This is from the child node manager started by the node manager
@@ -369,7 +369,7 @@
 	nm.CloseStdin()
 	runNM.Expect("v3NM terminating")
 	if evalLink() != scriptPathV2 {
-		t.Errorf("current link didn't change")
+		t.Fatalf("current link was not reverted correctly")
 	}
 	deferrer = nil
 	runNM.Cleanup()
@@ -388,7 +388,7 @@
 	revert(t, "v2NM")
 	runNM.Expect("v2NM terminating")
 	if evalLink() != scriptPathFactory {
-		t.Errorf("current link didn't change")
+		t.Fatalf("current link was not reverted correctly")
 	}
 	deferrer = nil
 	runNM.Cleanup()
@@ -436,7 +436,7 @@
 	defer server.Stop()
 	pingCh := make(chan struct{})
 	if err := server.Serve("pingserver", ipc.SoloDispatcher(pingServerDisp(pingCh), nil)); err != nil {
-		t.Errorf("Failed to set up ping server")
+		t.Fatalf("Failed to set up ping server")
 	}
 
 	// Create an envelope for an app.
@@ -477,7 +477,7 @@
 		t.Fatalf("BindApplication(%v) failed: %v", instanceName, err)
 	}
 	if err := stub.Stop(rt.R().NewContext(), 5); err != nil {
-		t.Errorf("Stop failed: %v", err)
+		t.Fatalf("Stop failed: %v", err)
 	}
 
 	// HACK ALERT: for now, we peek inside the node manager's directory
@@ -498,9 +498,9 @@
 	rootDir := filepath.Join(instanceDir, "root")
 	testFile := filepath.Join(rootDir, "testfile")
 	if read, err := ioutil.ReadFile(testFile); err != nil {
-		t.Errorf("Failed to read %v: %v", testFile, err)
+		t.Fatalf("Failed to read %v: %v", testFile, err)
 	} else if want, got := "goodbye world", string(read); want != got {
-		t.Errorf("Expected to read %v, got %v instead", want, got)
+		t.Fatalf("Expected to read %v, got %v instead", want, got)
 	}
 	// END HACK
 }
diff --git a/services/mgmt/node/impl/invoker.go b/services/mgmt/node/impl/invoker.go
index 3343470..d9cd129 100644
--- a/services/mgmt/node/impl/invoker.go
+++ b/services/mgmt/node/impl/invoker.go
@@ -164,7 +164,7 @@
 
 	errInvalidSuffix      = verror.BadArgf("invalid suffix")
 	errOperationFailed    = verror.Internalf("operation failed")
-	errUpdateInProgress   = verror.Existsf("update in progress")
+	errInProgress         = verror.Existsf("operation in progress")
 	errIncompatibleUpdate = verror.BadArgf("update failed: mismatching app title")
 	errUpdateNoOp         = verror.NotFoundf("no different version available")
 	errNotExist           = verror.NotFoundf("object does not exist")
@@ -638,7 +638,7 @@
 	i.internal.updatingMutex.Lock()
 	if i.internal.updating {
 		i.internal.updatingMutex.Unlock()
-		return errUpdateInProgress
+		return errInProgress
 	} else {
 		i.internal.updating = true
 	}
@@ -894,7 +894,7 @@
 		i.internal.updatingMutex.Lock()
 		if i.internal.updating {
 			i.internal.updatingMutex.Unlock()
-			return errUpdateInProgress
+			return errInProgress
 		} else {
 			i.internal.updating = true
 		}
diff --git a/services/mgmt/node/impl/util_test.go b/services/mgmt/node/impl/util_test.go
index 762bf02..4d07917 100644
--- a/services/mgmt/node/impl/util_test.go
+++ b/services/mgmt/node/impl/util_test.go
@@ -90,15 +90,17 @@
 
 // resolveExpectError verifies that the given name is not in the mounttable.
 func resolveExpectError(t *testing.T, name string, errID verror.ID) {
+	rt.R().Namespace().FlushCacheEntry(name)
 	if results, err := rt.R().Namespace().Resolve(rt.R().NewContext(), name); err == nil {
-		t.Errorf("Resolve(%v) succeeded with results %v when it was expected to fail", name, results)
+		t.Fatalf("Resolve(%v) succeeded with results %v when it was expected to fail", name, results)
 	} else if !verror.Is(err, errID) {
-		t.Errorf("Resolve(%v) failed with error %v, expected error ID %v", err, errID)
+		t.Fatalf("Resolve(%v) failed with error %v, expected error ID %v", err, errID)
 	}
 }
 
 // resolve looks up the given name in the mounttable.
 func resolve(t *testing.T, name string) string {
+	rt.R().Namespace().FlushCacheEntry(name)
 	results, err := rt.R().Namespace().Resolve(rt.R().NewContext(), name)
 	if err != nil {
 		t.Fatalf("Resolve(%v) failed: %v", name, err)
@@ -114,13 +116,13 @@
 
 func updateExpectError(t *testing.T, name string, errID verror.ID) {
 	if err := invokeUpdate(t, name); !verror.Is(err, errID) {
-		t.Errorf("Unexpected update error %v, expected error ID %v", err, errID)
+		t.Fatalf("Unexpected update error %v, expected error ID %v", err, errID)
 	}
 }
 
 func update(t *testing.T, name string) {
 	if err := invokeUpdate(t, name); err != nil {
-		t.Errorf("Update() failed: %v", err)
+		t.Fatalf("Update() failed: %v", err)
 	}
 }
 
@@ -135,13 +137,13 @@
 
 func revertExpectError(t *testing.T, name string, errID verror.ID) {
 	if err := invokeRevert(t, name); !verror.Is(err, errID) {
-		t.Errorf("Unexpected revert error %v, expected error ID %v", err, errID)
+		t.Fatalf("Unexpected revert error %v, expected error ID %v", err, errID)
 	}
 }
 
 func revert(t *testing.T, name string) {
 	if err := invokeRevert(t, name); err != nil {
-		t.Errorf("Revert() failed: %v", err)
+		t.Fatalf("Revert() failed: %v", err)
 	}
 }