1. 26 Jan, 2012 1 commit
  2. 25 Jan, 2012 1 commit
  3. 24 Jan, 2012 1 commit
  4. 23 Jan, 2012 2 commits
  5. 13 Jan, 2012 2 commits
    • Iustin Pop's avatar
      Further fixes to instance policy validation · 57dc299a
      Iustin Pop authored
      
      
      As a followup from "Remove extraneous check in policy creation", there
      are more places where we build an ipolicy, and then manually check for
      its validity. This is very bad style, as it duplicates the
      verification code across many places.
      
      This patch removes all such explicit checks (except for one in
      cmdlib.py which is correct), and instead does a bit more validation in
      the builder functions or in the actual dedicated verification
      functions. It also fixes cluster init which used the wrong,
      non-completed ipolicy (this was not detected before as we did call
      check on it, but otherwise we ignored it), and fixes a too-strong
      assert (due to the call chain, we first create the ipolicy from
      cmdline params, and only then we fill it).
      
      Finally, it removes an extraneous logging.info which I forgot from
      debugging.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      57dc299a
    • Iustin Pop's avatar
      Add new disk_templates parameter to instance policy · 2cc673a3
      Iustin Pop authored
      
      
      This is a bit more complex patch, as it requires changing the
      assumption that all keys in the policy dict points to values that are
      themselves dicts. Right now we introduce an assumption that any
      non-dicts are lists, we'll see in the future if this holds or whether
      we need more complex type checking (manual, yay Python).
      
      The patch also does some trivial style changes.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      2cc673a3
  6. 11 Jan, 2012 1 commit
  7. 09 Dec, 2011 1 commit
  8. 08 Dec, 2011 5 commits
  9. 02 Dec, 2011 1 commit
  10. 01 Dec, 2011 1 commit
  11. 30 Nov, 2011 2 commits
  12. 22 Nov, 2011 2 commits
  13. 16 Nov, 2011 1 commit
  14. 14 Nov, 2011 1 commit
  15. 10 Nov, 2011 1 commit
  16. 04 Nov, 2011 1 commit
  17. 03 Nov, 2011 1 commit
  18. 12 Oct, 2011 1 commit
    • Iustin Pop's avatar
      Rename filter and filter_ to qfilter · 2e5c33db
      Iustin Pop authored
      
      
      We currently use 'filter' as the OpCode, QueryRequest and RAPI field
      name for representing a query filter. However, since 'filter' is a
      built-in function, we actually have to use filter_ throughout the code
      in order to not override the built-in function.
      
      This patch simply goes and does a global sed over the code. Due to the
      fact that the RAPI interface already exposed this field, we add
      compatibility code for now which handles both forms.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      2e5c33db
  19. 05 Oct, 2011 1 commit
  20. 29 Sep, 2011 1 commit
    • Andrea Spadaccini's avatar
      Make migration RPC non-blocking · 6a1434d7
      Andrea Spadaccini authored
      
      
      To add status reporting for the KVM migration, the instance_migrate RPC
      must be non-blocking. Moreover, there must be a way to represent the
      migration status and a way to fetch it.
      
      * constants.py:
        - add constants representing the migration statuses
      
      * objects.py:
        - add the MigrationStatus object
      
      * hypervisor/hv_base.py
        - change the FinalizeMigration method name to FinalizeMigrationDst
        - add the FinalizeMigrationSource method
        - add the GetMigrationStatus method
      
      * hypervisor/hv_kvm.py
        - change the implementation of MigrateInstance to be non-blocking
          (i.e. do not poll the status of the migration)
        - implement the new methods defined in BaseHypervisor
      
      * backend.py, server/noded.py, rpc.py
        - add methods to call the new hypervisor methods
        - fix documentation of the existing methods to reflect the changes
      
      * cmdlib.py
        - adapt the logic of TLMigrateInstance._ExecMigration to reflect
          the changes
      Signed-off-by: default avatarAndrea Spadaccini <spadaccio@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      6a1434d7
  21. 13 Sep, 2011 1 commit
  22. 30 Aug, 2011 1 commit
  23. 25 Aug, 2011 1 commit
  24. 24 Aug, 2011 1 commit
  25. 04 Aug, 2011 1 commit
  26. 21 Apr, 2011 1 commit
  27. 14 Apr, 2011 1 commit
  28. 08 Mar, 2011 1 commit
    • Apollon Oikonomopoulos's avatar
      Shared block storage support · b6135bbc
      Apollon Oikonomopoulos authored
      
      
      This patch introduces basic shared block storage support.
      
      It introduces a new storage backend, bdev.PersistentBlockDevice, to
      use as a backend for shared block storage. The new bdev requires a new
      BLOCKDEV_DRIVER_MANUAL constant with the value "manual" and uses it as
      the first part of the block device unique_id.
      
      A new disk template, DT_BLOCK is introduced as well and added to
      DTS_EXT_MIRROR and DTS_MAY_ADOPT. Also added DTS_MUST_ADOPT constant
      and use it to check for the presence of the adopt keyword during LU
      invocation. We enforce the /dev/disk limitation upon adoption, but we
      allow block devices to reside anywhere under /dev.
      
      This is very basic support and includes no storage manipulation (provisioning,
      resizing, renaming) which will have to be implemented through a "driver"
      framework.
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      [iustin@google.com: slight changes to bdev.py]
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      b6135bbc
  29. 01 Mar, 2011 1 commit
    • Apollon Oikonomopoulos's avatar
      Core shared file storage support · 4b97f902
      Apollon Oikonomopoulos authored
      
      
      This patch introduces core file storage support, consisting of the following:
      
      A configure-time switch for enabling/disabling shared file storage
      support and controlling the shared file storage location:
      --with-shared-file-storage-dir=.  Shared file storage configuration is then
      available as _autoconf.ENABLE_SHARED_FILE_STORAGE and
      _autoconf.SHARED_FILE_STORAGE_DIR and there is a cluster-wide ssconf
      key named "shared_file_storage_dir" for changing the file location.
      
      A new disk template named "sharedfile" (DT_SHARED_FILE), using
      ganeti.bdev.FileStorage.
      
      Auxiliary functions in lib/config.py to handle shared file storage.
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      [iustin@google.com: small style fixes]
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      4b97f902
  30. 25 Feb, 2011 1 commit
  31. 24 Feb, 2011 1 commit
  32. 20 Jan, 2011 1 commit