1. 30 Apr, 2008 1 commit
    • Guido Trotter's avatar
      HooksMaster: Make RunPhase return the rpc output · b07a6922
      Guido Trotter authored
      Right now the hooks output is propagated from the nodes all the way up to
      HooksMaster.RunPhase, which uses it for debugging PRE hooks, but then silently
      discards them. We'll now propagate it up to the Processor.ExecOpCode function,
      where they can be handled for other purposes (or discarded again, of course).
      This patch also improves a bit the HooksMaster.RunPhase docstring.
      
      Reviewed-by: iustinp
      
      b07a6922
  2. 23 Apr, 2008 1 commit
  3. 16 Apr, 2008 1 commit
    • Iustin Pop's avatar
      Allocator framework, 1st part: allocator input generation · d61df03e
      Iustin Pop authored
      In preparation for the introduction of automatic instance allocator,
      this patch adds an allocator simulation opcode, that based on the input
      parameters, will return either the input message to the allocator
      (implemented) or the result of the allocator run (not yet implemented).
      
      This allows algorithm tests against simulated allocations and the
      current cluster state.
      
      The patch adds the following:
        - a function that generates the generic cluster information for the
          allocator
        - a function that generates the 'new instance' information
        - a function that generates the 'replace_secondary' information
      
      These three functions will be used by the allocator framework later to
      generate the actual information for the external algorithms. Currently
      we just return the json-serialized text.
      
      Reviewed-by: imsnah
      d61df03e
  4. 31 Mar, 2008 2 commits
  5. 30 Mar, 2008 1 commit
    • Iustin Pop's avatar
      Change the order of config updates in some LUs · fe482621
      Iustin Pop authored
      In the start and stop instance LUs, the configuration update is done
      right at the end. This means that if, for example, the instance shutdown
      succeeds, but the drive deactivation fails, the next run of the watcher
      will start the instance again, as it's still marked in running mode.
      
      This patch changes these two LUs so that first the update the
      configuration to the desired state, and only then we proceed to update
      the config. This ensures that the state saved is the desired state.
      
      Because the config might be updated even though the LU failed, this
      patch also modifies the mcpu.Processor.ExecOpCode method to run the
      RunConfigUpdate hook in a finally: phase while the lu.Exec is done in
      its try phase. This ensures that config update hooks (tries to) run at
      all times when the config is updated.
      
      Reviewed-by: schreiberal
      fe482621
  6. 25 Mar, 2008 1 commit
  7. 05 Mar, 2008 1 commit
  8. 22 Feb, 2008 1 commit
  9. 05 Feb, 2008 1 commit
  10. 12 Dec, 2007 1 commit
    • Iustin Pop's avatar
      Add the ‘gnt-cluster verify-disks’ command · f4d4e184
      Iustin Pop authored
      This patch adds the OpVerifyDisks handling in mcpu.py and the
      verify-disks command in the gnt-cluster script, which for every instance
      computed by LUVerifyDisks submits a new OpActivateInstanceDisks request.
      
      Reviewed-by: imsnah
      f4d4e184
  11. 09 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Soften the requirements for hooks execution · 2395c322
      Iustin Pop authored
      Currently, an unreachable node (or one that return undetermined failure)
      in the hooks pre-phase will abort the curren operation. This is not
      good, as a down node could prevent many operation on the cluster.
      
      This patch changes a RPC-level failure (and not a hook execution
      failure) into a warning. It also modifies the related test cases.
      
      This fixes issue 11.
      
      Reviewed-by: ultrotter
      2395c322
  12. 08 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Changes related to logging · 5bfac263
      Iustin Pop authored
      This patch modifes:
        - mcpu.Processor.LogWarning to have its 'hint' parameter as optional
          and only log it if not None
        - cmdlib._WaitForSync to not log directly to stdout/stderr but via the
          proc.Log(Info|Warning) methods
        - the LU attribute 'processor' is renamed to 'proc' to shorten the
          name
      
      Reviewed-by: imsnah
      5bfac263
  13. 06 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Add better error logging functions for LUs · 0fbbf897
      Iustin Pop authored
      Currently, some LUs use logger.Error, others just feedback_fn, etc. This
      patch adds three functions to mcpu.Processor than can be used to log
      messages to both the log and to the user.
      
      These function will be used to enhance the output of replace-disks for
      drbd8 (at least).
      
      Reviewed-by: imsnah
      0fbbf897
  14. 03 Nov, 2007 1 commit
    • Iustin Pop's avatar
      Implement tag searching · 73415719
      Iustin Pop authored
      This patch adds a search command for locating tags on all objects of the
      cluster using a regex pattern.
      
      Reviewed-by: aat
      73415719
  15. 29 Oct, 2007 1 commit
  16. 18 Oct, 2007 1 commit
    • Alexander Schreiber's avatar
      Patch series for reboot feature, part 2 · bf6929a2
      Alexander Schreiber authored
      This patch series implements the reboot command for gnt-instance. It
      supports three types of reboot: soft (hypervisor reboot), hard (instance
      config rebuild and reboot) and full (full instance shutdown and startup
      again).
      
      This patch contains the opcode and lu part.
      
      Reviewed-by: iustinp
      
      bf6929a2
  17. 11 Oct, 2007 4 commits
    • Iustin Pop's avatar
      Implement post-configuration-update hook · 6a4aa7c1
      Iustin Pop authored
      This patch adds a special hook: the post-configuration update hook. This
      hook has only a post phase that runs after a top-level LU that modified
      the configuration.
      
      Since the hook is a post-phase one, no error checking is done on the
      results. The hook runs only on the master.
      
      Reviewed-by: imsnah
      6a4aa7c1
    • Iustin Pop's avatar
      Split the hooks env building in two parts · 4167825b
      Iustin Pop authored
      This patch moves some of the environment processing from _BuildEnv to a
      new _RunWrapper command which does the stringification and adds the
      sstore variables.
      
      The reasoning is that the sstore can be fresher than before the
      execution (e.g.  in case of cluster init).
      
      In order to support thise, we also need to modify cmdlib.LUInitCluster:
        - memorize the sstore and cfgw newly created in the Exec function
        - no need to build the custom environment in the BuildHooks
      4167825b
    • Iustin Pop's avatar
      Move hook execution decision to HooksMaster · 9a395a76
      Iustin Pop authored
      Currently, the HooksMaster creation and execution decision is in the
      Processor class. This is not optimal, so we change to always create a
      hooks master and instead make the decision inside that class, by
      creating empty node lists for both pre and post if the lu doesn't
      support hooks. This way, hooks decisions are moved to HooksMaster (where
      they belong).
      
      Reviewed-by: imsnah
      9a395a76
    • Iustin Pop's avatar
      Remove cfg and sstore parameters to HooksMaster · f97a6b10
      Iustin Pop authored
      The HooksMaster class doesn't use the cfg parameter, and it's better to
      use it from the LU anyway (if needed). Let's remove it.
      
      Also, the sstore of the LU can be fresher than the sstore we got at init
      time, so use that instead and remove our own.
      
      Reviewed-by: imsnah
      f97a6b10
  18. 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
  19. 08 Oct, 2007 1 commit
  20. 18 Sep, 2007 1 commit
    • Iustin Pop's avatar
      Implement cluster rename operation · 07bd8a51
      Iustin Pop authored
      This patch adds a new OpCode (and corresponding LU) that implements the
      cluster rename functionality.
      
      This is done by shutting down the master role, making the needed sstore
      modifications and distributing the changed files to all nodes, and then
      re-enabling the master role.
      
      The modification to the man page of gnt-cluster also moves the section
      on gnt-cluster destroy in order to correct alphabetical ordering.
      
      Reviewed-by: imsnah
      07bd8a51
  21. 17 Sep, 2007 1 commit
  22. 14 Sep, 2007 1 commit
    • Iustin Pop's avatar
      Remove OpQueryNodeData and LUQueryNodeData · 4a72cc75
      Iustin Pop authored
      Now that LUQueryNodes supports all the functionality of LUQueryNodeData,
      let's migrate gnt-node.ShowNodeConfig to use it and remove all traces of
      OpQueryNodeData and LUQueryNodeData.
      
      Reviewed-by: imsnah
      4a72cc75
  23. 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
  24. 08 Aug, 2007 1 commit
  25. 27 Jul, 2007 1 commit
    • Iustin Pop's avatar
      Move the cluster name from ConfigWriter to SimpleStore. · 5fcdc80d
      Iustin Pop authored
      Reason: if left ConfigWriter, nodes don't know to which cluster they belong.
      This will bite us later when we'll revisit node join operation.
      
      Cons: we lose the cluster name from the config file, which means a
      standalone "cluster.data" is a little bit harder to analyze. But I have
      a plan for this which will follow shortly.
      
      Implementing this will also allow us to cleanly fix "gnt-cluster
      getmaster".
      
      Reviewed-by: imsnah
      5fcdc80d
  26. 26 Jul, 2007 1 commit
  27. 24 Jul, 2007 1 commit
  28. 23 Jul, 2007 1 commit
    • Iustin Pop's avatar
      Big change/cleanup in relation to the master startup: · 880478f8
      Iustin Pop authored
        - move the master node name from the ConfigWriter to SimpleStore (all
          nodes need this, and it was the only thing pulled in from the
          ConfigWriter on nodes)
        - fix mcpu.py and the testing w.r.t. this change; for testing, rename
          the fake_config.py to mocks.py and add a FakeSStore object
        - then add a ganeti-master script which can be run on any node at boot
          and which will not do anything if not master on start (on stop it
          will still try to remove the ip address)
        - also add a new cluster-wide variable (master_netdev) that determines
          on which interface we add this ip address; it's customizable at
          cluster init time
        - also remove the cluster name file which was separately handled from
          ssconf (not needed anymore)
        - remove the master init.d links from the list of config files as this
          is not our responsibility now
      
      880478f8
  29. 16 Jul, 2007 1 commit