1. 09 May, 2014 1 commit
  2. 05 May, 2014 5 commits
  3. 08 Apr, 2014 2 commits
    • Hrvoje Ribicic's avatar
      Introduce class for temporary disk creation · b5e61bfd
      Hrvoje Ribicic authored
      
      
      The instance zeroing requires that a virtual appliance capable of
      performing it is used, and short of provisioning another VM, the best
      Ganeti can do is reuse the virtualization environment of the instance.
      To do this, a disk is needed to host the OS performing the zeroing, and
      this patch introduces a utility function that temporarily creates one.
      
      This disk is not meant to last, and almost all Ganeti checks will
      scream and flail upon seeing it. This is intentional. It should not
      survive any more than needed, and the context manager syntax should
      enforce its use as such.
      Signed-off-by: default avatarHrvoje Ribicic <riba@google.com>
      Reviewed-by: default avatarJose A. Lopes <jabolopes@google.com>
      b5e61bfd
    • Thomas Thrainer's avatar
      Fix request flooding of noded during disk sync · c1b512ca
      Thomas Thrainer authored
      
      
      If a user manually pauses the DRBD sync, Ganeti started to poll the node
      daemon without any waiting between request. This caused heavy load on
      the node. This patch fixes this by waiting at least 5 secondes between
      two polls if no sensible estimate for the remaining sync time could be
      made.
      
      Fixes issue 792
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarHrvoje Ribicic <riba@google.com>
      c1b512ca
  4. 27 Mar, 2014 1 commit
  5. 13 Mar, 2014 1 commit
  6. 11 Mar, 2014 1 commit
  7. 28 Jan, 2014 1 commit
    • Ilias Tsitsimpis's avatar
      Assign unique filenames to filebased disks · 94e252a3
      Ilias Tsitsimpis authored
      
      
      With the new format for cmdline arguments, the user is able to add a
      disk to an instance at a specific index. But filebased disks' filenames
      have the form "{0}/disk{1}" where '{0}' is the file_storage_dir and
      '{1}' is the index of the disk. So if an instance has 3 disks and we
      try to create a new one at index 1, the operation will fail because the
      filename "{0}/disk1" already exists.
      
      This patch fixes the above problem and also makes the naming of file and
      shared disks uniform with other templates.
      Signed-off-by: default avatarIlias Tsitsimpis <iliastsi@grnet.gr>
      Signed-off-by: default avatarKlaus Aehlig <aehlig@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      94e252a3
  8. 17 Dec, 2013 3 commits
  9. 11 Nov, 2013 1 commit
  10. 04 Nov, 2013 1 commit
  11. 24 Oct, 2013 1 commit
    • Dimitris Aragiorgis's avatar
      Hotplug: cmdlib support · ba924970
      Dimitris Aragiorgis authored
      
      
      Hotplugging is done by functions invoked by ApplyContainerMods(). In
      order hotplugging to take place the --hotplug option must be passed
      otherwise the modifications will take place after reboot.
      
      NIC hotplug supports add, remove and modify. The modify is done by removing
      the existing NIC and adding a new one in the same pci slot.
      
      Disk hotplug supports add and remove.  Before hotplugging a Disk it
      must be assembled. Use blockdev_assemble RPC, get the device link_name
      and then call hotplug RPC command.
      
      In order to remove a disk (with blockdev_remove) it must be shutdown. So
      after unplugging the disk ShutdownDiskInstanceDisks() must be invoked.
      
      For both device types we use the generic RPC call_hotplug_device.
      
      Also adapt unit tests to follow the change.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarThomas Thrainer <thomasth@google.com>
      ba924970
  12. 24 Sep, 2013 3 commits
  13. 12 Sep, 2013 1 commit
  14. 28 Aug, 2013 1 commit
  15. 15 Jul, 2013 3 commits
  16. 10 Jul, 2013 1 commit
  17. 03 Jul, 2013 1 commit
    • Helga Velroyen's avatar
      Fix propagation of storage parameters to/from backend · 52a8a6ae
      Helga Velroyen authored
      
      
      This patch fixes two problems with the storage reporting
      that showed up in the QA for exclusive storage:
      
      - The processing of storage space information for instance
        operations wrongly assumed that the volume group's
        storage information is always the first in the list.
      - The storage parameter 'exclusive storage' was not
        correctly extracted from the list of storage parameters.
      - There was a bug in the preparation of storage unit for
        the node info call in the iallocator. The exclusive
        storage flag was not set for spindles and the format
        of the storage parameters for LVM vgs was a boolean
        and not a list.
      Signed-off-by: default avatarHelga Velroyen <helgav@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
      52a8a6ae
  18. 02 Jul, 2013 1 commit
  19. 28 Jun, 2013 2 commits
  20. 20 Jun, 2013 1 commit
    • Thomas Thrainer's avatar
      Index instances by their UUID · da4a52a3
      Thomas Thrainer authored
      
      
      No longer index instances 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.
       * External interfaces (command line interface, IAllocator interface,
         hook scripts, etc.) are kept stable.
       * Instance UUID's are resolved in ExpandNames and then stored in the
         OpCode. This allows to check for instance renames if the OpCode is
         reloaded after a cluster restart. This check is currently only done
         for single instance parameters.
       * Instance locking unfortunately can't use instances UUID as
         identifiers. The reasons is that new instances (which have no UUID
         yet) have to be locked as well, so the instance name is used.
       * Variable names are renamed to follow the following pattern:
         - Suffix is 'inst' or 'insts': Variable holds Instance objects
         - Suffix is 'name' or 'names': Variable holds Instance names
         - Suffix is 'uuid' or 'uuids': Variable holds Instance UUID's
       * Tests are adapted.
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      da4a52a3
  21. 14 Jun, 2013 1 commit
  22. 13 Jun, 2013 2 commits
    • Thomas Thrainer's avatar
      Inline simple "alias" variables · d0d7d7cf
      Thomas Thrainer authored
      
      
      Remove variables in the form "var = self.var" throughout all LU's. Those
      "alias" variables make it harder to read the code (it's no longer
      immediately clear what's a field and what's a local variable), and can
      introduce subtle bug (especially when not used consistently and when
      they are re-assigned).
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      Reviewed-by: default avatarKlaus Aehlig <aehlig@google.com>
      d0d7d7cf
    • 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
  23. 12 Jun, 2013 1 commit
  24. 05 Jun, 2013 1 commit
  25. 03 Jun, 2013 1 commit
  26. 28 May, 2013 2 commits