Browse Source

storage-node-v2: Fix query-node integration.

- fix nonce expiration period
- fix bagTypes module loading
Shamil Gadelshin 3 years ago
parent
commit
e4728428da

+ 1 - 1
storage-node-v2/src/services/helpers/tokenNonceKeeper.ts

@@ -17,7 +17,7 @@ const nonceCache = new NodeCache({
  * Constructs and returns an expiration time for a token.
  */
 export function getTokenExpirationTime(): number {
-  return Date.now() + TokenExpirationPeriod
+  return Date.now() + 1000 * TokenExpirationPeriod
 }
 
 /**

+ 1 - 2
storage-node-v2/src/services/queryNode/codegen.yml

@@ -1,8 +1,7 @@
 # Paths are relative to root package directory
 overwrite: true
 
-# schema: '../../../../../query-node/generated/graphql-server/generated/schema.graphql'
-schema: '../../temp_runtime/joystream/query-node/generated/graphql-server/generated/schema.graphql'
+schema: '../query-node/generated/graphql-server/generated/schema.graphql'
 
 documents:
   - 'src/services/queryNode/queries/*.graphql'

+ 14 - 23
storage-node-v2/src/services/queryNode/generated/queries.ts

@@ -3,7 +3,7 @@ import * as Types from './schema'
 import gql from 'graphql-tag'
 export type StorageBucketDetailsFragment = {
   id: string
-  operatorMetadata?: Types.Maybe<any>
+  operatorMetadata?: Types.Maybe<{ id: string; nodeEndpoint?: Types.Maybe<string> }>
   operatorStatus: { workerId: number } | { workerId: number }
 }
 
@@ -12,29 +12,19 @@ export type GetStorageBucketDetailsQueryVariables = Types.Exact<{
   limit?: Types.Maybe<Types.Scalars['Int']>
 }>
 
-export type GetStorageBucketDetailsQuery = {
-  storageBuckets: Array<StorageBucketDetailsFragment>
-}
+export type GetStorageBucketDetailsQuery = { storageBuckets: Array<StorageBucketDetailsFragment> }
 
-export type StorageBagDetailsFragment = {
-  id: string
-  storedBy: Array<{ id: string }>
-}
+export type StorageBagDetailsFragment = { id: string; storageAssignments: Array<{ id: string }> }
 
 export type GetStorageBagDetailsQueryVariables = Types.Exact<{
-  bucketIds?: Types.Maybe<Types.StorageBucketWhereInput>
+  bucketIds?: Types.Maybe<Types.StorageBagStorageAssignmentWhereInput>
   offset?: Types.Maybe<Types.Scalars['Int']>
   limit?: Types.Maybe<Types.Scalars['Int']>
 }>
 
-export type GetStorageBagDetailsQuery = {
-  storageBags: Array<StorageBagDetailsFragment>
-}
+export type GetStorageBagDetailsQuery = { storageBags: Array<StorageBagDetailsFragment> }
 
-export type DataObjectDetailsFragment = {
-  ipfsHash: string
-  storageBag: { id: string }
-}
+export type DataObjectDetailsFragment = { ipfsHash: string; storageBag: { id: string } }
 
 export type GetDataObjectDetailsQueryVariables = Types.Exact<{
   bagIds?: Types.Maybe<Types.StorageBagWhereInput>
@@ -42,14 +32,15 @@ export type GetDataObjectDetailsQueryVariables = Types.Exact<{
   limit?: Types.Maybe<Types.Scalars['Int']>
 }>
 
-export type GetDataObjectDetailsQuery = {
-  storageDataObjects: Array<DataObjectDetailsFragment>
-}
+export type GetDataObjectDetailsQuery = { storageDataObjects: Array<DataObjectDetailsFragment> }
 
 export const StorageBucketDetails = gql`
   fragment StorageBucketDetails on StorageBucket {
     id
-    operatorMetadata
+    operatorMetadata {
+      id
+      nodeEndpoint
+    }
     operatorStatus {
       ... on StorageBucketOperatorStatusActive {
         workerId
@@ -63,7 +54,7 @@ export const StorageBucketDetails = gql`
 export const StorageBagDetails = gql`
   fragment StorageBagDetails on StorageBag {
     id
-    storedBy {
+    storageAssignments {
       id
     }
   }
@@ -85,8 +76,8 @@ export const GetStorageBucketDetails = gql`
   ${StorageBucketDetails}
 `
 export const GetStorageBagDetails = gql`
-  query getStorageBagDetails($bucketIds: StorageBucketWhereInput, $offset: Int, $limit: Int) {
-    storageBags(offset: $offset, limit: $limit, where: { storedBy_some: $bucketIds }) {
+  query getStorageBagDetails($bucketIds: StorageBagStorageAssignmentWhereInput, $offset: Int, $limit: Int) {
+    storageBags(offset: $offset, limit: $limit, where: { storageAssignments_some: $bucketIds }) {
       ...StorageBagDetails
     }
   }

File diff suppressed because it is too large
+ 644 - 241
storage-node-v2/src/services/queryNode/generated/schema.ts


+ 7 - 4
storage-node-v2/src/services/queryNode/queries/queries.graphql

@@ -1,6 +1,9 @@
 fragment StorageBucketDetails on StorageBucket {
   id
-  operatorMetadata
+  operatorMetadata {
+    id
+    nodeEndpoint
+  }
   operatorStatus {
     ... on StorageBucketOperatorStatusActive {
       workerId
@@ -19,13 +22,13 @@ query getStorageBucketDetails($offset: Int, $limit: Int) {
 
 fragment StorageBagDetails on StorageBag {
   id
-  storedBy {
+  storageAssignments {
     id
   }
 }
 
-query getStorageBagDetails($bucketIds: StorageBucketWhereInput, $offset: Int, $limit: Int) {
-  storageBags(offset: $offset, limit: $limit, where: { storedBy_some: $bucketIds }) {
+query getStorageBagDetails($bucketIds: StorageBagStorageAssignmentWhereInput, $offset: Int, $limit: Int) {
+  storageBags(offset: $offset, limit: $limit, where: { storageAssignments_some: $bucketIds }) {
     ...StorageBagDetails
   }
 }

+ 6 - 4
storage-node-v2/src/services/sync/storageObligations.ts

@@ -104,12 +104,12 @@ export async function getStorageObligationsFromRuntime(
   const model: DataObligations = {
     storageBuckets: allBuckets.map((bucket) => ({
       id: bucket.id,
-      operatorUrl: extractOperatorUrl(bucket.operatorMetadata),
+      operatorUrl: extractOperatorUrl(bucket.operatorMetadata?.nodeEndpoint),
       workerId: bucket.operatorStatus?.workerId,
     })),
     bags: assignedBags.map((bag) => ({
       id: bag.id,
-      buckets: bag.storedBy.map((bucketInBag) => bucketInBag.id),
+      buckets: bag.storageAssignments.map((bucketInBag) => bucketInBag.id),
     })),
     dataObjects: assignedDataObjects.map((dataObject) => ({
       cid: dataObject.ipfsHash,
@@ -228,9 +228,11 @@ async function getAllObjectsWithPaging<T>(
  * @param encodedString - encoded storage operator metadata
  * @returns storage operator URL
  */
-function extractOperatorUrl(encodedString: string): string {
+function extractOperatorUrl(encodedString: string | undefined | null): string {
   try {
-    return u8aToString(hexToU8a(encodedString))
+    if (encodedString) {
+      return u8aToString(hexToU8a(encodedString))
+    }
   } catch (err) {
     logger.error(`Sync - ${err}`)
   }

+ 1 - 1
storage-node-v2/src/services/webApi/controllers/common.ts

@@ -1,7 +1,7 @@
 import * as express from 'express'
 import { CLIError } from '@oclif/errors'
 import { ExtrinsicFailedError } from '../../runtime/api'
-import { BagIdValidationError } from 'src/services/helpers/bagTypes'
+import { BagIdValidationError } from '../../helpers/bagTypes'
 
 /**
  * Dedicated error for the web api requests.

File diff suppressed because it is too large
+ 529 - 21
yarn.lock


Some files were not shown because too many files changed in this diff