'use strict'
var _ = require('lodash')
var Bluebird = require('bluebird')
/**
* Uses IAM.getRole to check the existence of the role. If the response comes
* back with role data, the promise is resolved with True. If an error
* occurs the err is inspected to see if it is a 'NoSuchEntity' / 404 error.
* If it is, this means the role does not exist, and the promise is resolved
* with False. All other errors result in a rejection.
*
* @returns {Promise}
*/
function doesRoleExist (iam, roleName) {
function inspectError (err) {
if (err.code === 'NoSuchEntity') {
return false
}
return Bluebird.reject(err)
}
return iam
.getRolePromised({ RoleName: roleName })
.then(_.constant(true))
.error(inspectError)
}
module.exports = doesRoleExist
|