1. 11 May, 2009 1 commit
  2. 24 Apr, 2009 1 commit
    • Guido Trotter's avatar
      gnt-instance info --all · 220cde0b
      Guido Trotter authored
      Don't show all instances info by default, but require --all to be passed
      for this time consuming operation.
      
      Reviewed-by: iustinp
      220cde0b
  3. 15 Apr, 2009 1 commit
    • Iustin Pop's avatar
      A bunch of doc and other small fixes · 949bdabe
      Iustin Pop authored
      This patch adds a couple of both externally and internally reported
      issues:
        - missing SGML tags (Issue 54), report and patch by superdupont
        - wrong variable used in the init.d script, report and patch by
          Karsten Keil <karsten-keil@t-online.de>
        - man page for gnt-instance reinstall needs clarification (Issue 56)
        - gnt-instance man page missing --disks documentation for
          replace-disks
        - gnt-node modify help output is unclear about the -C/-D/-O input
          format, and the man page doesn't document this command at all
        - “gnt-node modify -C yes” for offline or drained nodes had wrong
          error message
        - “gnt-instance reinstall --select-os” has wrong prompt, we only
          accept a number for the OS and not the template name
      
      Reviewed-by: ultrotter
      949bdabe
  4. 06 Apr, 2009 1 commit
    • Iustin Pop's avatar
      Disable synchronous (locking) queries · 77921a95
      Iustin Pop authored
      This patch raises an error in the master daemon in case the user
      requests a locking query; accordingly, all clients were modified to send
      only lockless queries. This is short-term fix, for proper fix the
      clients should be modified to submit a job when the user request a
      locking query.
      
      The other approach would be to ignore the flag passed by the client;
      this would be worse as client's wouldn't get at least an error.
      
      The possible impact of this is multiple:
        - some commands could have been not converted, and thus fail; this
          can be remedied easily
        - the consistency of commands is lost; e.g. node failover will not
          lock the node *while we get the node info*, so we could miss some
          data; this is again in the thread of atomic operations which are
          missing in the current model of query-and-act from gnt-* scripts
      
      Reviewed-by: imsnah, ultrotter
      77921a95
  5. 12 Mar, 2009 1 commit
  6. 24 Feb, 2009 2 commits
    • Iustin Pop's avatar
      Remove the extra_args parameter in instance start · 07813a9e
      Iustin Pop authored
      This patch removes the extra_args parameter and instead switches the
      instance to the HV_KERNEL_ARGS hypervisor option.
      
      This is a big change, but it's a needed cleanup, this extra parameter on
      all RPC calls is not generic and we also need to have a persistent value
      here.
      
      Reviewed-by: imsnah
      07813a9e
    • Guido Trotter's avatar
      gnt-instance info: remove hvattr descriptions · dfff41f8
      Guido Trotter authored
      Having hvattr descriptions is only confusing for the user, because even
      if they explain better what an attribute is about, they don't help in
      deciding what keyword should be used to actually set it. If in the
      future we want descriptions they should probably live in constants.py,
      and be displayed together with the key, rather than instead of it.
      
      This patch also changes the handling of the vnc console connection
      description, making compatible work with both kvm and xen-hvm.
      
      Reviewed-by: iustinp
      dfff41f8
  7. 13 Feb, 2009 1 commit
    • Iustin Pop's avatar
      Implement the backward-compatible ‘-s’ disk option · c0e4a2c3
      Iustin Pop authored
      This patch adds back to the instance creation command (gnt-instace add,
      gnt-backup import) the ‘-s’ short form option for specifying a
      single-disk instance.
      
      Also a small bug in gnt-backup import is fixed.
      
      Reviewed-by: ultrotter
      c0e4a2c3
  8. 12 Feb, 2009 2 commits
    • Iustin Pop's avatar
      Always use the same short option for iallocator · 633b36db
      Iustin Pop authored
      This patch changes the scripts so that the short name for the
      “--iallocator” option is always ‘-I’.
      
      Reviewed-by: ultrotter
      633b36db
    • Iustin Pop's avatar
      Some batcher fixes · 4082e6f9
      Iustin Pop authored
      Currently the batcher hypervisor parameter must be a dict with one
      element (e.g. {"xen-hvm": { "acpi": true }}). This is overly complex and
      hard to validate correctly; the patch splits it in two:
        - one "hypervisor" string parameter, with the name of the hypervisor
        - one "hvparams" dictionary, with the hypervisor parameters
      
      The patch also changes the error handling in parsing the definition file
      - since this is not a long-running file, we are less concerned with safe
      closing of the file, and more with presenting meaningful error
      messages.
      
      Reviewed-by: killerfoxi
      4082e6f9
  9. 11 Feb, 2009 1 commit
  10. 10 Feb, 2009 1 commit
    • Guido Trotter's avatar
      Instance parameters: force typing · a5728081
      Guido Trotter authored
      We want all the hv/be parameters to have a known type, rather than a
      random mix of empty string, boolean values, and None, so we declare the
      type of each variable and we enforce/convert it.
      
      - Add some new constants for enforceable value types
      - Add new constants dicts HVS_PARAMETER_TYPES and BES_PARAMETER_TYPES
        holding not only the valid parameters but also their types
      - Drop the old HVS_PARAMETERS and BES_PARAMETERS constants and calculate
        the values from the type dict
      - Convert all the default parameters to a valid type value
      - Create a new ForceDictType utils function, to check/enforce a dict's
        element value types, with relevant unit tests
      - Drop a few custom functions to check/convert the BE param types in
        utils and cli, in favor of ForceDictType
      - Double-check the parameter types using ForceDictType in both scripts
        and LogicalUnits, when possible.
      
      As a bonus:
      - Remove some old commented-out code in gnt-instance
      - Remove some already fixed FIXME
      - Fix a bug which prevented VALUE_DEFAULT to be applied to BE parameters
        in SetInstanceParams because the value was checked for validity before
        that transformation was made
      - Fix a bug which prevented initing a cluster and passing hvparams to
        work at all
      - ForceDictType allows an allowed_values for exceptions, which makes us
        able to do the checking even when some values must not be
        converted/typechecked (for example the 'default' string in
        SetInstanceParameters)
      
      Reviewed-by: iustinp
      a5728081
  11. 09 Feb, 2009 1 commit
    • Iustin Pop's avatar
      Add a new instance query flag ‘disk_usage’ · 024e157f
      Iustin Pop authored
      This patch adds a new instance query flag called disk_usage that
      retrieves the overall space used by an instance on each of its nodes.
      This can be used when balancing the cluster or checking N+1 status.
      
      The flag is also exported in RAPI. Note the flag is currently broken for
      file-based instances, as it represents the amount of space in the
      cluster volume group.
      
      Reviewed-by: ultrotter
      024e157f
  12. 04 Feb, 2009 1 commit
    • Iustin Pop's avatar
      Implement lockless query operations · ec79568d
      Iustin Pop authored
      This patch adds the framework for, and enables lockless OpQueryInstances. This
      means that instances will be shown in ERROR_up or ERROR_down state, even though
      this is not an error (but just an in-progress job).
      
      The framework is implemented as follows:
        - the OpQueryInstances, OpQueryNodes and OpQueryExports opcodes take
          an additional “use_locking” flag which will denote whether to lock
          or not; this patch only implements this for LUQueryInstances
        - the luxi query functions take an additional argument use_locking
          which is passed to the master daemon, and then passed to the above
          opcodes
        - cli.py export a new SYNC_OPT command line options which implement
          setting this flag to true
        - except for gnt-instance list, which uses this option, and for
          name-only queries (e.g. QueryNodes(fields=["names"])), all other
          callers are setting this flag to True
        - RAPI also sets the flag to True
      
      The patch was tested with a continuous (0.2s sleep in-between)
      gnt-instance list during a burnin, and no problems were observed.
      
      Reviewed-by: ultrotter
      ec79568d
  13. 01 Feb, 2009 1 commit
  14. 29 Jan, 2009 2 commits
    • Iustin Pop's avatar
      gnt-instance list: accept input names · 5ffaa51d
      Iustin Pop authored
      Currently gnt-instance list will refuse to take arguments, and always
      return the full list of instances. This patch allows it to pass names to
      LUQueryInstances, so that we restrict the input to a given set of
      instances.
      
      Reviewed-by: ultrotter
      5ffaa51d
    • Iustin Pop's avatar
      Check that instance exists before confirm. queries · a76f0c4a
      Iustin Pop authored
      Currently we ask the user for confirmation, and only after (try to)
      remove, failover or migrate the instance. This doesn't work nicely if
      the instance doesn't exist, so we make a query for the instance before
      the prompt, which will throw an error in case it doesn't exist.
      
      Side-note: the way the query works today is not really nice. It would be
      better if we could query explicitly for a missing instance name, so that
      this is done cleaner (explicit check) instead of side-effect (throw
      exception). We do add code for this explicit check, except that today it
      won't be used actually.
      
      Reviewed-by: ultrotter
      a76f0c4a
  15. 27 Jan, 2009 1 commit
    • Iustin Pop's avatar
      Rework the multi-instance gnt commands · 479636a3
      Iustin Pop authored
      This patch changes the multi-instance gnt-* commands (gnt-instance
      start/stop, gnt-node evacuate/failover) such that the individual
      operations are submitted in parallel, ideally improving the speed of the
      execution.
      
      The patch does this by abstracting the job set functionality into a new
      class in cli.py, that takes care of the job submit, job poll and error
      handling.
      
      Reviewed-by: ultrotter
      479636a3
  16. 23 Jan, 2009 3 commits
    • Iustin Pop's avatar
      Sort the instance names in batcher · 7312b33d
      Iustin Pop authored
      In case we submit multiple instances via batcher, it's nicer to have the
      sorted nicely.
      
      Reviewed-by: imsnah
      7312b33d
    • Iustin Pop's avatar
      Fix batcher for 2.0-style disks and nics · 9939547b
      Iustin Pop authored
      This patch fixes the gnt-instance batch-create command, and in doing so
      also slightly changes two other functions:
        - we change utils.ParseUnit so that it accepts integer values also
          (both ParseUnit(5) and ParseUnit("5") return the same value)
        - a bridge 'None' in LUCreateInstance will be converted to the default
          bridge; currently only missing bridges will be accepted to mean the
          default one
      
      The main changes to batcher were the change to variable number of disks
      and NICs.
      
      The patch also adds a batcher-instances.json example file copied from
      the 1.2 branch and properly modified.
      
      Reviewed-by: imsnah, killerfoxi
      9939547b
    • Iustin Pop's avatar
      Make iallocator work with offline nodes · 1325da74
      Iustin Pop authored
      This patch changes the iallocator framework to work with and properly
      export to plugins offline nodes. It does this by only exporting the
      static configuration data for those nodes, and not attempting to parse
      the runtime data.
      
      The patch also fixes bugs in iallocator related to the RpcResult
      conversion, changes the should_run to admin_up attribute name (as per
      the internals change), and adds “-I” as a short option for
      “--iallocator” in gnt-instance, gnt-backup and burnin.
      
      Reviewed-by: ultrotter
      1325da74
  17. 20 Jan, 2009 1 commit
  18. 13 Jan, 2009 1 commit
    • Iustin Pop's avatar
      Forward port the live migration from 1.2 branch · 53c776b5
      Iustin Pop authored
      This is forward port via copy (and not individual patches cherry-pick)
      of the latest code on the 1.2 branch related to the migration.
      
      The changes compared to 1.2 are the fact that we don't need the
      IdentifyDisks step anymore (the drbd rpc calls are independent now), and
      the rpc module improvements.
      
      Reviewed-by: ultrotter
      53c776b5
  19. 12 Jan, 2009 1 commit
    • Iustin Pop's avatar
      Heavy redo of gnt-instance info output · 19708787
      Iustin Pop authored
      In 2.0, we have more parameters in drbd's logical_id, and passing the
      results over json makes them unicode which looks worse with the default
      formatting. As such, a redo of the output is needed.
      
      This patch:
        - adds a separate function to format the logical_id of devices
        - moves the actual indentation format out of _FormatBlockDevInfo,
          which now just generates a list of items
        - adds a function _FormatList that recursively formats the list
        - formats specially key,value tuples
      
      The result is that the output is nicer, and the code in
      _FormatBlockDevInfo somewhat cleaner (as it doesn't deal with spacing
      and such issues).
      
      Reviewed-by: ultrotter
      19708787
  20. 09 Jan, 2009 1 commit
    • Iustin Pop's avatar
      Cleanup replace-disks modes and options · 7e9366f7
      Iustin Pop authored
      In 1.2, due to the md+drbd7 legacy, we had a complex choice of replace
      modes, and the new drbd8 modes where forced into this syntax, with some
      complicated rules of transition from one mode to another (if REPLACE_ALL
      but not new node passed, switch to REPLACE_SEC, etc.).
      
      This patch cleans this situation by making a clear separation between
      the two main modes:
        - replace on current nodes (with the two sub-cases on primary and on
          secondary)
        - change to a new node (either via manually specified node or via
          iallocator)
      
      Reviewed-by: imsnah
      7e9366f7
  21. 02 Dec, 2008 1 commit
  22. 01 Dec, 2008 1 commit
  23. 27 Nov, 2008 2 commits
    • Iustin Pop's avatar
      Allow network-less instances · e0e31530
      Iustin Pop authored
      Currently there's no way to specify no NICs for an instance, even though
      this is a supported configuration.
      
      The patch adds a --no-nics option to gnt-instance add.
      
      Reviewed-by: amishchenko
      e0e31530
    • Iustin Pop's avatar
      Fix instance creation · 112050d9
      Iustin Pop authored
      This patch fixes the diskless and drbd/file based instances. Sorry :(
      
      Reviewed-by: ultrotter
      112050d9
  24. 25 Nov, 2008 3 commits
    • Iustin Pop's avatar
      Implement support for multi devices changes · 24991749
      Iustin Pop authored
      This big patch adds support for:
        - changing NIC/disks in the multi-device model
        - adding/removing NICs
        - adding/removing disks
      
      The patch is big and not very nice; the error checking paths are not
      very clear.
      
      The biggest problem is that from a simple instance.ATTR=VAL change
      (which didn't throw errors before) now we are creating and removing
      disks in this LU.
      
      Reviewed-by: imsnah
      24991749
    • Iustin Pop's avatar
      Show disk access mode in gnt-instance info · b6fdf8b8
      Iustin Pop authored
      The mode parameter needs to be exported and shown in the info output.
      
      Reviewed-by: imsnah
      b6fdf8b8
    • Iustin Pop's avatar
      Slighly improve multi-nic in gnt-instance info · d2acfe27
      Iustin Pop authored
      Previously we had only one nic, so the NIC information was all on one
      line. This patch changes it to:
      
          - NICs:
            - nic/0: MAC: aa:00:00:e8:b2:ef, IP: None, bridge: None
            - nic/1: MAC: aa:00:00:53:ca:92, IP: None, bridge: xen-br0
            - nic/2: MAC: aa:00:00:ba:e5:30, IP: None, bridge: None
      
      Reviewed-by: ultrotter
      d2acfe27
  25. 23 Nov, 2008 2 commits
    • Iustin Pop's avatar
      Enable auto-unit formatting in script output · 9fbfbb7b
      Iustin Pop authored
      This patch enables by default the old 'human-readable' option, but in a
      slightly different model.
      
      The option is now called "units" and takes either:
       - 'h' for automatic formatting
       - 'm', 'g' or 't' for mebi/gibi/tebibytes
      
      If 'h' is used, we add a unit suffix, otherwise nothing is added so that
      parsing is easy.
      
      The default value of this unit is:
        - 'h' if a separator is not passed
        - 'm' if a separator is passed
      
      Reviewed-by: ultrotter
      9fbfbb7b
    • Iustin Pop's avatar
      Improvements to CLI output · 23b8c8d6
      Iustin Pop authored
      This patch adds nicer formatting for some gnt-instance list operations.
      
      Reviewed-by: ultrotter
      23b8c8d6
  26. 21 Nov, 2008 2 commits
    • Iustin Pop's avatar
      Make cli.py use FieldSet for matching fields · 00430f8e
      Iustin Pop authored
      This changes cli.py to FieldSet usage so that gnt-instance list will
      format nicely the disk.size/*, and the count of disks/nics.
      
      Reviewed-by: ultrotter
      00430f8e
    • Iustin Pop's avatar
      Change GrowDisk to work with multi-disk · ad24e046
      Iustin Pop authored
      This patch changes the instance.FindDisk method to take index arguments
      (instead of iv_names), and changes GrowDisk and list instances
      accordingly.
      
      Reviewed-by: ultrotter
      ad24e046
  27. 20 Nov, 2008 2 commits
    • Iustin Pop's avatar
      Convert replace-disks (same nodes) to multi-disk · 54155f52
      Iustin Pop authored
      This patch changes the drbd8 replace disk only (no secondary change) to
      work in with multi-disk. This mode of replaces works correctly with
      replacing only a subset of disks.
      
      Reviewed-by: imsnah
      54155f52
    • Iustin Pop's avatar
      Initial multi-disk/multi-nic support · 08db7c5c
      Iustin Pop authored
      This patch adds support for mult-disk/multi-nic in:
        - instance add
        - burnin
      
      The start/stop/failover/cluster verify work as expected. Replace disk
      and grow disk are TODO.
      
      There's also a change gnt-job to allow dictionaries to be listed in
      gnt-job info.
      
      Reviewed-by: imsnah
      08db7c5c
  28. 27 Oct, 2008 1 commit
  29. 20 Oct, 2008 1 commit