1. 20 Jan, 2011 1 commit
  2. 18 Jan, 2011 1 commit
  3. 12 Jan, 2011 3 commits
    • Iustin Pop's avatar
      Run pylint over QA code too · 3582eef6
      Iustin Pop authored
      
      
      Right now, the QA code is not covered by pylint, and this shows at
      least one low-impact bug.
      
      This patch does the necessary changes to make QA pylint-clean, and the
      changes the makefile to run pylint for it.
      
      Notable changes:
      
      - qa_utils.GenericQueryTest: randfields was not used at all, and my
        belief is that it was indented to be used in order not to modify the
        input list; so I replaced randfields with fields, so we only shuffle
        the our local copy
      - qa_node.TestOutOfBand was using it's own copy of AcquireNode(), so I
        replaced it with the existing version
      - qa_os: was using 'dir' in a couple of places, replaced with dirname
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      3582eef6
    • Iustin Pop's avatar
      QA: use a persistent SSH connection to the master · f7e6f3c8
      Iustin Pop authored
      
      
      The recent additions to QA (many more tests) make QA slow if the
      machine on which the QA runs is not very close to the tested nodes —
      or in general, when the SSH handhaske is costly.
      
      We discussed before about using a persistent connection, and here is
      the patch that implements it. On a very small QA (very very small), it
      cuts down a lot of time (almost half), so it should be useful even for
      a full QA.
      
      I've also thought about changing from external ssh to paramiko, but I
      estimated that it would be more work to correctly interleave the IO
      from the remote process than just running a background SSH.
      
      Also note that yes, the global dict is ugly, but I don't know of
      another simple way to implement this.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      f7e6f3c8
    • Iustin Pop's avatar
      QA: Fix duplicated OOB tests · 69df9d2b
      Iustin Pop authored
      Patch f55312bd
      
       added the OOB tests to TestClusterVerify, which is not
      actually a test for cluster verify, but a runner for cluster verify
      that is called multiple times, for each instance type, etc. This led
      to running the OOB commands multiple times, which is painful
      especially as this is a slow test.
      
      The patch moves this to a separate test, that is run only once.
      
      Furthermore, the way that data files are copied around is very
      inefficient: touch + mv + chmod + mv + rm for each node (5 times
      number of nodes), whereas it could be simply: touch on master, chmod
      on master, cluster copyfile, chmod on master, cluster copyfile,
      cluster command rm, i.e. only 5 fixed ssh calls to the master. The
      code is changed as such, for increased speed.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      69df9d2b
  4. 10 Jan, 2011 2 commits
  5. 06 Jan, 2011 2 commits
  6. 05 Jan, 2011 1 commit
  7. 04 Jan, 2011 1 commit
  8. 21 Dec, 2010 1 commit
  9. 20 Dec, 2010 1 commit
  10. 17 Dec, 2010 3 commits
  11. 16 Dec, 2010 2 commits
  12. 14 Dec, 2010 1 commit
  13. 13 Dec, 2010 2 commits
  14. 10 Dec, 2010 1 commit
  15. 09 Dec, 2010 2 commits
  16. 08 Dec, 2010 2 commits
  17. 02 Dec, 2010 1 commit
    • Dmitry Chernyak's avatar
      Make rpc.call_lv_list() VG-aware · 84d7e26b
      Dmitry Chernyak authored
      
      
      Changes to backend.GetVolumeList():
      - now accepts a list of VGs instead of one VG
      - returns LV names in the form "vg_name/lv_name"
      
      Corresponding changes are done in: VerifyDisks, VerifyNode,
      LUCreateInstance (for both disk creation and adoption cases)
      
      Now the syntax
      "gnt-instance add ... --disk N:adopt=LV_NAME,vg=VG_NAME"
      as was described earlier in the man page works.
      Signed-off-by: default avatarDmitry Chernyak <dmi.chernyak@gmail.com>
      [iustin@google.com: QA changes for reserved LVs, style fixes and a few
       extra error checks, reviewed by hansmi/rn]
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      84d7e26b
  18. 01 Dec, 2010 1 commit
  19. 30 Nov, 2010 1 commit
    • Iustin Pop's avatar
      Further cleanups on QA · 7d88f255
      Iustin Pop authored
      
      
      This is more of an RFC. The patch attempts to address two issues:
      
      - running conditional tests is ugly right now
      - we don't know what tests we skipped
      
      By using the new RunTestIf, we solve both. But a significant number of
      test decisions are more complex than just “is test enabled”, so those
      remain to be run via RunTest, which means we don't get logging of when
      they're not run. Hence the logging is not complete… Sugesstions on how
      to solve it are welcome.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      7d88f255
  20. 29 Nov, 2010 2 commits
    • Michael Hanselmann's avatar
      QA: Fix upload of RAPI users file · 49ceab21
      Michael Hanselmann authored
      
      
      After moving the users file to a directory, we must ensure the
      directory exists.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      49ceab21
    • Iustin Pop's avatar
      Simplify QA commands · 2f4b4f78
      Iustin Pop authored
      
      
      Currently, 95% of the QA commands are executed in the same way: on the
      master, based on a command list and with expectancies for succes:
      
          AssertEqual(StartSSH(master['primary'],
                               utils.ShellQuoteArgs(cmd)).wait(), 0)
      
      The rest 5% are variations on this theme (maybe the command needs to
      fail, or the node is different, etc.). Based on this, we can simplify
      the code significantly if we abstract the common theme into a new
      AssertCommand() function. This saves ~250 lines of code in the QA suite,
      around 8% of the entire QA code size.
      
      Additionally, the output was very cryptic before (the famous "QA error:
      1 != 0" messages), whereas now we show a clear error message (node,
      command, exit code and failure mode).
      
      The patch replaces single quotes with double quotes in all the parts of
      the code that I touch; let me know if that's not OK…
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      2f4b4f78
  21. 18 Nov, 2010 1 commit
  22. 17 Nov, 2010 1 commit
  23. 03 Nov, 2010 1 commit
  24. 01 Nov, 2010 2 commits
  25. 28 Oct, 2010 2 commits
  26. 25 Oct, 2010 1 commit
  27. 20 Oct, 2010 1 commit