RIFT-15931, RIFT-15945: Leafref for rsp and internal-interface restored

Signed-off-by: KIRAN KASHALKAR <kiran.kashalkar@riftio.com>
diff --git a/skyquake/plugins/composer/src/src/libraries/utils.js b/skyquake/plugins/composer/src/src/libraries/utils.js
index ef37a0b..b0fcfc6 100644
--- a/skyquake/plugins/composer/src/src/libraries/utils.js
+++ b/skyquake/plugins/composer/src/src/libraries/utils.js
@@ -327,13 +327,21 @@
 			} else if (fieldKeyArray.length == 2) {
 				for (let key in catalogs) {
 					for (let subKey in catalogs[key]) {
-						let found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]});
+						console.log(key, subKey);
+						var found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]});
 						if (found) {
 							for (let foundKey in found) {
-								// let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]});
-								if (foundKey == fieldKeyArray[1]) {
-									results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i));
-									return results;
+								if (_isArray(found[foundKey])) {
+									let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]});
+									if (topLevel) {
+										results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i));
+										return results;
+									}
+								} else {
+									if (foundKey == fieldKeyArray[1]) {
+										results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i));
+										return results;
+									}
 								}
 							}
 						}
@@ -342,13 +350,20 @@
 			} else if (fieldKeyArray.length == 3) {
 				for (let key in catalogs) {
 					for (let subKey in catalogs[key]) {
-						let found = _.find(catalogs[key][subKey], {id: fieldKeyArray[0]});
+						let found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]});
 						if (found) {
 							for (let foundKey in found) {
-								let topLevel = _.find(found[foundKey], {id: fieldKeyArray[1]});
-								if (topLevel) {
-									results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i));
-									return results;
+								if (_isArray(found[foundKey])) {
+									let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]});
+									if (topLevel) {
+										results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i));
+										return results;
+									}
+								} else {
+									if (foundKey == fieldKeyArray[1]) {
+										results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i));
+										return results;
+									}
 								}
 							}
 						}