'List available console and server keys
There are two types of keys for NephoScale, ssh and password keys.
If run without arguments, lists all keys. Otherwise list only
ssh keys, or only password keys.
Password keys with key_group 4 are console keys. When a server
is created, it has two keys, one password or ssh key, and
one password console key.
:keyword ssh: if specified, show ssh keys only (optional)
:type    ssh: ``bool``
:keyword password: if specified, show password keys only (optional)
:type    password: ``bool``
:keyword key_group: if specified, show keys with this key_group only
eg key_group=4 for console password keys (optional)
:type    key_group: ``int``
:rtype: ``list`` of :class:`NodeKey`'

def ex_list_keypairs(self, ssh=False, password=False, key_group=None):

    if (ssh and password):
        raise LibcloudError('You    can    only    supply    ssh    or    password.    To    get    all    keys    call    with    no    arguments')
    if ssh:
        result = self.connection.request('/key/sshrsa/').object
    elif password:
        result = self.connection.request('/key/password/').object
    else:
        result = self.connection.request('/key/').object
    keys = [self._to_key(value) for value in result.get('data', [])]
    if key_group:
        keys = [key for key in keys if (key.key_group == key_group)]
    return keys
