shovel/lib/api/openstack/keystone.js
Andre Keedy 3a9e73320c http statusCode support
- use express instead of connect
- Return http request status code from shovel proxies

Change-Id: I562c8c738f3e383eb85034469a61ae1f462ae8cd
2016-03-08 14:46:34 -05:00

67 lines
1.7 KiB
JavaScript

// Copyright 2015, EMC, Inc.
/*eslint-env node*/
/* keystone authentication */
var config = require('./../../../config.json');
var client = require('./../client');
var Promise = require('bluebird');
var encryption = require('./../../services/encryption');
var logger = require('./../../services/logger').Logger;
Promise.promisifyAll(client);
var request = {
host: config.keystone.httpHost,
path: '/' + config.keystone.version + '/tokens',
port: config.keystone.httpPort,
token: '',
data: {},
api: {},
useragent: ''
};
var KeystoneAuthentication = {
authenticatePassword: function (tenantName, username, password) {
'use strict';
var decrypted;
try {
decrypted = encryption.decrypt(password);
} catch (err) {
logger.error(err);
//return empty promise
return Promise.resolve();
}
request.data = JSON.stringify(
{
auth: {
tenantName: tenantName,
passwordCredentials: {
username: username,
password: decrypted
}
}
});
return client.PostAsync(request);
},
authenticateToken: function (tenantName, username, token) {
'use strict';
request.data = JSON.stringify(
{
auth: {
tenantName: tenantName,
token: {
id: token
}
}
});
return client.PostAsync(request);
},
getStatus: function () {
'use strict';
return client.getStatus();
}
};
module.exports = Object.create(KeystoneAuthentication);