Skip to content
Snippets Groups Projects
  1. May 25, 2009
    • Iustin Pop's avatar
      rapi: rework error handling · 59b4eeef
      Iustin Pop authored
      
      Currently the rapi code doesn't have any custom error handling; any
      exceptions raised are simply converted into an HTTP 500 error, without
      much explanation.
      
      This patch adds a couple of generic SubmitJob/GetClient functions that
      handle some errors specially so that they are transformed into HTTP
      errors, with more detailed information.
      
      With this patch, the behaviour of rapi when the queue is full or
      drained, or when the master is down is more readable.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      59b4eeef
    • Iustin Pop's avatar
      Fix backend.OSEnvironment be/hv parameters · 030b218a
      Iustin Pop authored
      
      Commit 67fc3042 added some more
      variables to be exported to OSEnvironment, but it has two bugs:
        - wrong variable name (env vs. result)
        - in OSEnvironment we don't have the automatic converstion to strings
          that we do in hooks, so we must manually enforce this
      
      With this patch instance creations work again.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      030b218a
    • Iustin Pop's avatar
      rapi: make tags query not use jobs · 25e39bfa
      Iustin Pop authored
      
      Currently the rapi tags query implementation is similar to the command
      line one: it submits OpGetTags jobs. This not good, since this being an
      API it can be used a lot and can pollute the job queue with many such
      trivial jobs.
      
      This patch converts it to use either queries (for nodes/instances) or
      direct read from ssconf (for the cluster case). For ssconf, we added a
      function to the ssconf.SimpleStore class for reading the tags.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      25e39bfa
  2. May 21, 2009
    • Iustin Pop's avatar
      Change failover instance when instance is stopped · d27776f0
      Iustin Pop authored
      
      Currently, if the instance is stopped, we still check for enough memory
      on the target node. This is a little bit too strict, since in case too
      many nodes have failed and one is out of the memory, this prevents
      fixing the cluster (with the instances down).
      
      We change it to do the memory checks only when the instance will be
      started.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      d27776f0
    • Iustin Pop's avatar
      Export more instance information in hooks · 67fc3042
      Iustin Pop authored
      
      Currently we miss in hooks the instance's hypervisor, hypervisor
      parameters and backend parameters. This forces hooks to query back into
      ganeti, which is dangerous due to possible luxi sockets exhaustion.
      
      This patch adds these three as INSTANCE_HYPERVISOR, INSTANCE_HV_*,
      INSTANCE_BE_*. The hook environment prefixes all keys with “GANETI”, so
      a default settings for a xen-pvm instance would be:
      
        GANETI_INSTANCE_HV_initrd_path=
        GANETI_INSTANCE_HV_kernel_args=ro
        GANETI_INSTANCE_HV_kernel_path=/boot/vmlinuz-2.6-xenU
        GANETI_INSTANCE_HV_root_path=/dev/sda1
      
      Any dashes in parameter names are changed to underscores, since
      variables with dashes are not easy to access from the shell
      (alternatively we could deny those via an unittest for constants.py).
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      67fc3042
  3. May 20, 2009
  4. May 19, 2009
    • Iustin Pop's avatar
      Fix the SafeEncoding behaviour · d392fa34
      Iustin Pop authored
      
      Currently we have bad behaviour in SafeEncode:
        - binary strings are actually not handled correctly (ahem)
        - the encoding is not stable, due to use of string_escape
      
      For this reason, we replace the use of string_escape with part of the
      code of string escape (PyString_Repr in Objects/stringobject.c); we
      don't escape backslashes or single quotes, since that is that makes it
      nonstable. Furthermore, we only use the encode('ascii', ...) for unicode
      inputs.
      
      The patch also adds unittests for the function that test basic
      behaviour.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      d392fa34
    • Iustin Pop's avatar
      Move more hypervisor strings into constants · 835528af
      Iustin Pop authored
      
      This patch adds constants for the mouse and boot order strings; while
      there are still some issues remaining, we're trying to cleanup hardcoded
      strings from the hypervisors.
      
      Since the formatting of frozensets is currently wrong, we also add an
      utility function for this and change all the error messages to use it.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      835528af
    • Iustin Pop's avatar
      watcher: try to restart the master if down · 7dfb83c2
      Iustin Pop authored
      
      Bugs in either our code or in associated libraries can bring the master daemon
      down, and this (due to the 2.0 architecture) stops all work on the cluster.
      
      Since the watcher already does periodic checks on the cluster, we modify
      it to try to start the master automatically in case of failures to
      connect. This will be tried only once per cycle.
      
      Also, in this case, we modify the code so that the watcher status file
      is not updated - its timestamp will reflect thus the time of last
      successful connection to the master.
      
      Side note: the except errors.ConfigurationError part could be cleaned
      up, since in 2.0 we don't usually get that directly, and if we do it's
      an error and we shouldn't touch the file anyway; but that is not a rc5
      change.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      7dfb83c2
    • Iustin Pop's avatar
      IAllocator: export total disk size for instances · 88ae4f85
      Iustin Pop authored
      
      This patch adds for current instance a ‘disk_space_total’ key, similar
      to the key for the new instance in case of new allocations.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      88ae4f85
    • Iustin Pop's avatar
      Add -H/-B startup parameters to gnt-instance · d04aaa2f
      Iustin Pop authored
      
      This patch modifies the start instance script, opcode and logical unit
      to support temporary startup parameters.
      
      Different from 1.2, where only the kernel arguments were supporting
      changes (and thus xen-pvm specific), this version supports changing all
      hypervisor and backend parameters (with appropriate checks).
      
      This is much more flexible, and allows for example:
        - start with different, temporary kernel
        - start with different memory size
      
      Note: in later versions, this should be extended to cover disk
      parameters as well (e.g. start with drbd without flushes, start with
      drbd in async mode, etc.).
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      d04aaa2f
    • Iustin Pop's avatar
      call_instance_start: add optional hv/be parameters · 0eca8e0c
      Iustin Pop authored
      
      This patch modifies the rpc.call_instance_start - the master side - to
      take optional hv/be parameters. The noded side is unchanged and
      oblivious to the change.
      
      This will allow implementation of single-user capability and such on
      startup (temporary, as opposed to permanent).
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      0eca8e0c
  5. May 18, 2009
  6. May 15, 2009
  7. May 13, 2009
  8. May 12, 2009
  9. May 11, 2009
  10. May 09, 2009
  11. May 07, 2009
  12. May 06, 2009
  13. May 05, 2009
Loading