1. 09 Oct, 2013 1 commit
    • Klaus Aehlig's avatar
      If possible, replace symbolic links in place · 645bba3a
      Klaus Aehlig authored
      
      
      Naive 'ln -s -f a b' will put the link inside 'b', if
      'b' is (a symlink to) a directory; so, during upgrades,
      the links in $(sysconfdir) cannot be updated this way.
      Removing and readding works, however leaves the risk
      of the upgrade process dying in that very moment, thus
      leaving 'gnt-cluster' a dangling link, so that the --resume
      option is of no help. On GNU systems, avoid this problem
      by using the -T option of GNU ln.
      Signed-off-by: default avatarKlaus Aehlig <aehlig@google.com>
      Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
      645bba3a
  2. 08 Oct, 2013 3 commits
  3. 07 Oct, 2013 1 commit
  4. 04 Oct, 2013 2 commits
  5. 27 Aug, 2013 5 commits
  6. 06 Aug, 2013 1 commit
  7. 23 Jul, 2013 1 commit
  8. 22 Jul, 2013 1 commit
  9. 18 Jul, 2013 1 commit
  10. 15 Jul, 2013 1 commit
  11. 13 Jun, 2013 1 commit
    • Thomas Thrainer's avatar
      Index nodes by their UUID · 1c3231aa
      Thomas Thrainer authored
      
      
      No longer index nodes by their name but by their UUID in the cluster
      config. This change changes large parts of the code, as the following
      adjustments were necessary:
       * Change the index key to UUID in the configuration and the
         ConfigWriter, including all methods.
       * Change all cross-references to nodes to use UUID's.
       * External interfaces (command line interface, IAllocator interface,
         hook scripts, etc.) are kept stable.
       * RPC-calls can resolve UUID's as target node arguments, if the RPC
         runner is based on a ConfigWriter instance. The result dictionary is
         presented in the form the nodes are addressed: by UUID if UUID's were
         given, or by name if names were given.
       * Node UUID's are resolved in ExpandNames and then stored in the
         OpCode. This allows to check for node renames if the OpCode is
         reloaded after a cluster restart. This check is currently only done
         for single node parameters.
       * Variable names are renamed to follow the following pattern:
         - Suffix is 'node' or 'nodes': Variable holds Node objects
         - Suffix is 'name' or 'names': Variable holds node names
         - Suffix is 'uuid' or 'uuids': Variable holds node UUID's
       * Tests are adapted.
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      1c3231aa
  12. 11 Jun, 2013 1 commit
  13. 04 Jun, 2013 1 commit
  14. 03 Jun, 2013 1 commit
  15. 26 Apr, 2013 2 commits
    • Helga Velroyen's avatar
      Make DEFAULT_ENABLED_DISK_TEMPLATES a list · decf86f9
      Helga Velroyen authored
      
      
      This patch makes the constant DEFAULT_ENABLED_DISK_TEMPLATES
      a list instead of a set, because the order of the elements actually matters
      as the first one is planned to be the default disk template for instance
      creation. Also, this constant is always used like a list and thus providing it
      as a set complicates the code that uses it.
      Signed-off-by: default avatarHelga Velroyen <helgav@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      decf86f9
    • Helga Velroyen's avatar
      gnt-cluster modify/init: deprecate --no-lvm-storage · 912737ba
      Helga Velroyen authored
      
      
      This patch does three things:
      
      1. It deprecates the option '--no-lvm-storage' of 'gnt-cluster modify'
      and 'gnt-cluster init'. Technically, it is not fully removed, but kept in order
      to warn the user that it is no longer supported and that she should use
      --enabled-disk-templates instead.
      
      2. The consistency check between '--no-lvm-storage' and '--vg-name' is replaced
      by checks between '--enabled-disk-templates' and '--vg-name'. There are these
      cases:
      - vg name, lvm disk template enabled = ok
      - no vg name, lvm disk template enabled = error
      - vg name, no lvm enabled = warning
      - no vg name, no lvm enabled = ok
      I added quite a lot of tests for all these and the transitions from each case
      to another to the QA.
      
      3. The check whether or not the volume group is available on all nodes is now
      done only in these cases:
      - the volume group name gets set and lvm is already enabled
      - lvm is getting enabled and the volume group was set before
      Signed-off-by: default avatarHelga Velroyen <helgav@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      912737ba
  16. 24 Apr, 2013 3 commits
  17. 11 Apr, 2013 4 commits
  18. 04 Apr, 2013 1 commit
  19. 27 Mar, 2013 2 commits
  20. 26 Mar, 2013 1 commit
  21. 21 Mar, 2013 3 commits
  22. 20 Dec, 2012 1 commit
    • Constantinos Venetsanopoulos's avatar
      Implement the External Storage Interface · 376631d1
      Constantinos Venetsanopoulos authored
      
      
      With this commit we introduce the External Storage Interface
      to Ganeti, abbreviated: ExtStorage Interface.
      
      The ExtStorage Interface provides Ganeti with the ability to interact
      with externally connected shared storage pools, visible by all
      VM-capable nodes. This means that Ganeti is able to handle VM disks
      that reside inside a NAS/SAN or any distributed block storage provider.
      
      The ExtStorage Interface provides a clear API, heavily inspired by the
      gnt-os-interface API, that can be used by storage vendors or sysadmins
      to write simple ExtStorage Providers (correlated to gnt-os-interface's
      OS Definitions). Those Providers will glue externally attached shared
      storage with Ganeti, without the need of preprovisioned block devices
      on Ganeti VM-capable nodes as confined be the current `blockdev' disk
      template.
      
      To do so, we implement a new disk template called `ext' (of type
      DTS_EXT_MIRROR) that passes control to externally provided scripts
      (the ExtStorage Provider) for the template's basic functions:
      
       create / attach / detach / remove / grow
      
      The scripts reside under ES_SEARCH_PATH (correlated to OS_SEARCH_PATH)
      and only one ExtStorage Provider is supported called `ext'.
      
      The disk's logical id is the tuple ('ext', UUID.ext.diskX), where UUID
      is generated as in disk template `plain' and X is the disk's index.
      Signed-off-by: default avatarConstantinos Venetsanopoulos <cven@grnet.gr>
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      [iustin@google.com: small simplification in bdev code, pylint fixes]
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      376631d1
  23. 12 Dec, 2012 1 commit
  24. 04 Dec, 2012 1 commit