Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CUMULUS-3751 task to move granules across collections in s3 and cumulus datastore #3888

Draft
wants to merge 138 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
83fd2c8
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 22, 2023
aa314ee
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 28, 2023
ae30573
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 30, 2023
e3de4fb
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jan 12, 2024
f195570
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jan 16, 2024
e91d941
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jan 25, 2024
a9d773b
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jan 30, 2024
ee10ed1
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Feb 6, 2024
c7a2d79
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Feb 15, 2024
c301ea3
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Feb 20, 2024
03b9822
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Mar 12, 2024
5e52bb0
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Mar 25, 2024
25d28c1
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Apr 22, 2024
994e877
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Apr 29, 2024
7554d51
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 May 11, 2024
0cdad44
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jun 24, 2024
81cecdf
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jul 10, 2024
1e773b7
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Jul 25, 2024
4c2e461
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 9, 2024
fac41f7
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 13, 2024
5a63c76
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 14, 2024
de8f086
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 15, 2024
926291f
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 23, 2024
47fa0a3
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 26, 2024
e9ee557
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Aug 27, 2024
ef1dacc
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Sep 19, 2024
67b6145
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Sep 26, 2024
adac427
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Oct 28, 2024
7e09e80
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 18, 2024
1bc74e1
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 20, 2024
bab68e8
very broken save
etcart Nov 22, 2024
5d50eb5
WIP shaped right but need to fix a lot
etcart Nov 26, 2024
26cbdc1
Merge branch 'master' of https://github.com/nasa/cumulus
Nnaga1 Nov 27, 2024
b89e616
updated some typing in associated files
etcart Nov 29, 2024
302c325
WIP on testing and functionality
etcart Nov 29, 2024
b5f5132
some cleanup
etcart Nov 29, 2024
40fa00a
WIP on idempotency testing
etcart Dec 2, 2024
b1bbc29
first committ
Nnaga1 Dec 2, 2024
1e647c4
WIP use cmr data store for reference details
etcart Dec 2, 2024
7bca627
linter fixes
etcart Dec 2, 2024
bfbb9c6
get some printouts during integration tests
etcart Dec 2, 2024
3b22031
point correctly
etcart Dec 2, 2024
a539a85
why cna't you be found?
etcart Dec 2, 2024
67064c5
fixes for packaging
etcart Dec 3, 2024
fd01576
more linting fixes
etcart Dec 3, 2024
ea735d6
temp fixes to get stuff to run?
etcart Dec 3, 2024
cf58c1c
making sur epakcage works
etcart Dec 3, 2024
382bf94
trying to debug call
etcart Dec 3, 2024
2ec3548
how bout this format?
etcart Dec 3, 2024
7c08f37
need a touch more info
etcart Dec 3, 2024
96c2327
stupid truncated objects
etcart Dec 3, 2024
b1d0ddf
typo
etcart Dec 3, 2024
1517216
who knows if this pathing is right
etcart Dec 3, 2024
fa3f53f
seemed to work
etcart Dec 3, 2024
553545e
cleanup cmrutils
etcart Dec 3, 2024
d26a787
some light cleanup
etcart Dec 4, 2024
ddaa54d
copy and cleanup cmr metadata files
etcart Dec 4, 2024
eb330c2
cleanup
etcart Dec 4, 2024
ab21ee4
why remove-scripts?
etcart Dec 4, 2024
94cd0a2
why remove-scripts?
etcart Dec 4, 2024
ede6f84
updating the meta-variables
etcart Dec 4, 2024
ba98f0c
tests expanded and bugfixes to what was encountered
etcart Dec 5, 2024
e46cfe7
linting
etcart Dec 5, 2024
2442b39
remove unneeded task dep in example
etcart Dec 5, 2024
b1d0802
reintroduced removed ignore scripts
etcart Dec 5, 2024
fa77bf3
fix the md
etcart Dec 5, 2024
5ed88d5
doc linting
etcart Dec 5, 2024
4e9bdc9
remove unnecessary values from config
etcart Dec 5, 2024
8b1132e
remove extraneous values forn config
etcart Dec 5, 2024
c1619c4
total refactoring
Nnaga1 Dec 5, 2024
68a8b28
CHANGELOG change
Nnaga1 Dec 5, 2024
d36fc3b
Merge branch 'master' into CUMULUS-3757-move-granule
Nnaga1 Dec 5, 2024
41d407f
Merge remote-tracking branch 'origin/master' into ecarton/CUMULUS-375…
etcart Dec 6, 2024
cf465a7
Merge remote-tracking branch 'origin/CUMULUS-3757-move-granule' into …
etcart Dec 6, 2024
108e42d
switching fors with promise.all
Nnaga1 Dec 6, 2024
b92ced4
Merge branch 'CUMULUS-3757-move-granule' of https://github.com/nasa/c…
Nnaga1 Dec 6, 2024
c46187d
updating to the new pg interface
etcart Dec 6, 2024
7b118f0
more linting
etcart Dec 6, 2024
4a6bb01
different package structure to satisfy scriptless bootstrap
etcart Dec 9, 2024
e8346ea
feedback
Nnaga1 Dec 9, 2024
406e791
don't lint compiled js files
etcart Dec 9, 2024
6cba814
Merge remote-tracking branch 'origin/CUMULUS-3757-move-granule' into …
etcart Dec 9, 2024
6a0d618
small feedback change
Nnaga1 Dec 9, 2024
65f4456
updated tests
etcart Dec 9, 2024
294fe22
fix package script
etcart Dec 9, 2024
8342a02
adding jsdoc
Nnaga1 Dec 9, 2024
70b09b7
Merge branch 'master' into CUMULUS-3757-move-granule
Nnaga1 Dec 10, 2024
7b4fe05
linter fixes
etcart Dec 10, 2024
414851a
first pass at calling the lambda in integration tests and bugfix in t…
etcart Dec 10, 2024
9a800b8
Merge branch 'master' into CUMULUS-3757-move-granule
Nnaga1 Dec 10, 2024
3583293
linting
etcart Dec 10, 2024
3133cc2
more to int tests and why is output format getting flagged
etcart Dec 10, 2024
096b713
mistaken name from old move granules
etcart Dec 10, 2024
25cd0a7
still need to point to the right file
etcart Dec 10, 2024
4a18e38
naming cleanup
etcart Dec 11, 2024
0c1c36c
more movin stuff around
etcart Dec 11, 2024
1bad8c3
point webpack right
etcart Dec 11, 2024
acb681c
unsure what's wrong I'm closer imitating another that works
etcart Dec 11, 2024
a3db811
corrected pathing in tf
etcart Dec 12, 2024
96f7c20
corrected pthing in package
etcart Dec 12, 2024
462a65e
cont to massage configuration
etcart Dec 12, 2024
a835a6a
PR feedback--naming
Nnaga1 Dec 12, 2024
4834f68
PR feedback - transactions
Nnaga1 Dec 16, 2024
c8bc308
Merge branch 'CUMULUS-3757-move-granule' of https://github.com/nasa/c…
Nnaga1 Dec 16, 2024
2d15b5f
PR feedback
Nnaga1 Dec 16, 2024
5c81cf4
Merge branch 'master' into CUMULUS-3757-move-granule
Nnaga1 Dec 16, 2024
a2efe77
Merge branch 'CUMULUS-3757-move-granule' of https://github.com/nasa/c…
Nnaga1 Dec 18, 2024
5f29b66
Merge branch 'master' into CUMULUS-3757-move-granule
Nnaga1 Dec 18, 2024
0e05f81
Merge branch 'CUMULUS-3757-move-granule' of https://github.com/nasa/c…
Nnaga1 Dec 18, 2024
03237e0
converting to PATCH endpoint
Nnaga1 Dec 18, 2024
dfef9e1
Merge branch 'CUMULUS-3757-move-granule' into ecarton/cumulus-3751-us…
etcart Dec 19, 2024
8756769
Merge remote-tracking branch 'origin/master' into ecarton/cumulus-375…
etcart Dec 19, 2024
c4b76f6
api client for this endpoint
etcart Dec 19, 2024
a840ed1
Merge branch 'CUMULUS-3757-move-granule' into ecarton/cumulus-3751-us…
etcart Dec 19, 2024
fa73c4d
update to use and mock for testing the api-client
etcart Dec 19, 2024
9aad83a
lint fixes
etcart Dec 19, 2024
76f6756
some mistakes brought over from old version
etcart Dec 19, 2024
c1c3ff2
mistaken config require
etcart Dec 20, 2024
ff76289
linting and proper environment variable
etcart Dec 20, 2024
8ae5ee3
should expect 200
etcart Dec 20, 2024
2075500
linting fixes and test for presence in cumulus according to api
etcart Dec 20, 2024
4b2508e
first pass at ecs task transition
etcart Dec 20, 2024
9bf3058
moving partially over to example folder
etcart Dec 20, 2024
615028f
trying to get path right
etcart Dec 20, 2024
fcf2219
corrected directory for ecs_service
etcart Dec 23, 2024
5ec8c21
can be a variable?
etcart Dec 23, 2024
1e77266
actually setting that in ingest
etcart Dec 23, 2024
437c58f
try this way
etcart Dec 23, 2024
bbd1b90
how bout no sub syntax?
etcart Dec 23, 2024
319ff12
this way?
etcart Dec 23, 2024
615601e
how bout this path?
etcart Dec 23, 2024
ddc271f
how abotu this?
etcart Dec 23, 2024
06d5436
try this method of getting data around in tf
etcart Dec 24, 2024
3b1305a
see if this works
etcart Dec 26, 2024
def26f0
got arn to pass, now the rest
etcart Dec 26, 2024
2a25aa4
ingst path
etcart Dec 26, 2024
324f33f
in cumulus outputs
etcart Dec 26, 2024
4bc512b
try this simplified form
etcart Dec 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,5 @@ _book/**
/packages/object-store/*.js
/packages/lzards-api-client/*.d.ts
/packages/lzards-api-client/*.js
/tasks/move-granule-collections/*.js
/tasks/move-granule-collections/*.d.ts
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).

### Added

- **CUMULUS-3757**
- Added a database helper function to assist with updating a granule and its files PG fields when moving the granule(s) across collections
- **CUMULUS-3919**
- Added terraform variables `disableSSL` and `rejectUnauthorized` to `tf-modules/cumulus-rds-tf` module.

Expand Down
9 changes: 9 additions & 0 deletions docs/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,15 @@ Move granule files from staging to final location

---

### [@cumulus/move-granule-collections](https://github.com/nasa/cumulus/tree/master/tasks/move-granule-collections)

Move granule files and records in cumulus datastores from one collection to another

- Schemas: See this module's [schema definitions](https://github.com/nasa/cumulus/tree/master/tasks/move-granule-collections/schemas).
- Resources: [npm](https://npmjs.com/package/@cumulus/move-granule-collections) | [source](https://github.com/nasa/cumulus) | [web](https://github.com/nasa/cumulus/tree/master/tasks/move-granule-collections)

---

### [@cumulus/orca-copy-to-archive-adapter](https://github.com/nasa/cumulus/tree/master/tasks/orca-copy-to-archive-adapter)

Adapter to invoke orca copy-to-archive lambda
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,296 @@
'use strict';

const { InvokeCommand } = require('@aws-sdk/client-lambda');
const { lambda } = require('@cumulus/aws-client/services');
const {
promiseS3Upload,
deleteS3Object,
} = require('@cumulus/aws-client/S3');
const { waitForListObjectsV2ResultCount } = require('@cumulus/integration-tests');
const {
granules,
collections,
} = require('@cumulus/api-client');

const path = require('path');
const fs = require('fs');
const { v4: uuidv4 } = require('uuid');
const { loadConfig } = require('../../helpers/testUtils');
const { constructCollectionId } = require('../../../../packages/message/Collections');
describe('when moveGranulesCollection is called', () => {
let stackName;
const sourceUrlPrefix = `source_path/${uuidv4()}`;
const targetUrlPrefix = `target_path/${uuidv4()}`;
const originalCollection = {
files: [
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
bucket: 'protected',
},
{
regex: '^BROWSE\\.MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf$',
sampleFileName: 'BROWSE.MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
bucket: 'private',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf\\.met$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf.met',
bucket: 'private',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.cmr\\.xml$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.cmr.xml',
bucket: 'protected',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}_2\\.jpg$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_2.jpg',
bucket: 'public',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}_1\\.jpg$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_1.jpg',
bucket: 'private',
},
],
url_path: targetUrlPrefix,
name: 'MOD11A1',
granuleIdExtraction: '(MOD11A1\\.(.*))\\.hdf',
granuleId: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}$',
dataType: 'MOD11A1',
process: 'modis',
version: '006',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
id: 'MOD11A1',
};
const targetCollection = {
files: [
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
bucket: 'protected',
},
{
regex: '^BROWSE\\.MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf$',
sampleFileName: 'BROWSE.MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
bucket: 'private',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.hdf\\.met$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf.met',
bucket: 'private',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}\\.cmr\\.xml$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.cmr.xml',
bucket: 'public',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}_2\\.jpg$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_2.jpg',
bucket: 'public',
},
{
regex: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}_1\\.jpg$',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_1.jpg',
bucket: 'public',
url_path: `${targetUrlPrefix}/jpg/example2/`,
},
],
url_path: targetUrlPrefix,
name: 'MOD11A2',
granuleIdExtraction: '(MOD11A1\\.(.*))\\.hdf',
granuleId: '^MOD11A1\\.A[\\d]{7}\\.[\\S]{6}\\.006.[\\d]{13}$',
dataType: 'MOD11A2',
process: 'modis',
version: '006',
sampleFileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
id: 'MOD11A2',
};
const processGranule = {
status: 'completed',
collectionId: 'MOD11A1___006',
granuleId: 'MOD11A1.A2017200.h19v04.006.2017201090724',
files: [
{
key: `${sourceUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724.hdf`,
bucket: 'cumulus-test-sandbox-protected',
type: 'data',
fileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.hdf',
},
{
key: `${sourceUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724_1.jpg`,
bucket: 'cumulus-test-sandbox-private',
type: 'browse',
fileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_1.jpg',
},
{
key: `${sourceUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724_2.jpg`,
bucket: 'cumulus-test-sandbox-public',
type: 'browse',
fileName: 'MOD11A1.A2017200.h19v04.006.2017201090724_2.jpg',
},
{
key: `${sourceUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724.cmr.xml`,
bucket: 'cumulus-test-sandbox-protected',
type: 'metadata',
fileName: 'MOD11A1.A2017200.h19v04.006.2017201090724.cmr.xml',
},
],
};
// let systemBucket;
beforeAll(async () => {
const config = await loadConfig();
stackName = config.stackName;
});

describe('under normal circumstances', () => {
let beforeAllFailed;
let finalFiles;
afterAll(async () => {
await Promise.all(finalFiles.map((fileObj) => deleteS3Object(
fileObj.bucket,
fileObj.key
)));
});
beforeAll(async () => {
finalFiles = [
{
bucket: 'cumulus-test-sandbox-protected',
key: `${targetUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724.hdf`,
},
{
bucket: 'cumulus-test-sandbox-public',
key: `${targetUrlPrefix}/jpg/example2/MOD11A1.A2017200.h19v04.006.2017201090724_1.jpg`,
},
{
bucket: 'cumulus-test-sandbox-public',
key: `${targetUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724_2.jpg`,
},
{
bucket: 'cumulus-test-sandbox-public',
key: `${targetUrlPrefix}/MOD11A1.A2017200.h19v04.006.2017201090724.cmr.xml`,
},
];

const payload = {
meta: {
collection: targetCollection,
buckets: {
internal: {
type: 'cumulus-test-sandbox-internal',
},
private: {
name: 'cumulus-test-sandbox-private',
type: 'private',
},
protected: {
name: 'cumulus-test-sandbox-protected',
type: 'protected',
},
public: {
name: 'cumulus-test-sandbox-public',
type: 'public',
},
},
},
config: {
buckets: '{$.meta.buckets}',
distribution_endpoint: 'https://something.api.us-east-1.amazonaws.com/',
collection: '{$.meta.collection}',
},
input: {
granules: [
processGranule,
],
},
};
//upload to cumulus
try {
try {
await collections.createCollection({
prefix: stackName,
collection: originalCollection,
});
} catch {
console.log(`collection ${constructCollectionId(originalCollection.name, originalCollection.version)} already exists`);
}
try {
await collections.createCollection({
prefix: stackName,
collection: targetCollection,
});
} catch {
console.log(`collection ${constructCollectionId(targetCollection.name, targetCollection.version)} already exists`);
}
try {
await granules.createGranule({
prefix: stackName,
body: processGranule,
});
} catch {
console.log(`granule ${processGranule.granuleId} already exists`);
}
await Promise.all(processGranule.files.map(async (file) => {
let body;
if (file.type === 'metadata') {
body = fs.createReadStream(path.join(__dirname, 'data/meta.xml'));
} else {
body = file.key;
}
await promiseS3Upload({
params: {
Bucket: file.bucket,
Key: file.key,
Body: body,
},
});
}));
const { $metadata } = await lambda().send(new InvokeCommand({
FunctionName: `${stackName}-MoveGranuleCollections`,
InvocationType: 'RequestResponse',
Payload: JSON.stringify({
cma: {
meta: payload.meta,
task_config: payload.config,
event: {
payload: payload.input,
},
},
}),
}));
console.log($metadata.httpStatusCode);
if ($metadata.httpStatusCode >= 400) {
console.log(`lambda invocation to set up failed, code ${$metadata.httpStatusCode}`);
beforeAllFailed = true;
}

await Promise.all(finalFiles.map((file) => expectAsync(
waitForListObjectsV2ResultCount({
bucket: file.bucket,
prefix: file.key,
desiredCount: 1,
interval: 5 * 1000,
timeout: 30 * 1000,
})
).toBeResolved()));
} catch (error) {
console.log(`files do not appear to have been moved: error: ${error}`);
beforeAllFailed = false;
}
});
it('moves the granule data in s3', () => {
if (beforeAllFailed) fail('beforeAllFailed');
});
it('updates the granule data in cumulus', async () => {
if (beforeAllFailed) fail('beforeAllFailed');
const cumulusGranule = await granules.getGranule({
prefix: stackName,
granuleId: processGranule.granuleId,
});
expect(cumulusGranule.granuleId).toEqual(processGranule.granuleId);
expect(cumulusGranule.collectionId).toEqual(constructCollectionId(targetCollection.name, targetCollection.version));
});
});
});
Loading