• 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
qa_cluster.py 10.3 KB