1. 18 Aug, 2008 13 commits
    • 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
      A few more locking unit tests · d4f6a91c
      Guido Trotter authored
      A few more tests written while bug-hunting. One of them shows a real
      issue, at last. :)
      
      Reviewed-by: imsnah
      d4f6a91c
    • Guido Trotter's avatar
      Add lock-all-through-GLM unit test · 90c942d1
      Guido Trotter authored
      I was hunting for a bug in my code and thought the culprit was in the
      locking library, so I added a test to check. Unfortunately turns out it
      wasn't. :( Committing the test anyway, while still trying to figure out
      what's wrong...
      
      Reviewed-by: imsnah
      90c942d1
    • 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
      QA: Convert configuration from YAML to JSON · 8c4a9a74
      Michael Hanselmann authored
      We no longer use YAML in Ganeti at all. This patch converts the QA
      configuration from YAML to JSON. JSON doesn't support comments and
      I had to use a hack with fields starting with '#'.
      
      Reviewed-by: ultrotter
      8c4a9a74
    • 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
    • Michael Hanselmann's avatar
      QA: Try to run more scripts with --version · fc28c086
      Michael Hanselmann authored
      This patch also sorts the list.
      
      Reviewed-by: schreiberal
      fc28c086
    • Michael Hanselmann's avatar
      QA: Always accept added node's SSH key · 28a90aff
      Michael Hanselmann authored
      Reviewed-by: ultrotter
      28a90aff
    • Michael Hanselmann's avatar
      QA: Do not upload known_hosts file anymore · a39ec11a
      Michael Hanselmann authored
      The cluster no longer keeps individual host's SSH key, but rather
      aliases all of them to the cluster name.
      
      Reviewed-by: ultrotter
      a39ec11a
    • Michael Hanselmann's avatar
      Copy qa_utils.AssertIn from 1.2 branch · eaef8a05
      Michael Hanselmann authored
      Apparently it was forgotten when import the remote API QA tests.
      
      Reviewed-by: schreiberal
      eaef8a05
  2. 15 Aug, 2008 6 commits
  3. 14 Aug, 2008 2 commits
    • 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. 13 Aug, 2008 8 commits
    • 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
      Allow kvm hypervisor in gnt-cluster init · 7a151789
      Guido Trotter authored
      Reviewed-by: imsnah
      7a151789
    • 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. 12 Aug, 2008 1 commit
  6. 11 Aug, 2008 4 commits
  7. 08 Aug, 2008 6 commits