Skip to content
Merged
Changes from all commits
Commits
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
71 changes: 1 addition & 70 deletions lib/data/external/GcpClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -288,76 +288,7 @@ class GcpClient extends AwsClient {
return callback();
});
}

/**
* healthcheck - the gcp health requires checking multiple buckets:
* main, mpu, and overflow buckets
* @param {string} location - location name
* @param {function} callback - callback function to call with the bucket
* statuses
* @return {undefined}
*/
healthcheck(location, callback) {
const checkBucketHealth = (bucket, cb) => {
const bucketResp = {};
this._client.headBucket({ Bucket: bucket }, err => {
if (err) {
bucketResp[bucket] = {
gcpBucket: bucket,
error: err,
external: true };
return cb(null, bucketResp);
}
return this._client.getBucketVersioning({ Bucket: bucket },
(err, data) => {
if (err) {
bucketResp[bucket] = {
gcpBucket: bucket,
error: err,
external: true,
};
} else if (!data.Status || data.Status === 'Suspended') {
bucketResp[bucket] = {
gcpBucket: bucket,
versioningStatus: data.Status,
error: 'Versioning must be enabled',
external: true,
};
} else {
bucketResp[bucket] = {
gcpBucket: bucket,
versioningStatus: data.Status,
message: 'Congrats! You own the bucket',
};
}
return cb(null, bucketResp);
});
});
};
const bucketList = [
this._gcpBucketName,
this._mpuBucketName,
this._overflowBucketname,
];
async.map(bucketList, checkBucketHealth, (err, results) => {
const gcpResp = {};
gcpResp[location] = {
buckets: [],
};
if (err) {
// err should always be undefined
return callback(errors.InternalFailure
.customizeDescription('Unable to perform health check'));
}
results.forEach(bucketResp => {
if (bucketResp.error) {
gcpResp[location].error = true;
}
gcpResp[location].buckets.push(bucketResp);
});
return callback(null, gcpResp);
});
}
}

module.exports = GcpClient;