1. 21 Dec, 2012 9 commits
  2. 20 Dec, 2012 5 commits
    • Constantinos Venetsanopoulos's avatar
      Adjust LUInstanceSetParams wrt the `ext' template · aa6c1bb1
      Constantinos Venetsanopoulos authored
      
      
      Initial support for the `ext' template in gnt-instance modify.
      Take care of all needed checks in CheckArguments and CheckPrereqs
      wrt ExtStorage Providers and ext-params.
      
      ExtStorage disk addition and specification of arbitrary ext-params
      during addition is supported.
      
      Currently, one cannot modify an existing disk's ExtStorage Provider,
      neither can change an existing disk's ext-params. Only an existing
      disk's `mode' can be modified.
      
      Removal is transparent of the disk template and is also supported.
      Signed-off-by: default avatarConstantinos Venetsanopoulos <cven@grnet.gr>
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      [iustin@google.com: fix bug in disk changes, pylint fixes]
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      aa6c1bb1
    • Constantinos Venetsanopoulos's avatar
      Multiple ExtStorage Providers and ext-params · 938adc87
      Constantinos Venetsanopoulos authored
      
      
      Add support for passing parameters to the ext template (ext-params).
      Take advantage of disk-params, that don't seem to make much sense in
      this template (ExtStorage Providers are not predefined and we don't
      know their needs) and use them to pass the ext-params dynamically to
      the template.
      
      ext-params are correlated with gnt-os-interface's os-params.
      All ext-params are exported to the ExtStorage Provider through it's
      environment, with variables prefixed with 'EXTP_' (similarly to the
      OS interface's 'OSP_' params).
      
      ext-params are passed via the --disk option. If the disk template
      is of type `ext', then any additional options passed to --disk and
      are not in IDISK_PARAMS are considered ext-params e.g.:
      
       gnt-instance add -t ext --disk=0:size=2G,param1=value1,param2=value2
      
      Finally, we introduce a new IDISK_PARAM called IDISK_PROVIDER, that is
      mandatory for template `ext' and is used to select the desired
      ExtStorage Provider. This parameter is not a valid --disk option for
      any other template type.
      
      The IDISK_PROVIDER parameter becomes the first element of the
      disk's unique_id tuple e.g.:
      
       unique_id = ('sample_provider1', 'UUID.ext.diskX')
      
      Example selecting different ExtStorage Providers for each disk and
      passing different ext-params to them:
      
       -t ext --disk=0:size=2G,provider=sample_provider1,param1=value1
              --disk=1:size=3G,provider=sample_provider2,param2=value2
      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>
      938adc87
    • 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
    • Michael Hanselmann's avatar
      More style updates for network-related code · 044fff06
      Michael Hanselmann authored
      
      
      Error message formatting, else/if merging to elif, docstrings.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
      044fff06
    • Michael Hanselmann's avatar
      cmdlib: Additional opportunistic locking check · cfa79a23
      Michael Hanselmann authored
      
      
      If opportunistic locking is requested in the opcode, but no iallocator
      is used (not specified or no default), an error will be raised.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
      cfa79a23
  3. 19 Dec, 2012 9 commits
  4. 18 Dec, 2012 2 commits
  5. 17 Dec, 2012 3 commits
  6. 14 Dec, 2012 2 commits
  7. 13 Dec, 2012 2 commits
  8. 07 Dec, 2012 8 commits