'Save the material (the unencrypted PEM encoded RSA private key)
of a newly created KeyPair to a local file.
:type directory_path: string
:param directory_path: The fully qualified path to the directory
in which the keypair will be saved.  The
keypair file will be named using the name
of the keypair as the base name and .pem
for the file extension.  If a file of that
name already exists in the directory, an
exception will be raised and the old file
will not be overwritten.
:rtype: bool
:return: True if successful.'

def save(self, directory_path):

    if self.material:
        directory_path = os.path.expanduser(directory_path)
        file_path = os.path.join(directory_path, ('%s.pem' % self.name))
        if os.path.exists(file_path):
            raise BotoClientError(('%s    already    exists,    it    will    not    be    overwritten' % file_path))
        fp = open(file_path, 'wb')
        fp.write(self.material)
        fp.close()
        os.chmod(file_path, 384)
        return True
    else:
        raise BotoClientError('KeyPair    contains    no    material')
