1. 10 Oct, 2008 11 commits
    • Michael Hanselmann's avatar
      Mark call_node_leave_cluster as a static method · 15396f60
      Michael Hanselmann authored
      Reviewed-by: iustinp
      15396f60
    • Guido Trotter's avatar
      OS API: support for multiple versions in an OS · 082a7f91
      Guido Trotter authored
      Allow multiple api versions in an OS. This is according to the OS API
      changes design doc, by which an OS can support multiple versions of the
      Ganeti API and if one is supported by Ganeti it will work. Since up to
      version 5 of the API mandates an OS could support only one version, this
      change is retrocompatible with it and requires no version bump up.
      
      Reviewed-by: iustinp
      082a7f91
    • Guido Trotter's avatar
      LUVerifyCluster: fix error from rpc call · 2eb78bc8
      Guido Trotter authored
      When calling node_verify leads to an error _VerifyNodes tries to iterate
      over a non-sequence. Catch the error before and avoid this from
      happening.
      
      Reviewed-by: iustinp
      2eb78bc8
    • Michael Hanselmann's avatar
      Convert ganeti-noded to new HTTP server class · cc28af80
      Michael Hanselmann authored
      Reviewed-by: iustinp
      cc28af80
    • Michael Hanselmann's avatar
      Add new HTTP server implementation · 42242313
      Michael Hanselmann authored
      This patch adds another implementation of an HTTP server. It's
      based on code of Python's BaseHTTPServer, from both version
      2.4 and 3k. In the future we can write code to decide whether
      we should fork for a request or not. Keep-alive is not supported.
      
      Reviewed-by: iustinp
      42242313
    • Michael Hanselmann's avatar
      Add daemon library with mainloop · 821d9e43
      Michael Hanselmann authored
      This mainloop can be used in daemons like ganeti-noded.
      
      Reviewed-by: iustinp
      821d9e43
    • Iustin Pop's avatar
      Some updates on the job queue design doc · e9f242e4
      Iustin Pop authored
      This clarifies the job storage and the reason for choosing it.
      
      Reviewed-by: imsnah
      e9f242e4
    • René Nussbaumer's avatar
      Update design-2.0-job-queue to reflect changes · 93c4f7f1
      René Nussbaumer authored
      With change 1773 a new status WAITLOCK was introduced if a job/opcode is
      waiting for a lock. This change updates the document about the job-queue
      accordingly.
      
      Reviewed-by: iustinp
      93c4f7f1
    • Iustin Pop's avatar
      Convert rpc module to RpcRunner · 72737a7f
      Iustin Pop authored
      This big patch changes the call model used in internode-rpc from
      standalong function calls in the rpc module to via a RpcRunner class,
      that holds all the methods. This can be used in the future to enable
      smarter processing in the RPC layer itself (some quick examples are not
      setting the DiskID from cmdlib code, but only once in each rpc call,
      etc.).
      
      There are a few RPC calls that are made outside of the LU code, and
      these calls are left as staticmethods, so they can be used without a
      class instance (which requires a ConfigWriter instance).
      
      Reviewed-by: imsnah
      72737a7f
    • 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
      b9bddb6b
    • Iustin Pop's avatar
      Small random fixes · 7b3a8fb5
      Iustin Pop authored
      Indentation in bootstrap was wrong and some names in cmdlib.py were not
      right.
      
      Reviewed-by: imsnah
      7b3a8fb5
  2. 09 Oct, 2008 1 commit
  3. 08 Oct, 2008 8 commits
    • Alexander Schreiber's avatar
      Update documentation & man pages for changed hypervisor names. · c2b05d85
      Alexander Schreiber authored
      Reviewed-by: imsnah
      
      c2b05d85
    • Oleksiy Mishchenko's avatar
      Ajust config unittest. · c666722f
      Oleksiy Mishchenko authored
      Reviewed-by: iustinp
      c666722f
    • Alexander Schreiber's avatar
      Update scripts and qa config for changed hypervisor names. · e49099a4
      Alexander Schreiber authored
      Reviewed-by: ultrotter
      
      e49099a4
    • Alexander Schreiber's avatar
      Shorten variable names. · c63b161a
      Alexander Schreiber authored
      Reviewed-by: iustinp
      
      c63b161a
    • 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
      00cd937c
    • Iustin Pop's avatar
      Also export OS_API to the OS scripts · 188fbf41
      Iustin Pop authored
      The idea is that if the OSes will support multiple version (e.g. both
      1.2 and 2.0), then Ganeti should be able to talk to it using version
      2.0, but then the script needs to be told nicely what version Ganeti is
      using.
      
      Reviewed-by: imsnah
      188fbf41
    • Oleksiy Mishchenko's avatar
      Fix for gnt-cluster init. · 02f99608
      Oleksiy Mishchenko authored
      Reviewed-by: iustinp
      02f99608
    • 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
      types.
      
      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
      e69d05fd
  4. 07 Oct, 2008 12 commits
  5. 06 Oct, 2008 8 commits
    • Iustin Pop's avatar
      Implement job auto-archiving · 07cd723a
      Iustin Pop authored
      This patch adds a new luxi call that implements auto-archiving of jobs
      older than a certain age (or -1 for all completed jobs), and the gnt-job
      command that makes use of this (with 'all' for -1).
      
      Reviewed-by: imsnah
      07cd723a
    • Iustin Pop's avatar
      Add a simple timespec parsing function · 2241e2b9
      Iustin Pop authored
      This function will be used for auto-archiving jobs via the command line.
      The function is pretty simple, we only support up to weeks since months
      and higher are not 'precise' entities, and dealing with them would
      require us to start using calendar functions.
      
      Reviewed-by: imsnah
      2241e2b9
    • 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
      62c9ec92
    • Iustin Pop's avatar
      Disable re-reading of config file · 3d3a04bc
      Iustin Pop authored
      Since the objects read from the config file are passed to the various
      threads, it's unsafe to re-read the config file (and throw away
      ConfigWriter._config_data). As such, we disable the re-reading of the
      file (since now the master is the owner the file, it makes not sense to
      re-read it), and any modifications to the file must be done offline,
      otherwise they will be overwritten.
      
      Reviewed-by: imsnah
      3d3a04bc
    • Oleksiy Mishchenko's avatar
      RAPI Desing Doc · a72b3711
      Oleksiy Mishchenko authored
      Reviewed-by: iustinp
      a72b3711
    • Iustin Pop's avatar
      Start implementation of parallel burnin · ec5c88dc
      Iustin Pop authored
      This patch introduces a simple framework for executing jobs in parallel
      in burnin (the ExecJobSet function) and the "--parallel" command line
      flag.
      
      The patch also changes the instance creation to run in parallel when the
      above flag is given. Error handling/instance removal is currently flacky
      with this options if there are errors in the instance creation.
      
      We also modify burnin to reuse a single client.
      
      Reviewed-by: imsnah
      ec5c88dc
    • Iustin Pop's avatar
      Fix gnt-job list with empty timestamps · e0ec0ff6
      Iustin Pop authored
      In case the job object doesn't have a timestamp (which is a separate
      issue), the listing should not break. We fix this by changing the
      FormatTimstamp function itself to return '?' in case the timestamp
      doesn't look good (note that it still can break if non-integers are
      returned, but this is unlikely).
      
      Reviewed-by: imsnah
      e0ec0ff6
    • Iustin Pop's avatar
      Increase the number of threads to 25 · 1daae384
      Iustin Pop authored
      Since our locks are not gathered nicely, we can have jobs that are
      actually blocking on locks (parallel burnin shows this), so at least we
      need to increase the number of threads above the usual number of jobs we
      could have in a such a case.
      
      Reviewed-by: imsnah
      1daae384