[
https://issues.apache.org/jira/browse/LIBCLOUD-438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13822491#comment-13822491
]
sebastien goasguen commented on LIBCLOUD-438:
---------------------------------------------
yes, omission on my part. indeed it can return nothing...I will check it during
the hackathon in amsterdam, we can probably patch it then.
> Cloudstack driver ex_list_keypairs does not work if no keypairs exist
> ---------------------------------------------------------------------
>
> Key: LIBCLOUD-438
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-438
> Project: Libcloud
> Issue Type: Bug
> Components: Compute
> Affects Versions: 0.13.2
> Environment: python 2.6
> Reporter: Carlos Reategui
>
> If there are no sshkeypairs in cloudstack one gets the following when trying
> ex_list_keypairs or ex_create_keypair which calls the first:
> Traceback (most recent call last):
> File "./csListKeyPairs.py", line 26, in <module>
> keys = driver.ex_list_keypairs()
> File
> "/usr/lib/python2.6/site-packages/libcloud/compute/drivers/cloudstack.py",
> line 601, in ex_list_keypairs
> return res['sshkeypair']
> KeyError: 'sshkeypair'
> I fixed it with the following change. Please note I am a python noob so not
> sure if this is the best way to do fix or not:
> --- apache-libcloud-0.13.2/libcloud/compute/drivers/cloudstack.py
> 2013-09-15 15:40:43.000000000 +0000
> +++ cloudstack.py 2013-11-14 04:05:26.000000000 +0000
> @@ -597,7 +598,9 @@
>
> extra_args = kwargs.copy()
> res = self._sync_request('listSSHKeyPairs', **extra_args)
> - return res['sshkeypair']
> + if res.has_key('sshkeypair'):
> + return res['sshkeypair']
> + return {}
>
> def ex_create_keypair(self, name, **kwargs):
> """
--
This message was sent by Atlassian JIRA
(v6.1#6144)