Compare commits
No commits in common. "3205ecf8c72cc25e015dc6f2cd3d3f56917f6b23" and "bfbda5d38b663fcbb5db23d54e12501c4ea2923c" have entirely different histories.
3205ecf8c7
...
bfbda5d38b
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 ...)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue