1. 15 Apr, 2008 5 commits
  2. 11 Apr, 2008 1 commit
  3. 10 Apr, 2008 20 commits
    • Guido Trotter's avatar
      Verify: make skipping checks possible · e54c4c5e
      Guido Trotter authored
      Add a general way to skip some checks at cluster-verify time and make the N+1
      memory redundancy check optional.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: add N+1 Memory redundancy verification · 2b3b6ddd
      Guido Trotter authored
      For every node we check that we can host all the instances it's currently
      secondary for belonging to the same primary. This ensures that if a node fails
      all its instances can fit on their secondary node. The code only works when
      failover is forced to go to the secondary node, and cannot go to an arbitrary
      node in the cluster, which is the case in Ganeti 1.2.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: save instance config · 26b6af5e
      Guido Trotter authored
      Save the instance config after we queried it in an instance_cfg dict.  This can
      be used later by any function that wants it, without reloading it from the
      configuration module. It will be used for N+1 memory resilience checking.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: add more instance information to node_info · 36e7da50
      Guido Trotter authored
      The sisnt-by-pnode field contains all secondary instances of a node, grouped by
      their primary node. This information allows us to see quickly if when a node
      dies some of its instances cannot be started on their secondary node.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: add instance information to node_info · 93e4c50b
      Guido Trotter authored
      With this patch node_info is changed to store information about which primary
      and secondary instances are configured on a node. This information is useful to
      check memory and disk allocation. A list of non-redundant instances is also
      collected at this stage.
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: Add and populate node_info dict · 9c9c7d30
      Guido Trotter authored
      During information gathering we collect information from call_node_info, and
      then when we cycle trough the nodes add it into a node_info dict containing a
      node's free memory and disk. This will be useful later to verify that the
      cluster is N+1 redundant. The disk space is saved as well because it can be
      useful for checks about disk space redundancy.
      Reviewed-by: iustinp
    • Iustin Pop's avatar
      Rework the results of OpDiagnoseOS opcode · 1f9430d6
      Iustin Pop authored
      Currently, the opcode DiagnoseOS is the only opcode that return a
      structure of objects.OS (which is a custom class, and not a simple
      python object) and furthermore all the processing of OS validity across
      nodes is left to the clients of this opcode.
      It would be more logical to have this opcode be similar to list
      instances/nodes, in the sense that:
        - it should return a table of results
        - the fields in the table should be selectable
      This patch does the above. The possible fields are:
        - name (os name)
        - valid (bool representing validity across all nodes)
        - node_status, which is a complicated structure required for ‘gnt-os
      With this patch, gnt-os list becomes a very simple iteration over the
      list of results, filtering out non-valid ones. gnt-os diagnose is still
      complicated, but no more than before.
      The burnin tool has also been modified to work with the modified
      results, and is simpler because of this (it only needs to know if an OS
      is valid or not, not the per-node details).
      Reviewed-by: imsnah
    • Iustin Pop's avatar
      Add generic opcode submit functionality to gnt-debug · f1c66d13
      Iustin Pop authored
      This patch enhances gnt-debug to be able to submit any opcodes. The
      opcodes are input from a json file containing a list of opcodes.
      This allows enhanced testing of opcodes until the other gnt-* commands
      are converted to use the master daemon.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Change client protocol to raise exception on failures · b77acb3e
      Iustin Pop authored
      Currently the luxi.client.SubmitJob and Query methods return the unserialized
      result without processing it at all. This patch changes this by adding a
      'RequestException' error that is raised if the query itself or the
      submission of the job failed, and (if not) returning only the 'result'
      field from the message.
      The patch also does processing on the result of a query if we queried
      for jobs, as the 'op_list' field in the result has serialized opcodes
      and we need the de-serialized.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Add per-opcode results to job processing · 35049ff2
      Iustin Pop authored
      This patch changes the definition of a job and introduces per-opcode
      First, the result and status fields of a job are condensed into a single
      'status' attribute. Then, we introduce an opcode status and one result
      list, that allow jobs to return values.
      The gnt-job script is also modified to allow these new fields to be
      Note that the patch changes the opcode field to op_list, and it changes
      its return value from string to a list of (serialized) opcodes.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Move the OS search code into an abstract function · 57c177af
      Iustin Pop authored
      Based on the previous OS search code changes, we can now move the OS
      search code into a generic look-for-file function in utils.py. This
      means that the allocator code can use the same function.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Change backend._OSSearch return values · c34c0cfd
      Iustin Pop authored
      Currently, the function backend._OSSearch() returns the (first) base dir
      in which this OS can be found. Thereafter the full actual path to the OS
      dir is built in the backend.OSFromDisk() function.
      This patch changes this so that _OSSearch() always returns the full path
      to the OS directory, and OSFromDisk uses that as returned (it will only
      build it if it gets a base dir in the first place).
      This patch is needed before we can abstract the _OSSearch into a generic
      'look for file object' functionality that can be used for allocator
      plugins search too.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Fix example scripts build dependencies · 3cdef069
      Iustin Pop authored
      Currently, the example scripts (the init.d and the cron script) do not
      depend on the Makefile, so if configure is rerun with different
      parameters these scripts are not rebuild.
      The patch adds Makefile as a dependency so changes to installation paths
      or other parameters trigger the rebuild.
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Verify: remove useless check in _VerifyInstance · ceb76b36
      Guido Trotter authored
      The list of instances passed to _VerifyInstance is the one coming from
      self.cfg.GetInstanceList(). So there's no point, inside that function, in
      checking whether the current instance is a member of that list. Moreover
      orphaned instance verification is already done in a separate step.
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Verify: instance verification cleanup · c5705f58
      Guido Trotter authored
      The instance configuration is grabbed both in the _VerifyInstance function and
      in the loop that calls it. Clean this up by passing the configuration as a
      Reviewed-by: imsnah
    • Guido Trotter's avatar
      Verify: fix crash when a node is down · a872dae6
      Guido Trotter authored
      Currently if ganeti-noded doesn't respond on a node gnt-cluster verify will die
      when verifying primary instances for that node. Fix this by just emitting an
      error message if no information about running instances is returned from the
      Reviewed-by: iustinp
    • Guido Trotter's avatar
      Verify: fix ERROR message indentation · c840ae6f
      Guido Trotter authored
      All ERROR messages in cluster verify are indented by four spaces, this one is
      indented by two. Fixing this skew.
      Reviewed-by: imsnah, iustinp
    • Guido Trotter's avatar
      Fix spelling mistake in constants.py · 2f6eebee
      Guido Trotter authored
      Of course instance creation don't have any modem, and the comment was just
      talking about modes. Sorry to everybody expecting whistles.
      Reviewed-by: imsnah
    • Manuel Franceschini's avatar
      Add lvm storage option to gnt-cluster man page · 11c05c42
      Manuel Franceschini authored
      This patch adds the previously introduced lvm storage toggling
      info to the gnt-cluster man page. It adds some info the the
      gnt-cluster init -g option and adds the gnt-cluster modify command.
      Reviewed-by: iustinp
    • Manuel Franceschini's avatar
      Small code style fix · 16687b98
      Manuel Franceschini authored
      Reviewed-by: imsnah
  4. 09 Apr, 2008 1 commit
  5. 08 Apr, 2008 11 commits
  6. 07 Apr, 2008 2 commits
    • Iustin Pop's avatar
      Implement selective job query · 283439c9
      Iustin Pop authored
      This patch implements query-ing of only selected jobs instead of all.
      Reviewed-by: ultrotter
    • Iustin Pop's avatar
      Move some checks from cli.py to luxi.py · a14a17fc
      Iustin Pop authored
      The idea of cli.py and luxi.py is that all protocol checks should be in
      luxi, and cli.py should just offer some helpful shortcuts for the
      command line scripts.
      This patch removes the result checks from cli and adds some other checks
      to luxi. It does no longer check the success/failure since it's not yet
      clear how that should be handled - probably exceptions.
      Reviewed-by: ultrotter