1. 06 Nov, 2007 4 commits
    • Iustin Pop's avatar
      Enhance mirror operations for DRBD8 · 03ece5f3
      Iustin Pop authored
      Currently, the mirror operations (add and remove children) test against
      the instance's attributes. This patch changes the check tests to work
      against the actual status of the device (i.e. live data) which is more
      realistic.
      
      The changes are:
        - allow add children if the device doesn't have local storage (even if
          we believe it has)
        - early return from remove children if the device is already without
          local storage
      
      Reviewed-by: imsnah
      03ece5f3
    • Iustin Pop's avatar
      Allow DRBD8 operation without backing storage · fc1dc9d7
      Iustin Pop authored
      This patch adds the following functionality:
        - DRBD8 devices can assemble without local storage (done by allowing
          None in the list of children, and making DRBD8 to ignore all
          children if any is None)
        - DRBD8 devices can attach (i.e. identify a device) which is not
          connected to backing storage but to the correct network ports; this
          is a rare case in normal operation (it's what would happen if one
          manually detaches the local disk, and the backing LV still exists)
      
      Reviewed-by: imsnah
      fc1dc9d7
    • Iustin Pop's avatar
      Make DRBD8 disks show 'degraded' status if diskless · 583e3f6f
      Iustin Pop authored
      This patch enables the bdev.DRBD8 class report a degraded status if the
      local disk is missing. This allows `gnt-instance info` to report the
      actual situation in this case.
      
      Note that DRBD7 should also behave like this, however the diskless case
      is less often met there and we also don't want to change behaviour.
      
      The patch also fixes some docstrings for the GetSyncStatus methods.
      
      Reviewed-by: imsnah
      583e3f6f
    • Iustin Pop's avatar
      Change the way remove children is called in bdev · e739bd57
      Iustin Pop authored
      For some cases, we don't have to have access to the children of a device
      in order to remove them (e.g. md over lvs, or drbd over lvs). In order
      to ease the removal process, skip over finding the child if it provides
      a static dev path.
      
      This is needed in order to support removal of children when the
      underlying storage has gone away.
      
      Reviewed-by: imsnah
      e739bd57
  2. 05 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Miscellaneous style fixes · 65fe4693
      Iustin Pop authored
      This patch fixes some minor pylint warnings (unused variables, wrong
      indentation, etc.) and a real bug in the recovery for drbd8 rename
      procedure.
      
      Reviewed-by: imsnah
      65fe4693
  3. 02 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Update the dev_path on LVs on rename · be345db0
      Iustin Pop authored
      When renaming a logical volume, we should change the dev_path (and other
      internal variables) in order to be consistent.
      
      Reviewed-by: imsnah
      be345db0
  4. 29 Oct, 2007 4 commits
  5. 25 Oct, 2007 1 commit
    • Iustin Pop's avatar
      Modify two mirror-device related rpc calls · 153d9724
      Iustin Pop authored
      The two calls mirror_addchild and mirror_removechild take only one child
      for addition/removal. While this is enough for our md usage, for local
      disk replacement in drbd8, we need to be able to specify both the data
      and metadata device. This patch modifies these two rpc calls (and their
      backend implementation and their usage in cmdlib) to take a list of
      children to add/remove.
      
      Reviewed-by: imsnah
      153d9724
  6. 24 Oct, 2007 7 commits
    • Iustin Pop's avatar
      Initial implementation of drbd8 template type · a1f445d3
      Iustin Pop authored
      This is a partially working drbd8 template type. It does:
        - add/remove
        - startup/failover/shutdown
      
      Not working is replace disks, which needs custom code for this template.
      
      Reviewed-by: imsnah
      a1f445d3
    • Iustin Pop's avatar
      Allow DRBD8 to sync after sb1-pri with no changes · f38478b2
      Iustin Pop authored
      Currently the way we shutdown or startup disks seems to make DRBD8
      unhappy. Until we rewrite the sequence of (de)activation, allow DRBD to
      connect after a sb1-pri condition with no changes to the data.
      
      Reviewed-by: imsnah
      f38478b2
    • Iustin Pop's avatar
      Add DRBD8 class for handling drbd version 8.x · a2cfdea2
      Iustin Pop authored
      This duplicates some code from the DRBDev class, but not very much, and
      it will be expanded with the new functionality available for the 8.x
      version. Currently the code is not accessible outside the module.
      
      This patch introduces a dependency on the pyparsing module.
      
      Reviewed-by: imsnah
      a2cfdea2
    • Iustin Pop's avatar
      Move/rename _IsValidMeta to base drbd class · ae26a287
      Iustin Pop authored
      The DRBDev._IsValidMeta only checks for the metadata device size. Since
      this is a useful check (but not complete) for DRBD8, move it to the base
      class and name it _CheckMetaSize.
      
      Reviewed-by: imsnah
      ae26a287
    • Iustin Pop's avatar
      More abstractions from DRBD7 to base class · 5a47ad20
      Iustin Pop authored
      This moves the _SetFromMinor and _MassageProcData to the base class.
      
      Reviewed-by: imsnah
      5a47ad20
    • Iustin Pop's avatar
      Improve out-of-minors handling · 0caf6485
      Iustin Pop authored
      Currently, the out-of-minors handling is not very good: though both MD
      and DRBD functions for finding an unused minor can return None, only the
      DRBD code checks for this case.
      
      This patch improves this by making the functions _FindUnusedMinor raise
      an error instead of None, and gets rid of the one manual check for the
      return value.
      
      Reviewed-by: imsnah
      0caf6485
    • Iustin Pop's avatar
      Move some methods from DRBDev to BaseDRBD · 770fe0f9
      Iustin Pop authored
      Since some of the methods and constants are valid for both 0.7 and 8.x
      versions, we move them to the base class.
      
      Reviewed-by: imsnah
      770fe0f9
  7. 19 Oct, 2007 2 commits
    • Iustin Pop's avatar
      Split some DRBD functionality based on versions · 0f7f32d9
      Iustin Pop authored
      This is a small split of some functionality from the DRBDev class into a
      base drbd class that holds just a few things, in order to make migration
      to drbd 8.x easier.
      
      Reviewed-by: imsnah
      0f7f32d9
    • Iustin Pop's avatar
      Abstract more strings values into constants · fe96220b
      Iustin Pop authored
      Currently, the disk types are defined using constants in the code.
      Convert those into constants so that we can easily find them and check
      their usage.
      
      Note that we don't rename the values of the constants as they are used
      in the configuration file, and as such it's best to leave them as they
      are.
      
      Reviewed-by: imsnah
      fe96220b
  8. 10 Oct, 2007 1 commit
    • Iustin Pop's avatar
      Remove the shebang from modules · 2f31098c
      Iustin Pop authored
      Since modules are not directly executables, remove the shebang from
      them. This helps with lintian warnings.
      
      Also make the autogenerated _autoconf.py contain two comment lines at
      the beginning, like the other modules.
      
      Reviewed-by: ultrotter
      2f31098c
  9. 30 Aug, 2007 1 commit
  10. 28 Aug, 2007 1 commit
  11. 14 Aug, 2007 1 commit
    • Iustin Pop's avatar
      Style changes for pep-8 and python-3000 compliance. · 3ecf6786
      Iustin Pop authored
      This changes the raising of exceptions from:
        raise Exception, value
      to
        raise Exception(value)
      
      as the first form will be removed in python-3000 and the second form is
      preferred now.
      
      The changes also involve a few cases of changing from raising standard
      exceptions and use our own ones.
      
      The new version also fixes many pylint-generated warnings, especially in
      ganeti-noded where I changed many methods to @staticmethod.
      
      There is no functionality changed (barring any bugs).
      3ecf6786
  12. 03 Aug, 2007 1 commit
  13. 26 Jul, 2007 1 commit
  14. 23 Jul, 2007 1 commit
  15. 16 Jul, 2007 1 commit