Compare commits

..

No commits in common. "3205ecf8c72cc25e015dc6f2cd3d3f56917f6b23" and "bfbda5d38b663fcbb5db23d54e12501c4ea2923c" have entirely different histories.

7 changed files with 14 additions and 112 deletions

View File

@ -685,10 +685,10 @@ class DataWrapper {
return callback(); return callback();
} }
objectTagging(method, objectKey, bucketName, objectMD, log, callback) { objectTagging(method, objectKey, bucket, objectMD, log, callback) {
if (this.config.backends.data === 'multiple') { if (this.config.backends.data === 'multiple') {
return this.client.objectTagging(method, objectKey, return this.client.objectTagging(method, objectKey,
bucketName, objectMD, log, err => callback(err)); bucket, objectMD, log, err => callback(err));
} }
return callback(); return callback();
} }

View File

@ -278,11 +278,11 @@ class MultipleBackendGateway {
return cb(); return cb();
} }
objectTagging(method, key, bucketName, objectMD, log, cb) { objectTagging(method, key, bucket, objectMD, log, cb) {
// if legacy, objectMD will not contain dataStoreName, so just return // if legacy, objectMD will not contain dataStoreName, so just return
const client = this.clients[objectMD.dataStoreName]; const client = this.clients[objectMD.dataStoreName];
if (client && client[`object${method}Tagging`]) { if (client && client[`object${method}Tagging`]) {
return client[`object${method}Tagging`](key, bucketName, objectMD, log, return client[`object${method}Tagging`](key, bucket, objectMD, log,
cb); cb);
} }
return cb(); return cb();

View File

@ -483,9 +483,9 @@ class AwsClient {
}); });
} }
objectPutTagging(key, bucketName, objectMD, log, callback) { objectPutTagging(key, bucket, objectMD, log, callback) {
const awsBucket = this._awsBucketName; const awsBucket = this._awsBucketName;
const awsKey = this._createAwsKey(bucketName, key, this._bucketMatch); const awsKey = this._createAwsKey(bucket, key, this._bucketMatch);
const dataStoreVersionId = objectMD.location[0].dataStoreVersionId; const dataStoreVersionId = objectMD.location[0].dataStoreVersionId;
const tagParams = { const tagParams = {
Bucket: awsBucket, Bucket: awsBucket,
@ -512,9 +512,9 @@ class AwsClient {
}); });
} }
objectDeleteTagging(key, bucketName, objectMD, log, callback) { objectDeleteTagging(key, bucket, objectMD, log, callback) {
const awsBucket = this._awsBucketName; const awsBucket = this._awsBucketName;
const awsKey = this._createAwsKey(bucketName, key, this._bucketMatch); const awsKey = this._createAwsKey(bucket, key, this._bucketMatch);
const dataStoreVersionId = objectMD.location[0].dataStoreVersionId; const dataStoreVersionId = objectMD.location[0].dataStoreVersionId;
const tagParams = { const tagParams = {
Bucket: awsBucket, Bucket: awsBucket,

View File

@ -361,8 +361,8 @@ class AzureClient {
}], log, callback); }], log, callback);
} }
objectPutTagging(key, bucketName, objectMD, log, callback) { objectPutTagging(key, bucket, objectMD, log, callback) {
const azureKey = this._createAzureKey(bucketName, key, this._bucketMatch); const azureKey = this._createAzureKey(bucket, key, this._bucketMatch);
const azureMD = this._getMetaHeaders(objectMD); const azureMD = this._getMetaHeaders(objectMD);
azureMD.tags = JSON.stringify(objectMD.tags); azureMD.tags = JSON.stringify(objectMD.tags);
this._errorWrapper('objectPutTagging', 'setBlobMetadata', this._errorWrapper('objectPutTagging', 'setBlobMetadata',
@ -377,8 +377,8 @@ class AzureClient {
}], log, callback); }], log, callback);
} }
objectDeleteTagging(key, bucketName, objectMD, log, callback) { objectDeleteTagging(key, bucket, objectMD, log, callback) {
const azureKey = this._createAzureKey(bucketName, key, this._bucketMatch); const azureKey = this._createAzureKey(bucket, key, this._bucketMatch);
const azureMD = this._getMetaHeaders(objectMD); const azureMD = this._getMetaHeaders(objectMD);
this._errorWrapper('objectDeleteTagging', 'setBlobMetadata', this._errorWrapper('objectDeleteTagging', 'setBlobMetadata',
[this._azureContainerName, azureKey, azureMD, [this._azureContainerName, azureKey, azureMD,

View File

@ -118,13 +118,13 @@ class PfsClient {
return callback(errors.NotImplemented); return callback(errors.NotImplemented);
} }
objectPutTagging(key, bucketName, objectMD, log, callback) { objectPutTagging(key, bucket, objectMD, log, callback) {
logHelper(log, 'error', 'Not implemented', errors.NotImplemented, logHelper(log, 'error', 'Not implemented', errors.NotImplemented,
this._dataStoreName, this.clientType); this._dataStoreName, this.clientType);
return callback(errors.NotImplemented); return callback(errors.NotImplemented);
} }
objectDeleteTagging(key, bucketName, objectMD, log, callback) { objectDeleteTagging(key, bucket, objectMD, log, callback) {
logHelper(log, 'error', 'Not implemented', errors.NotImplemented, logHelper(log, 'error', 'Not implemented', errors.NotImplemented,
this._dataStoreName, this.clientType); this._dataStoreName, this.clientType);
return callback(errors.NotImplemented); return callback(errors.NotImplemented);

View File

@ -3,8 +3,6 @@ const { EventEmitter } = require('events');
const DummyObjectStream = require('./DummyObjectStream'); const DummyObjectStream = require('./DummyObjectStream');
const { parseRange } = require('../../../../lib/network/http/utils'); const { parseRange } = require('../../../../lib/network/http/utils');
const assert = require('assert');
const errors = require('../../../../lib/errors');
const OBJECT_SIZE = 1024 * 1024 * 1024; const OBJECT_SIZE = 1024 * 1024 * 1024;
@ -135,38 +133,6 @@ class DummyService {
objStream.pipe(writeStream); objStream.pipe(writeStream);
return callback(); return callback();
} }
putObjectTagging(tagParams, callback) {
if (tagParams.Key === 'externalBackendTestBucket/externalBackendMissingKey') {
const err = errors.NoSuchKey;
return callback(err);
}
const keys = Object.keys(tagParams);
assert(keys.length > 0);
assert(tagParams.Tagging.TagSet.length > 0);
tagParams.Tagging.TagSet.forEach(tag => {
assert(tag.Key.length > 0);
assert(tag.Value.length > 0);
});
if (tagParams.VersionId) {
assert.strictEqual(tagParams.VersionId, 'latestversion');
}
return callback();
}
deleteObjectTagging(tagParams, callback) {
if (tagParams.Key === 'externalBackendTestBucket/externalBackendMissingKey') {
const err = errors.NoSuchKey;
return callback(err);
}
if (tagParams.VersionId) {
assert.strictEqual(tagParams.VersionId, 'latestversion');
}
return callback();
}
// To-Do: add tests for other methods // To-Do: add tests for other methods
} }

View File

@ -1,5 +1,4 @@
const assert = require('assert'); const assert = require('assert');
const async = require('async');
const stream = require('stream'); const stream = require('stream');
const AwsClient = require('../../../../../lib/storage/data/external/AwsClient'); const AwsClient = require('../../../../../lib/storage/data/external/AwsClient');
@ -8,7 +7,6 @@ const AzureClient =
require('../../../../../lib/storage/data/external/AzureClient'); require('../../../../../lib/storage/data/external/AzureClient');
const DummyService = require('../DummyService'); const DummyService = require('../DummyService');
const { DummyRequestLogger } = require('../../../helpers'); const { DummyRequestLogger } = require('../../../helpers');
const BucketInfo = require('../../../../../lib/models/BucketInfo');
const backendClients = [ const backendClients = [
{ {
@ -156,68 +154,6 @@ describe('external backend clients', () => {
}); });
}); });
}); });
if (backend.config.type !== 'azure') {
it(`${backend.name} should set tags and then delete it`, done => {
const key = 'externalBackendTestKey';
const bucketData = {
_name: 'externalBackendTestBucket',
_owner: 'abcdef0123456789',
_ownerDisplayName: 'UnitTestOwner',
_creationDate: '2021-10-05T08:59:12.546Z',
};
const bucket = BucketInfo.fromObj(bucketData);
const objectMd = {
tags: {
Key1: 'value_1',
Key2: 'value_2',
},
location: [
{
dataStoreVersionId: 'latestversion',
},
],
};
async.series([
next => testClient.objectPutTagging(key.key, bucket.getName(), objectMd, log, next),
next => testClient.objectDeleteTagging(key.Key, bucket.getName(), objectMd, log, next),
], done);
});
it(`${backend.name} should fail to set tag on missing key`, done => {
const key = 'externalBackendMissingKey';
const bucketData = {
_name: 'externalBackendTestBucket',
_owner: 'abcdef0123456789',
_ownerDisplayName: 'UnitTestOwner',
_creationDate: '2021-10-05T08:59:12.546Z',
};
const bucket = BucketInfo.fromObj(bucketData);
const objectMD = {
tags: {
Key1: 'value_1',
},
location: [
{
dataStoreVersionId: 'latestversion',
},
],
};
async.series(
[
next => testClient.objectPutTagging(key, bucket.getName(), objectMD, log, (err) => {
assert(err.ServiceUnavailable);
next();
}),
next => testClient.objectDeleteTagging(key, bucket.getName(), objectMD, log, (err) => {
assert(err.ServiceUnavailable);
next();
}),
],
done,
);
});
}
// To-Do: test the other external client methods (delete, createMPU ...) // To-Do: test the other external client methods (delete, createMPU ...)
}); });
}); });