1. 10 Oct, 2008 2 commits
    • Iustin Pop's avatar
      Cleanup in cmdlib for standalone function calls · b9bddb6b
      Iustin Pop authored
      This patch is a cleanup of the standalone functions in cmdlib. Many of
      them too as argument a ConfigWriter instance, but some also took other
      parameters from the lu (e.g. proc), and in the future, if we want to
      also pass the RpcRunner, we would have to add yet another parameter.
      One option is to make all these methods of top-level LogicalUnit class.
      I took another approach, and made (almost) all these functions take as
      first parameter the lu instance. It's like methods, just not declared
      under LogicalUnit.
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Small random fixes · 7b3a8fb5
      Iustin Pop authored
      Indentation in bootstrap was wrong and some names in cmdlib.py were not
      Reviewed-by: imsnah
  2. 09 Oct, 2008 1 commit
  3. 08 Oct, 2008 2 commits
    • Iustin Pop's avatar
      Sanitize the hypervisor names · 00cd937c
      Iustin Pop authored
      Since in 2.0 the user will possibly have more interaction with the
      hypervisor names, we sanitize them by removing the version numbers
      (the version can be a prerequisite for the ganeti installation, we
      shouldn't document it in variable names).
      Reviewed-by: schreiberal
    • Iustin Pop's avatar
      Move the hypervisor attribute to the instances · e69d05fd
      Iustin Pop authored
      This (big) patch moves the hypervisor type from the cluster to the
      instance level; the cluster attribute remains as the default hypervisor,
      and will be renamed accordingly in a next patch. The cluster also gains
      the ‘enable_hypervisors’ attribute, and instances can be created with
      any of the enabled ones (no provision yet for changing that attribute).
      The many many changes in the rpc/backend layer are due to the fact that
      all backend code read the hypervisor from the local copy of the config,
      and now we have to send it (either in the instance object, or as a
      separate parameter) for each function.
      The node list by default will list the node free/total memory for the
      default hypervisor, a new flag to it should exist to select another
      hypervisor. Instance list has a new field, hypervisor, that shows the
      instance hypervisor. Cluster verify runs for all enabled hypervisor
      The new FIXMEs are related to IAllocator, since now the node
      total/free/used memory counts are wrong (we can't reliably compute the
      free memory).
      Reviewed-by: imsnah
  4. 06 Oct, 2008 2 commits
    • Iustin Pop's avatar
      backend.py change to get cluster name from master · 62c9ec92
      Iustin Pop authored
      Currently there are three function in backend that need the cluster name
      in order to instantiate an SshRunner. The patch changes these to get the
      cluster name from the master in the rpc call; once the multi-hypervisor
      change is implemented, then very few places in which we need the SCR
      remain in the backend.
      Reviewed-by: killerfoxi, imsnah
    • Iustin Pop's avatar
      Fix SshRunner breakage from the changed API · 6b0469d2
      Iustin Pop authored
      More places actually use the SshRunner than just the gnt-cluster
      Reviewed-by: ultrotter
  5. 01 Oct, 2008 5 commits
  6. 29 Sep, 2008 1 commit
    • Iustin Pop's avatar
      Extend DRBD disks with shared secret attribute · f9518d38
      Iustin Pop authored
      This patch, which is similar to r1679 (Extend DRBD disks with minors
      attribute), extends the logical and physical id of the DRBD disks with a
      shared secret attribute. This is generated at disk creation time and
      saved in the config file.
      The generation of the secret is done so that we don't have duplicates in
      the configuration (otherwise the goal of preventing cross-connection
      will not be reached), so we add to config.py more than just a simple
      call to utils.GenerateSecret().
      The patch does not yet enable the use of the secrets.
      Reviewed-by: imsnah
  7. 27 Sep, 2008 2 commits
  8. 25 Sep, 2008 2 commits
    • René Nussbaumer's avatar
      Fix iallocator name · 1ce4bbe3
      René Nussbaumer authored
      port forward of patch from revision 1690 with following message:
      Patch on revision 1686 used the wrong field: ial.name, which is the instance
      name and not the iallocator name. self.op.iallocator is the right field.
      Sorry for this inconvenience.
      Reviewed-by: imsnah
    • René Nussbaumer's avatar
      Fix a broken format string · 207a6c74
      René Nussbaumer authored
      This patch fixes a broken format string. It's expecting 3 parameters, but only
      gets 2. This change will add the missing parameter. This is a forward-port
      of the fix in Ganeti 1.2
      Reviewed-by: imsnah
  9. 23 Sep, 2008 2 commits
    • Iustin Pop's avatar
      Switch to static minors for DRBD · a1578d63
      Iustin Pop authored
      With some todos remaining, this patch switches the DRBD devices to use
      the passed minors, and the cmdlib code (add instance and replace disks)
      to request and assign minors to the DRBD disks.
        - look at the disk RPC calls to see which can be optimized away, since
          we now know the minor beforehand
        - remove the _FindUnusedMinor usage from the few places it's still
          used (not for actual disks, but for temporary use in meta devs) and
          eventually replace with _CheckMinorUnused or such
      Of course, this and/or the previous two patches break existing clusters.
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Fix disk replace secondary with static minors · 468b46f9
      Iustin Pop authored
      The code in 'updating instance configuration' section of the replace
      disks with change secondary node was setting a wrong new logical_id for
      the drbd devices (only set the new node, not the new minor). The patch
      fixes this by remembering the new logical_id that we use for activating
      the drbd and reusing it (instead of recomputing).
      Since the minors are not needed to be allocated before the LVs are
      created, we also move the minor allocation step (currently as None)
      after this step.
      Reviewed-by: imsnah
  10. 22 Sep, 2008 1 commit
    • Iustin Pop's avatar
      Extend DRBD disks with minors attribute · ffa1c0dc
      Iustin Pop authored
      This patch converts the DRBD disks to contain also a minor (per each
      node) attribute. This minor is not yet used and is always initialized
      with None, so the patch does not have any real-world impact - except for
      automatically upgrading config files (it adds the minors as None, None).
      Reviewed-by: imsnah
  11. 18 Sep, 2008 2 commits
    • Guido Trotter's avatar
      Apply filter properly in LUQuery{Nodes, Instances} · 3fa93523
      Guido Trotter authored
      Currently when not locking all nodes/instances are returned, regardless
      if the user asked only for some of them. With this patch we return to
      the previous behaviour:
        - if no names are specified return info on all current ones
        - if some names are specified and are not found give an error
        - otherwise return only info on the specified names
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Remove auto_balance from burnin/cmdlib · c2c2a903
      Guido Trotter authored
      There is no such feature in trunk yet.
      Reviewed-by: iustinp
  12. 11 Sep, 2008 6 commits
    • Guido Trotter's avatar
      Parallelize Tag operations · 8646adce
      Guido Trotter authored
      For now we lock the instance/node for adding/deleting tags from it, but
      we could probably in the future do without, with more support from the
      config for atomic operations.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Parallelize LUSetClusterParams (and add a FIXME) · c53279cf
      Guido Trotter authored
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Parallelize LURemoveExport · 3656b3af
      Guido Trotter authored
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Parallelize LURemoveInstance · cf472233
      Guido Trotter authored
      Using the new add/remove infrastructure this becomes pretty easy! :)
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Parallelize LUCreateInstance · 7baf741d
      Guido Trotter authored
      Finally, instance create on different node, without iallocator, can run
      in parallel. Iallocator usage still needs all nodes to be locked,
      unfortunately. As a bonus most checks which could have been moved to
      ExpandNames, before any locking is done.
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Implement adding/removal of locks by declaration · ca2a79e1
      Guido Trotter authored
      With this patch LUs can declare locks to be added when they start and/or
      removed after they finish. For now locks can only be added in the
      acquired state, and removed if owned, and added locks default to be
      removed again, unless some action is taken.
      Reviewed-by: imsnah
  13. 10 Sep, 2008 2 commits
    • Iustin Pop's avatar
      Remove locking of instances in certain queries · 57a2fb91
      Iustin Pop authored
      This patch is similar to the node patch (rev 1650). We disable locking
      of instance (and nodes) if we only query static information.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Optimize the OpQueryNodes for names only · c8d8b4c8
      Iustin Pop authored
      Currently, OpQueryNodes is locking all nodes (in shared mode), which
      will also block the special case of querying only for the node names
      (this is needed for gnt-cluster command, for example). There is no
      logical requirement to not give the administrator enough power if she/he
      knows what to do, so it would be logical that querying the node names
      works without a lock.
      The patch changes the LUQuerytNodes.ExpandNodes to only request locking
      when the selected fields contain dynamic attributes, and a small change
      in the Exec() method to use the new, atomic query method from
      Reviewed-by: ultrotter
  14. 09 Sep, 2008 10 commits