Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-438

Cloudstack driver ex_list_keypairs does not work if no keypairs exist

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.13.2
    • 0.14.0-beta3
    • Compute
    • None
    • python 2.6

    Description

      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):
      """

      Attachments

        Activity

          People

            kami Tomaz Muraus
            creategui Carlos Reategui
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: