1. 04 Apr, 2008 1 commit
    • Iustin Pop's avatar
      Move the daemonize function to utils.py · 8f765069
      Iustin Pop authored
      Currently, in ganeti-noded we have the createDaemon function. Since
      we'll need the same in other daemons, we move this function to utils.py
      
      With the move, a few changes were also done:
        - change the name to Daemonize()
        - add a parameter, logfile, as different daemons will want to log to
          different files
        - remove the try.. except.. around the fork calls, since they were
          only re-raising the OS exception with less data; unless we want to
          actually handle fork error (not just re-raising), these try blocks
          are not useful
        - change the return style at the end of the function
      
      Reviewed-by: imsnah
      8f765069
  2. 02 Apr, 2008 8 commits
    • Guido Trotter's avatar
      Improve disk consistency error message again · aa9d0c32
      Guido Trotter authored
      This new version includes all the possible failure options.
      
      Reviewed-by: iustinp
      
      aa9d0c32
    • Guido Trotter's avatar
      Fix misleading error message when checking disks · ad6d3f7d
      Guido Trotter authored
      _CheckDiskConsistency outputs "Can't get any data from node NODE" when no drbd
      is found on the target node. This causes a misleading error message to be
      output for example on failover (when the primary node is down, or the instance
      is not running), stating that no data could be got from the secondary node,
      which scares the user and misleads him. Changing this to "Disk degraded or not
      found on node %s" still reports that something is missing, but on the other
      hand doesn't make the user think the node is down, or has no data at all...
      
      Reviewed-by: imsnah
      
      ad6d3f7d
    • Guido Trotter's avatar
      Handle better failing over non-running instances · a0aaa0d0
      Guido Trotter authored
      Right now if you try to failover an instance which is not marked as up the
      operation will fail unless you pass the --ignore-consistency flag because the
      disks won't be considered to be consistent. Allow them to be if we know the
      instance shouldn't be up.
      
      Reviewed-by: imsnah
      
      a0aaa0d0
    • Guido Trotter's avatar
      Improve export and fix export-on-norun bug · fb300fb7
      Guido Trotter authored
      Currently gnt-backup export chains the ShutdownInstance and StartupInstance
      opcodes to itself. This works but (a) it's suboptimal, because there's no need
      to deactivate the instance's disks as we are about to restart it anyway, and
      (b) doesn't take care of instances which are already down (and should be). This
      patch takes care of this by just calling the shutdown rpc function instead of
      the whole opcode, and just starting up the instance if it's configured as up in
      the first place.
      
      Reviewed-by: imsnah
      
      fb300fb7
    • Michael Hanselmann's avatar
      Forcibly convert export data to str object · 2d3e73c4
      Michael Hanselmann authored
      ConfigParser.SafeConfigParser doesn't support unicode string objects.
      Unicode string objects are returned by simplejson.
      
      Reviewed-by: iustinp
      2d3e73c4
    • Guido Trotter's avatar
      failover: only start instance if we should · 12a0cfbe
      Guido Trotter authored
      gnt-instance failover on an instance marked as down will mistakenly bring it
      up. The watcher will then shut it down again, but it's a lot better (and safer)
      not to start it at all.
      
      Reviewed-by: imsnah
      12a0cfbe
    • Guido Trotter's avatar
      Locking: fix one indentation error (codestyle) · c5cc3403
      Guido Trotter authored
      Reviewed-by: imsnah
      c5cc3403
    • Guido Trotter's avatar
      Locking: fix superlong lines (codestyle) · 4e07ec8c
      Guido Trotter authored
      Reviewed-by: imsnah
      4e07ec8c
  3. 01 Apr, 2008 7 commits
    • Michael Hanselmann's avatar
      Check whether path is valid before accessing it · 1d544ba3
      Michael Hanselmann authored
      Reviewed-by: ultrotter
      1d544ba3
    • Iustin Pop's avatar
      Initial tests with ganeti-masterd · ffeffa1d
      Iustin Pop authored
      This patch adds a very in-progress master daemon. This needs to be
      launched manually, does not background itself, but can be used for
      opcode execution.
      
      Also parts of this code should be moved to luxi.py.
      
      Reviewed-by: ultrotter
      ffeffa1d
    • Guido Trotter's avatar
      Fix gnt-instance failover help message · 99e2be3b
      Guido Trotter authored
      The message used to misleadingly say that failover just works with remote_raid1
      instances, while of course it works for drbd as well. Since remote_raid1 has
      been removed from the main development branch only drbd will be shown.  Thanks
      to Jesus Climent who spotted the bug.
      
      Reviewed-by: imsnah
      99e2be3b
    • Iustin Pop's avatar
      Add a gnt-debug tool · fd3ee040
      Iustin Pop authored
      This patch adds a script which submits a job consisting of the
      OpTestDelay opcode. This can be helpful for debugging and can be
      extended to execute other 'debug'-like tasks.
      
      Reviewed-by: ultrotter
      fd3ee040
    • Iustin Pop's avatar
      Add submit function to lib/cli.py · ceab32dd
      Iustin Pop authored
      This patch adds function that submit jobs or queries over the unix socket
      interface to lib/cli.py. The will be used by the scripts instead of the
      SubmitOpCode function.
      
      Reviewed-by: ultrotter
      ceab32dd
    • Iustin Pop's avatar
      A dumb queue implementation · 498ae1cc
      Iustin Pop authored
      This patch adds a very dumb in-memory only queue implementation.
      
      Reviewed-by: imsnah
      498ae1cc
    • Iustin Pop's avatar
      Initial implementation of the client unix socket · c2a03789
      Iustin Pop authored
      This patch adds an initial implementation of the client-side of the unix
      socket interface. The code is not yet used by other parts of ganeti.
      
      Reviewed-by: imsnah
      c2a03789
  4. 31 Mar, 2008 11 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. 27 Mar, 2008 5 commits
  7. 25 Mar, 2008 4 commits
  8. 20 Mar, 2008 2 commits
    • Manuel Franceschini's avatar
      Modify cluster-init to create file-storage-dir · 2872a949
      Manuel Franceschini authored
      This patch adds three things:
      - it normalizes the file storage directory path passed to gnt-cluster init
      - if the file-storage-path doesn't exist on the master node, ganeti
        tries to create it
      - adds additional check if the passed file-storage-dir is not a directory
      
      Reviewed-by: iustinp
      2872a949
    • Iustin Pop's avatar
      Remove some deprecated code in bdev.py · 39e9e213
      Iustin Pop authored
      The BlockDev.GetStatus() method and some associated constants were never
      used in the rest of the code. This patch removes them.
      
      Reviewed-by: imsnah
      39e9e213
  9. 19 Mar, 2008 1 commit
    • Iustin Pop's avatar
      Change the opcode hierarchy and implementation · df458e0b
      Iustin Pop authored
      This patch adds a new top-level class (BaseJO) that is used for both
      opcodes and a new Job class.
      
      This new class and the related changes to the OpCode abstract class are
      used to implement simple to-dict/from-dict transformations, so that we
      can easily serialize the classes using json.
      
      Reviewed-by: imsnah
      df458e0b