AppManager: Implement task status API

Change-Id: I70c895d7461ffe4afc45868ca6bf754d37072a0f
diff --git a/core/installer/tasks/release.go b/core/installer/tasks/release.go
index 9a99698..059d1ee 100644
--- a/core/installer/tasks/release.go
+++ b/core/installer/tasks/release.go
@@ -19,7 +19,23 @@
 }
 
 func newMonitorHelm(mon installer.HelmReleaseMonitor, h installer.Resource) Task {
-	t := newLeafTask(h.Info, func() error {
+	rType := h.Annotations["dodo.cloud/resource-type"]
+	var name string
+	switch rType {
+	case "virtual-machine":
+		name = h.Annotations["dodo.cloud/resource.virtual-machine.name"]
+	case "mongodb":
+		name = h.Annotations["dodo.cloud/resource.mongodb.name"]
+	case "postgresql":
+		name = h.Annotations["dodo.cloud/resource.postgresql.name"]
+	case "volume":
+		name = h.Annotations["dodo.cloud/resource.volume.name"]
+	case "ingress":
+		name = h.Annotations["dodo.cloud/resource.ingress.host"]
+	case "service":
+		name = h.Annotations["dodo.cloud/resource.service.name"]
+	}
+	t := newResourceLeafTask(h.Info, &ResourceId{rType, name}, func() error {
 		for {
 			if ok, err := mon.IsReleased(h.Namespace, h.Name); err == nil && ok {
 				break