Big PanDA RPM Auto Smoke Test

Introduction

  • This page is evolving. Please keep checking.
  • This page contains information about automatic smoke tests for BigPanDAmon RPMs. The RPMs are created with the BigPanDARPMbuildSystem.
  • Feel free to contact JaroslavaSchovancova with questions.

QA smoke test suite

  • The QA smoke test suite is available on GitHub: https://github.com/PanDAWMS/panda-mon-qa/tree/master/pandamonqa
    • You can obtain it as
      # cd $WORKDIR
      # git clone https://github.com/PanDAWMS/panda-mon-qa.git
      
    • Please read the README file to navigate around configuration and execution.
  • There are several predefined smoke tests. For each of the tests a list of URLs to visit is predefined. Each developer is responsible for keeping this URL list updated.
  • We use the twill library to visit each URL, expecting page request to return the HTTP status code 200 OK.
  • When HTTP status code is 200 OK, we proceed to dig for a pre-defined string in the page code using the BeautifulSoup library. The predefined string is either pure string, or a regular expression. It can be specified as a part of the URL list configuration file.
  • When page request HTTP status code differs from 200 OK, or the expected regular expression or string is not found in the page source, error is listed in the end of the suite output.
    • If the HTTP status code of the page requests differs from 200 OK, the suite exit code may differ from 0.
      • Suite can be configured to ignore predefined list of errors, enforcing exit code 0. They can be presented either by Django, or by Apache.
        • Apache errors patterns represent string in the title element of the page.
          • Usually page request returned with HTTP status code 500, 503.
        • Django errors patterns represent string in the description part of the error summary (pre element inside the div element with id summary).
          • Any error presented by Django.
      • Page dump for requests (issued by JenkinsCI cron job) with returned HTTP status code other than 200 OK are stored in subdirectories of https://pandabuild.cern.ch/qa/, e.g. https://pandabuild.cern.ch/qa/bigpanda_root/.

Automatic smoke test of a deployed RPM

  • As of 2014-07-29, the automatic smoke test of a deployed RPM is available for any update in RPMs twdev-bigpandamon-lsst and twdev-bigpandamon-core.
  • The RPMs are built using BigPanDARPMbuildSystem (using JenkinsCI).
  • The built RPM is not placed into expected repository x86_64, but into the QA_incoming buffer.
  • At the end of the RPM build job, the QA job, QA-TW-DEV-bigpandamon-lsst, is initiated.
  • The QA job then installs the new RPMs to the integration machine (aipanda022, alias bigpanda-old), and runs the QA suite with configuration aipanda022_root against the freshly built RPMs deployed to the integration machine.
  • If the QA job finishes successfully, the RPM is pushed to the production repository x86_64.
  • If the QA job fails, the RPM is pushed to QA_failed buffer, and is not made available through the production repository x86_64. In addition, email notification with the QA job log is sent to list of predefined users (JaroslavaSchovancova and TorreWenaus) to take a timely action: either fix the monitoring code and build a new RPM, or update the QA suite configuration or code.
  • Configuration files and the scripts are available in GitHub: https://github.com/PanDAWMS/panda-mon-qa/tree/master/auto.





Major updates:

-- JaroslavaSchovancova - 29 Jul 2014






Responsible: JaroslavaSchovancova

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2014-08-29 - JaroslavaSchovancova
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    PanDA All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback