DodoApp: Support remote clusters

Change-Id: I6f4e6a0a32cc723b47c96518d83b1ffdb5169f14
diff --git a/core/installer/cluster.go b/core/installer/cluster.go
index 9ebffcf..9ac89da 100644
--- a/core/installer/cluster.go
+++ b/core/installer/cluster.go
@@ -93,8 +93,8 @@
 		if err != nil {
 			return "", err
 		}
-		if v, ok := cfg.Proxies[src]; ok {
-			return "", fmt.Errorf("mapping from %s already exists (%s)", src, v)
+		if v, ok := cfg.Proxies[src]; ok && v != dst {
+			return "", fmt.Errorf("wrong mapping %s already exists (%s)", src, v)
 		}
 		cfg.Proxies[src] = dst
 		w, err := fs.Writer(c.NginxConfigPath)
@@ -167,8 +167,8 @@
 		if err != nil {
 			return "", err
 		}
-		if v, ok := cfg.Proxies[src]; !ok || v != dst {
-			return "", fmt.Errorf("mapping does not exist: %s %s", src, dst)
+		if v, ok := cfg.Proxies[src]; ok || v != dst {
+			return "", fmt.Errorf("wrong mapping %s already exists (%s)", src, v)
 		}
 		delete(cfg.Proxies, src)
 		w, err := fs.Writer(c.NginxConfigPath)