From 0f183727840e86b5d7fba137922d5281087c931c Mon Sep 17 00:00:00 2001 From: Pauline Ribeyre <4224001+paulineribeyre@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:06:32 -0500 Subject: [PATCH 1/5] debug logs --- services/apis/sheepdog/sheepdogTasks.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/apis/sheepdog/sheepdogTasks.js b/services/apis/sheepdog/sheepdogTasks.js index f5e9f55a1..757776d19 100644 --- a/services/apis/sheepdog/sheepdogTasks.js +++ b/services/apis/sheepdog/sheepdogTasks.js @@ -150,7 +150,10 @@ module.exports = { */ async addNodes(nodesList, accessTokenHeader = user.mainAcct.accessTokenHeader) { // add nodes, in sorted key ascending order + console.log('sheepdogTasks.addNodes nodesList BEFORE sort: ', nodesList); + console.log('sheepdogTasks.addNodes nodesList AFTER sort:', nodes.sortNodes(nodesList)); for (const node of nodes.sortNodes(nodesList)) { + console.log('sheepdogTasks.addNodes submitting node: ', node.data.type); await this.addNode(node, accessTokenHeader); } }, From 331da0f35a1c21a1a57725f252dfb4227f10a2ba Mon Sep 17 00:00:00 2001 From: Sai Shanmukha Date: Wed, 21 Aug 2024 11:50:06 -0500 Subject: [PATCH 2/5] The `image_file` node is not present before submission. Trying to find the root cause. --- suites/sheepdogAndPeregrine/submitFileTest.js | 1 + 1 file changed, 1 insertion(+) diff --git a/suites/sheepdogAndPeregrine/submitFileTest.js b/suites/sheepdogAndPeregrine/submitFileTest.js index 59bbf013c..177c5dca5 100644 --- a/suites/sheepdogAndPeregrine/submitFileTest.js +++ b/suites/sheepdogAndPeregrine/submitFileTest.js @@ -26,6 +26,7 @@ const makeFiles = function (baseNode) { BeforeSuite(async ({ sheepdog, nodes }) => { // Cleanup any leftover nodes from previous Suites await sheepdog.complete.findDeleteAllNodes(); + console.log(JSON.stringify(nodes)); // add nodes up to, but not including, the file node await sheepdog.complete.addNodes(nodes.getPathToFile()); baseFileNode = nodes.getFileNode(); From 6825a0ca0b0a5265a4cca833558e3b8acf9308eb Mon Sep 17 00:00:00 2001 From: Sai Shanmukha Date: Wed, 21 Aug 2024 15:13:05 -0500 Subject: [PATCH 3/5] Modifying `getPathWithFileNode` --- utils/nodes.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/nodes.js b/utils/nodes.js index 26d57e9ee..92836f514 100644 --- a/utils/nodes.js +++ b/utils/nodes.js @@ -144,12 +144,14 @@ const nodePathToProject = function (startNodeName, allNodes) { * @returns {{path: Node[], file: Node}} - Path up to the node, and file node itself */ const getPathWithFileNode = function (allNodes) { + // console.log(`allNodes --> ${JSON.stringify(allNodes)}`) const allNodesClone = cloneNodes(allNodes); const fileNodeName = Object.keys(allNodesClone).find( (nodeName) => allNodesClone[nodeName].category.includes('_file'), ); const file = allNodesClone[fileNodeName].clone(); - delete allNodesClone[fileNodeName]; + // delete allNodesClone[fileNodeName]; + // console.log(`allNodesClone --> ${JSON.stringify(allNodesClone)}`) return { path: allNodesClone, file, @@ -229,6 +231,7 @@ module.exports = { }); }); }, + async getNodeFromURL(dataUrl) { const fileContents = await module.exports.downloadFile(dataUrl); From 32642a1b0d2e6088232e532f0da93f7c616a84b8 Mon Sep 17 00:00:00 2001 From: Pauline Ribeyre <4224001+paulineribeyre@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:18:42 -0500 Subject: [PATCH 4/5] replace 'find' with 'findLast' --- utils/nodes.js | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/utils/nodes.js b/utils/nodes.js index 92836f514..5a2d68cb0 100644 --- a/utils/nodes.js +++ b/utils/nodes.js @@ -23,7 +23,6 @@ class Node { * @param {Object} props.data - JSON object of node data * @param {number} props.order - Sort index * @param {string} props.category - Category of the node (e.g. file, clinical, administrative...) - * @param {string[]} props.target - Array of names of nodes this node points to in graph * @param {Object} props.orig_props - Copy of props for cloning node properties */ constructor(props) { @@ -31,7 +30,6 @@ class Node { this.order = props.order; this.category = props.category; this.name = props.name; - this.target = props.target; this.orig_props = props; } @@ -77,7 +75,6 @@ const getAllNodes = function () { const nodesDict = {}; try { let order = 1; - let target = 'project'; // first node (project) is related to program for (const line of lines) { const parts = line.split('\t'); const nodeName = parts[0]; @@ -89,9 +86,7 @@ const getAllNodes = function () { order, category: parts[1], name: nodeName, - target, }); - target = nodeName; order += 1; } return nodesDict; @@ -117,27 +112,6 @@ const cloneNodes = function (originalNodes) { return newNodes; }; -/** - * Uses BFS to find a path to project node from given starting node - * @param {string} startNodeName - node to start search from - * @param {Object} allNodes - Nodes keyed by node name - */ -const nodePathToProject = function (startNodeName, allNodes) { - // BFS to find path to project from a starting node name - // returns a dict containing nodes keyed by name - const nodesInPath = {}; - let que = [startNodeName]; - while (que.length > 0) { - const s = que.pop(); - if (s === 'project') { - break; - } - nodesInPath[s] = allNodes[s]; - que = allNodes[s].target.concat(que); - } - return nodesInPath; -}; - /** * Finds a file node and gets a path to the project node * @param {Object} allNodes - Nodes keyed by node name @@ -146,11 +120,11 @@ const nodePathToProject = function (startNodeName, allNodes) { const getPathWithFileNode = function (allNodes) { // console.log(`allNodes --> ${JSON.stringify(allNodes)}`) const allNodesClone = cloneNodes(allNodes); - const fileNodeName = Object.keys(allNodesClone).find( + const fileNodeName = Object.keys(allNodesClone).findLast( (nodeName) => allNodesClone[nodeName].category.includes('_file'), ); const file = allNodesClone[fileNodeName].clone(); - // delete allNodesClone[fileNodeName]; + delete allNodesClone[fileNodeName]; // console.log(`allNodesClone --> ${JSON.stringify(allNodesClone)}`) return { path: allNodesClone, From 43b493f2bf6de09adab9ceb0dcad6b9a1016a44c Mon Sep 17 00:00:00 2001 From: Pauline Ribeyre <4224001+paulineribeyre@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:45:06 -0500 Subject: [PATCH 5/5] clean up --- services/apis/sheepdog/sheepdogTasks.js | 3 --- suites/sheepdogAndPeregrine/submitFileTest.js | 1 - utils/nodes.js | 3 --- 3 files changed, 7 deletions(-) diff --git a/services/apis/sheepdog/sheepdogTasks.js b/services/apis/sheepdog/sheepdogTasks.js index 757776d19..f5e9f55a1 100644 --- a/services/apis/sheepdog/sheepdogTasks.js +++ b/services/apis/sheepdog/sheepdogTasks.js @@ -150,10 +150,7 @@ module.exports = { */ async addNodes(nodesList, accessTokenHeader = user.mainAcct.accessTokenHeader) { // add nodes, in sorted key ascending order - console.log('sheepdogTasks.addNodes nodesList BEFORE sort: ', nodesList); - console.log('sheepdogTasks.addNodes nodesList AFTER sort:', nodes.sortNodes(nodesList)); for (const node of nodes.sortNodes(nodesList)) { - console.log('sheepdogTasks.addNodes submitting node: ', node.data.type); await this.addNode(node, accessTokenHeader); } }, diff --git a/suites/sheepdogAndPeregrine/submitFileTest.js b/suites/sheepdogAndPeregrine/submitFileTest.js index 177c5dca5..59bbf013c 100644 --- a/suites/sheepdogAndPeregrine/submitFileTest.js +++ b/suites/sheepdogAndPeregrine/submitFileTest.js @@ -26,7 +26,6 @@ const makeFiles = function (baseNode) { BeforeSuite(async ({ sheepdog, nodes }) => { // Cleanup any leftover nodes from previous Suites await sheepdog.complete.findDeleteAllNodes(); - console.log(JSON.stringify(nodes)); // add nodes up to, but not including, the file node await sheepdog.complete.addNodes(nodes.getPathToFile()); baseFileNode = nodes.getFileNode(); diff --git a/utils/nodes.js b/utils/nodes.js index 5a2d68cb0..ce989a9df 100644 --- a/utils/nodes.js +++ b/utils/nodes.js @@ -118,14 +118,12 @@ const cloneNodes = function (originalNodes) { * @returns {{path: Node[], file: Node}} - Path up to the node, and file node itself */ const getPathWithFileNode = function (allNodes) { - // console.log(`allNodes --> ${JSON.stringify(allNodes)}`) const allNodesClone = cloneNodes(allNodes); const fileNodeName = Object.keys(allNodesClone).findLast( (nodeName) => allNodesClone[nodeName].category.includes('_file'), ); const file = allNodesClone[fileNodeName].clone(); delete allNodesClone[fileNodeName]; - // console.log(`allNodesClone --> ${JSON.stringify(allNodesClone)}`) return { path: allNodesClone, file, @@ -205,7 +203,6 @@ module.exports = { }); }); }, - async getNodeFromURL(dataUrl) { const fileContents = await module.exports.downloadFile(dataUrl);