Skip to content
Snippets Groups Projects
  1. Aug 18, 2008
    • Guido Trotter's avatar
      Parallelize LUQueryNodes · 35705d8f
      Guido Trotter authored
      As for LUQueryInstances the first version just acquires a shared lock on all
      nodes. In the future further optimizations are possible, as outlined by
      comments in the code.
      
      Reviewed-by: imsnah
      35705d8f
    • Guido Trotter's avatar
      Parallelize LUQueryInstances · 7eb9d8f7
      Guido Trotter authored
      This first version acquires a shared lock on all requested instances and
      their nodes. In the future it can be improved by acquiring less locks if
      no dynamic fields have been asked, and/or by locking just primary nodes.
      
      Reviewed-by: imsnah
      7eb9d8f7
    • Guido Trotter's avatar
      LockSet: allow lists with duplicate values · 34ca3914
      Guido Trotter authored
      If a list with a duplicate value is passed to a lockset what the code
      now does is to try to acquire the lock twice, generating a
      double-acquire exception in the SharedLock code. This is definitely an
      issue. In order to solve it we can either forbit double values in a list
      or just delete the duplicates. In this patch we go for the latter
      solution, removing any duplicate values when creating the acquire_list.
      
      Reviewed-by: imsnah
      34ca3914
    • Guido Trotter's avatar
      Processor: lock all levels even if one is missing · 8a2941c4
      Guido Trotter authored
      If a locking level wasn't specified locking used to stop. This means
      that if one, for example, didn't specify anything at the LEVEL_INSTANCE
      level, no locks at the LEVEL_NODE level were acquired either. With this
      patch we force _LockAndExecLU to be called for all existing levels, and
      break the recursion if the level doesn't exist in locking.LEVELS.
      
      Reviewed-by: imsnah
      8a2941c4
    • Guido Trotter's avatar
      LURebootInstance: move arg check in ExpandNames · 0fcc5db3
      Guido Trotter authored
      The check for the reboot type can be done without any locks held, so
      we'll move it to ExpandNames. Plus, we note in a FIXME that if the
      reboot type is not full, we can probably just lock the primary node, and
      leave the secondary unlocked.
      
      Reviewed-by: imsnah
      0fcc5db3
    • Michael Hanselmann's avatar
      LUVerifyCluster: Return boolean indication success · 34290825
      Michael Hanselmann authored
      Reviewed-by: schreiberal
      34290825
    • Michael Hanselmann's avatar
      Use Linux-specific way to name master socket · 9894ece7
      Michael Hanselmann authored
      By using this Linux-specific way we don't have to care about removing the
      socket file when quitting or starting (after an unclean shutdown). For a
      more detailed description, see the comment in the patch.
      
      Reviewed-by: schreiberal
      9894ece7
  2. Aug 15, 2008
  3. Aug 14, 2008
    • Guido Trotter's avatar
      Pass hypervisor type to the OS scripts · 4f0afaf5
      Guido Trotter authored
      It's handy to make the os scripts know which hypervisor the instance is
      going to run under. In order not to change the os API we pass this
      information in the environment, where the os scripts can access it if
      they're hypervisor-aware.
      
      Reviewed-by: imsnah
      4f0afaf5
    • Guido Trotter's avatar
      RunCmd: add optional environment overriding · 2557ff82
      Guido Trotter authored
      If the user passes an env dict to RunCmd we'll override the environment
      passed to the to-be-executed command with the values in the dict. This
      allows us to pass arbitrary environment values to commands we run.
      
      Reviewed-by: imsnah 
      2557ff82
  4. Aug 13, 2008
    • Guido Trotter's avatar
      KVM Hypervisor Cleanup · d47d3d38
      Guido Trotter authored
      - Remove a few experiemental code lines left as comments
      - Rework first disks' boot=on addition, which was calculated twice
      - Remove an empty line
      - Remove reference to hvm_pae which doesn't apply to kvm
      
      Reviewed-by: imsnah
      d47d3d38
    • Guido Trotter's avatar
      Add KVM hypervisor code · eb58f9b1
      Guido Trotter authored
      ht_kvm.py contains the code for ganeti to work under kvm.
      This patch also modifies Makefile.am to ship that file, and
      lib/hypervisor/__init__.py to import it, and add kvm to the
      hypervisors map.
      
      Reviewed-by: imsnah
      eb58f9b1
    • Guido Trotter's avatar
      constants: add HT_KVM · 550e49b9
      Guido Trotter authored
      Add a new hypervisor type, HT_KVM, to constants, and register it in the
      HYPER_TYPES set.
      
      Reviewed-by: imsnah
      550e49b9
    • Guido Trotter's avatar
      Add --with-kvm-path configure option · 7e2c5b9e
      Guido Trotter authored
      This allows to configure a different path to the kvm binary. By default
      /usr/bin/kvm is used, which is the one found in debian and ubuntu.
      
      Reviewed-by: imsnah
      7e2c5b9e
    • Guido Trotter's avatar
      FakeHypervisor: fix a function signature · a5f723a2
      Guido Trotter authored
      StartInstance takes 'block_devices', not 'force' as its third argument.
      Even if this is not used in the fake hypervisor it's better to have the
      correct argument name to avoid confusion.
      
      Reviewed-by: imsnah
      a5f723a2
    • Guido Trotter's avatar
      Convert RunCmd to an epydoc docstring · e326d4e5
      Guido Trotter authored
      Reviewed-by: imsnah
      e326d4e5
    • Michael Hanselmann's avatar
      Fix adding pristine nodes · 51144e33
      Michael Hanselmann authored
      If a node hasn't been part of the cluster before being added it'll not
      have the cluster's SSH key. This patch makes sure to accept those by
      not aliasing the machine name to the cluster name.
      
      Reviewed-by: ultrotter
      51144e33
  5. Aug 12, 2008
  6. Aug 11, 2008
  7. Aug 08, 2008
  8. Aug 07, 2008
  9. Aug 06, 2008
    • Michael Hanselmann's avatar
      Implement {Add,Readd,Remove}Node in GanetiContext · d8470559
      Michael Hanselmann authored
      By doing this we've a central place which coordinates what needs to be
      done when adding or removing nodes. Another patch will add calls into
      the job queue.
      
      Two log messages move to config.py.
      
      When removing a node, node_leave_cluster is now called after it has
      been removed from the configuration and job manager. That way we're
      sure not to access the node again after files have been removed.
      
      Reviewed-by: iustinp
      d8470559
Loading