'Ensures that the supplied set of variables are all present in the file.
:param dict required_variables: Map of variable which must be present to error to display.
:raises errors.PluginError: If one or more are missing.'

def require(self, required_variables):

    messages = []
    for var in required_variables:
        if (not self._has(var)):
            messages.append('Property    "{0}"    not    found    (should    be    {1}).'.format(self.mapper(var), required_variables[var]))
        elif (not self._get(var)):
            messages.append('Property    "{0}"    not    set    (should    be    {1}).'.format(self.mapper(var), required_variables[var]))
    if messages:
        raise errors.PluginError('Missing    {0}    in    credentials    configuration    file    {1}:\n    *    {2}'.format(('property' if (len(messages) == 1) else 'properties'), self.confobj.filename, '\n    *    '.join(messages)))
