1. 01 Oct, 2013 4 commits
  2. 27 Sep, 2013 1 commit
  3. 20 Sep, 2013 4 commits
  4. 19 Sep, 2013 2 commits
    • Christos Stavrakakis's avatar
      b1c3710f
    • Christos Stavrakakis's avatar
      cyclades: refactor server creation command · 4ff07fee
      Christos Stavrakakis authored
      Split the server creation command in more steps in order to be
      decorated with the 'server_command' function and follow the logic of all
      other server commands. The main change is that the commission job is not
      accepted when the VM is stored in DB, but when the OP_INSTANCE_CREATE
      job finishes in Ganeti, no matter whether it succeeded or not. Finally,
      this commit includes a transaction testcase that checks instance
      creation.
      4ff07fee
  5. 18 Sep, 2013 2 commits
  6. 17 Sep, 2013 4 commits
    • Kostas Papadimitriou's avatar
      helpdesk: Exclude nics of deleted vms · 2e66630b
      Kostas Papadimitriou authored
      when helpdesk users search using ip address
      2e66630b
    • Christos Stavrakakis's avatar
      cyclades: Mock vm removal if creation fails · a2daae31
      Christos Stavrakakis authored
      In case creating a VM fails before the OP_INSTANCE_CREATE job is
      enqueued in Ganeti, the VM and its NICs must be deleted, and the
      resources must be released from Quotaholder, which is exactly what is
      done when a VM is deleted from Ganeti. Instead of duplicating the code,
      this commit uses the same function that is used by snf-dispatcher, by
      mocking an successfully OP_INSTANCE_REMOVE.
      a2daae31
    • Christos Stavrakakis's avatar
      cyclades: Fix bug during server creation · baae8e7f
      Christos Stavrakakis authored
      Commit #32a0b85, modified server creation, by refetching the object from
      DB after issuing commission to quotaholder. However, the new object is
      not having the 'config_url' attributed, which is added to the vm object
      by the 'vmapi'. This commit, fixes this by moving the signal dispatching
      code after refetching the vm. Also, this commit makes more clear the
      exception handling code, when the creation job can not be enqueued to
      Ganeti.
      baae8e7f
    • Christos Stavrakakis's avatar
      cyclades: Make GanetiRapiClient work with gevent · 92e0680e
      Christos Stavrakakis authored
      GanetiRapiClient uses PyCurl, a Python interface to libcurl, and
      performs blocking requests, so does not work well with gevent. This
      commit makes GanetiRapiClient to use 'Requests' HTTP library that is
      greenlet-safe.
      92e0680e
  7. 16 Sep, 2013 2 commits
  8. 13 Sep, 2013 1 commit
  9. 12 Sep, 2013 3 commits
    • Giorgos Korfiatis's avatar
      cyclades: Do not save stale objects after a commit · 9b94fc30
      Giorgos Korfiatis authored
      Call to issue_and_accept_commission saves the resource object (eg a vm)
      and commits the transaction. This has the side-effect that the resource
      object becomes stale: its lock is released and another thread may acquire
      it and update the db record. It is thus not safe to further update and then
      save the stale object, since this would override others' changes. Instead,
      lock and fetch the object again, where needed.
      9b94fc30
    • Giorgos Korfiatis's avatar
      cyclades: Do not release resources if already deleted · 8101def7
      Giorgos Korfiatis authored
      Ensure that a commission to release vm resources is issued only once.
      If a vm is marked `deleted', then resources must have already been
      released.
      8101def7
    • Giorgos Korfiatis's avatar
      common: Strip trailing slash from endpoints · 31d98e59
      Giorgos Korfiatis authored
      Remove trailing slash from the endpoints' publicURL field in service
      definitions. These values end up in the response of POST /tokens, and,
      according to the keystone API, should not end in slash. A trailing slash
      breaks some clients, which do no proper checking before appending a
      suffix.
      
      Note that these URLs are not meant to act as a base path in the strict
      semantics of http://tools.ietf.org/html/rfc3986#section-5.2.3 . Suffixes
      should be merged into by a simple append (modulo catering for the joining
      slash).
      
      URLs are still configured as groups per prefix ending in a slash, eg:
      '^account/' and '^ui/'. Permanent redirects are added for all non-API
      endpoints (ui, helpdesk, admin, etc), so that `BASE_PATH/path' leads to
      `BASE_PATH/path/'.
      31d98e59
  10. 11 Sep, 2013 1 commit
  11. 10 Sep, 2013 7 commits
  12. 06 Sep, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Fix bug in snf-dispatcher logic · a399119b
      Christos Stavrakakis authored
      This commit reverts commits #07602322 and #30514662 which introduced a
      bug in dispatcher's logic. These commit fixed the issue that, in a case
      the Cyclades DB is unsynced with Ganeti, a resource that does not exist
      in the Ganeti backend, it  will not be deleted from DB in case the
      remove job fails.
      
      This commits fixes this issue, by quering Ganeti each time a failed
      OP_INSTANCE_REMOVE or OP_NETWORK_REMOVE is processed.
      a399119b
  13. 30 Aug, 2013 1 commit
  14. 28 Aug, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Fix bug in handling of reboot type. · 6b9f1b3f
      Christos Stavrakakis authored
      'type' attribute of reboot OS API call was directly mapped to the
      'reboot_type' option of Ganeti reboot job. However these two are
      semantically different. The 'SOFT' and 'HARD' reboot types of OS API are
      mapped to 'shutdown_timeout' option of Ganeti jobs. However, setting
      this option from Ganeti RAPI is not supported. Until implemented, we
      will map both types to 'hard' ganeti reboot, and fallback to default
      shutdown timeout of Ganeti (120s).
      
      Also, modify UI to not set the 'HARD' reboot type and fallback to
      default option of API which is 'SOFT'.
      6b9f1b3f
  15. 27 Aug, 2013 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Do not pass 'hotplug' if disabled · 0feb4ee0
      Christos Stavrakakis authored
      Fix passing of hotplug argument to GanetiRAPIClient, in case the
      GANETI_USE_HOTPLUG is unset. If the Ganeti version does not support
      hotplug, passing hotplug=False, will make the jobs fail at Ganeti opcode
      validation. This commit fixes this by passing the argument, only when
      the setting is set to True.
      0feb4ee0
  16. 23 Aug, 2013 2 commits
  17. 21 Aug, 2013 1 commit
  18. 20 Aug, 2013 2 commits