old_contents: #!/usr/bin/python2
  
  # we need to be able to find and import seleniumlib, so add this directory
  import os
  import sys
  
  machine_test_dir = os.path.dirname(os.path.abspath(__file__))
  if not machine_test_dir in sys.path:
      sys.path.insert(1, machine_test_dir)
  
  from avocado import main
  from avocado.utils import process
  from seleniumlib import *
  from timeoutlib import Retry
  
  class SosReportingTab(SeleniumTest):
      """
      :avocado: enable
      """
      def test10SosReport(self):
          # Docker must be running otherwise sosreport hangs
          process.run("systemctl start docker", shell=True)
  
          self.login()
          self.wait_id("host-apps")
          self.click(self.wait_link('Diagnostic Report', cond=clickable))
          self.wait_frame("sosreport")
          self.wait_text("This tool will collect system configuration and diagnostic")
          self.click(self.wait_xpath('//button[@data-target="#sos"]', cond=clickable))
          self.wait_id("sos")
          self.wait_text("Generating report")
          @Retry(attempts = 10, timeout = 3, exceptions = (process.CmdError,),
                 error = Exception('Timeout: sosreport did not start'))
          def waitforsosreportstarted():
              process.run("pgrep sosreport", shell=True)
          waitforsosreportstarted()
          # duration of report generation depends on the target system - as along as sosreport is active, we don't want to timeout
          # it is also important to call some selenium method there to ensure that connection to HUB will not be lost
          @Retry(attempts = 30, timeout = 10, exceptions = (process.CmdError,),
                 error = Exception('Timeout: sosreport did not finish'), inverse = True)
          def waitforsosreport():
              process.run("pgrep sosreport", shell=True)
              self.wait_text("Generating report", overridetry=5)
          waitforsosreport()
          element = self.wait_id("sos-download")
          self.wait_xpath('//button[contains(text(), "%s")]' % "Download", cond=clickable, baseelement=element)
          self.click(self.wait_id("sos-cancel", cond=clickable))
          self.wait_text("This tool will collect system configuration and diagnostic")
          self.mainframe()
          self.error = False
  
  if __name__ == '__main__':
      main()
  
new_contents: #!/usr/bin/python2
  
  # we need to be able to find and import seleniumlib, so add this directory
  import os
  import sys
  
  machine_test_dir = os.path.dirname(os.path.abspath(__file__))
  if not machine_test_dir in sys.path:
      sys.path.insert(1, machine_test_dir)
  
  from avocado import main
  from avocado.utils import process
  from seleniumlib import *
  from timeoutlib import Retry
  
  class SosReportingTab(SeleniumTest):
      """
      :avocado: enable
      """
      def test10SosReport(self):
          self.login()
          self.wait_id("host-apps")
          self.click(self.wait_link('Diagnostic Report', cond=clickable))
          self.wait_frame("sosreport")
          self.wait_text("This tool will collect system configuration and diagnostic")
          self.click(self.wait_xpath('//button[@data-target="#sos"]', cond=clickable))
          self.wait_id("sos")
          self.wait_text("Generating report")
          @Retry(attempts = 10, timeout = 3, exceptions = (process.CmdError,),
                 error = Exception('Timeout: sosreport did not start'))
          def waitforsosreportstarted():
              process.run("pgrep sosreport", shell=True)
          waitforsosreportstarted()
          # duration of report generation depends on the target system - as along as sosreport is active, we don't want to timeout
          # it is also important to call some selenium method there to ensure that connection to HUB will not be lost
          @Retry(attempts = 30, timeout = 10, exceptions = (process.CmdError,),
                 error = Exception('Timeout: sosreport did not finish'), inverse = True)
          def waitforsosreport():
              process.run("pgrep sosreport", shell=True)
              self.wait_text("Generating report", overridetry=5)
          waitforsosreport()
          element = self.wait_id("sos-download")
          self.wait_xpath('//button[contains(text(), "%s")]' % "Download", cond=clickable, baseelement=element)
          self.click(self.wait_id("sos-cancel", cond=clickable))
          self.wait_text("This tool will collect system configuration and diagnostic")
          self.mainframe()
          self.error = False
  
  if __name__ == '__main__':
      main()
  
subject: Revert "test: Ensure docker is started before running sosrport" (#10406)