Browse Source

Fix storage node endpoint

Leszek Wiesner 3 years ago
parent
commit
8e1e95ad01
2 changed files with 9 additions and 7 deletions
  1. 6 2
      cli/src/QueryNodeApi.ts
  2. 3 5
      cli/src/base/UploadCommandBase.ts

+ 6 - 2
cli/src/QueryNodeApi.ts

@@ -106,9 +106,13 @@ export default class QueryNodeApi {
     for (const { operatorMetadata, id } of result) {
       if (operatorMetadata?.nodeEndpoint) {
         try {
-          const validUrl = new URL(operatorMetadata.nodeEndpoint)
+          const rootEndpoint = operatorMetadata.nodeEndpoint
+          const apiEndpoint = new URL(
+            'api/v1',
+            rootEndpoint.endsWith('/') ? rootEndpoint : rootEndpoint + '/'
+          ).toString()
           validNodesInfo.push({
-            apiEndpoint: validUrl.toString().endsWith('/') ? validUrl.toString() : validUrl.toString() + '/',
+            apiEndpoint,
             bucketId: parseInt(id),
           })
         } catch (e) {

+ 3 - 5
cli/src/base/UploadCommandBase.ts

@@ -162,9 +162,7 @@ export default abstract class UploadCommandBase extends ContentDirectoryCommandB
       const nodesInfo = _.shuffle(await this.getQNApi().storageNodesInfoByBagId(bagId))
       for (const info of nodesInfo) {
         try {
-          // TODO: Use a status endpoint once available?
-          await axios.get(info.apiEndpoint, {
-            validateStatus: (s) => s === 404, // we expect 404 on root endpoint
+          await axios.get(info.apiEndpoint + '/version', {
             headers: {
               connection: 'close',
             },
@@ -229,7 +227,7 @@ export default abstract class UploadCommandBase extends ContentDirectoryCommandB
     const postData: TokenRequest = { data, signature }
     const {
       data: { token },
-    } = await axios.post(`${storageNodeInfo.apiEndpoint}authToken`, postData)
+    } = await axios.post(`${storageNodeInfo.apiEndpoint}/authToken`, postData)
     if (!token) {
       this.error('Recieved empty token from the storage node!', { exit: ExitCodes.StorageNodeError })
     }
@@ -272,7 +270,7 @@ export default abstract class UploadCommandBase extends ContentDirectoryCommandB
     })
     this.log(`Uploading object ${objectId.toString()} (${filePath})`)
     try {
-      await axios.post(`${storageNodeInfo.apiEndpoint}files`, formData, {
+      await axios.post(`${storageNodeInfo.apiEndpoint}/files`, formData, {
         headers: {
           'x-api-key': token,
           'content-type': 'multipart/form-data',