Пример #1
0
 def synchronize_service(self,
                         service_name,
                         force_maintenance=False,
                         timeout=30):
     helper = "testing/input/service_synchronization_helper.py"
     if not (self.__upgraded
             or testing.exists_at(self.install_commit, helper)):
         # We're upgrading from a commit where background services don't
         # support synchronization, and haven't upgraded yet.  Sleep a (long)
         # while and pray that the service is idle when we wake up.
         testing.logger.debug(
             "Synchronizing service: %s (sleeping %d seconds)" %
             (service_name, timeout))
         time.sleep(timeout)
         return
     testing.logger.debug("Synchronizing service: %s" % service_name)
     pidfile_path = os.path.join("/var/run/critic/main",
                                 service_name + ".pid")
     if force_maintenance:
         signum = signal.SIGUSR2
     else:
         signum = signal.SIGUSR1
     before = time.time()
     self.execute([
         "sudo", "python", "critic/" + helper, pidfile_path,
         str(signum),
         str(timeout)
     ])
     after = time.time()
     testing.logger.debug("Synchronized service: %s in %.2f seconds" %
                          (service_name, after - before))
Пример #2
0
 def check_extend(self, repository, pre_upgrade=False):
     if not testing.exists_at(self.install_commit, "extend.py"):
         raise testing.NotSupported("installed commit lacks extend.py")
     if not self.arguments.test_extensions:
         raise testing.NotSupported("--test-extensions argument not given")
     if not repository.v8_jsshell_path:
         raise testing.NotSupported("v8-jsshell sub-module not initialized")
Пример #3
0
 def check_extend(self, repository, pre_upgrade=False):
     commit = self.install_commit if pre_upgrade else self.tested_commit
     if not testing.exists_at(commit, "extend.py"):
         raise testing.NotSupported("tested commit lacks extend.py")
     if not self.arguments.test_extensions:
         raise testing.NotSupported("--test-extensions argument not given")
     if not repository.v8_jsshell_path:
         raise testing.NotSupported("v8-jsshell sub-module not initialized")
Пример #4
0
 def filter_service_logs(self, level, service_names):
     helper = "testing/input/service_log_filter.py"
     if not (self.__upgraded or testing.exists_at(self.install_commit, helper)):
         # We're upgrading from a commit where the helper for filtering
         # service logs isn't supported, and haven't upgraded yet.
         return
     logfile_paths = {
         os.path.join("/var/log/critic/main", service_name + ".log"): service_name
         for service_name in service_names }
     try:
         data = json.loads(self.execute(
             ["sudo", "python", "critic/" + helper, level] + logfile_paths.keys(),
             log_stdout=False))
         return { logfile_paths[logfile_path]: entries
                  for logfile_path, entries in sorted(data.items()) }
     except GuestCommandError:
         return None
Пример #5
0
 def filter_service_logs(self, level, service_names):
     helper = "testing/input/service_log_filter.py"
     if not (self.__upgraded or testing.exists_at(self.install_commit, helper)):
         # We're upgrading from a commit where the helper for filtering
         # service logs isn't supported, and haven't upgraded yet.
         return
     logfile_paths = {
         os.path.join("/var/log/critic/main", service_name + ".log"): service_name
         for service_name in service_names }
     try:
         data = json.loads(self.execute(
             ["sudo", "python", "critic/" + helper, level] + logfile_paths.keys(),
             log_stdout=False))
         return { logfile_paths[logfile_path]: entries
                  for logfile_path, entries in sorted(data.items()) }
     except GuestCommandError:
         return None
Пример #6
0
    def validatelogin(self, username, password, expect_failure=False):
        data = { "fields": { "username": username,
                             "password": password }}

        # Check if the current commit predates the user authentication
        # restructuring that added the "fields" wrapper.
        if self.instance.current_commit:
            if not testing.exists_at(
                    self.instance.current_commit, "src/auth/database.py"):
                data = data["fields"]

        if expect_failure:
            expect = { "message": expect_failure }
        else:
            expect = { "message": None }

        self.operation(
            "validatelogin",
            data=data,
            expect=expect)
Пример #7
0
 def synchronize_service(self, service_name, force_maintenance=False, timeout=30):
     helper = "testing/input/service_synchronization_helper.py"
     if not (self.__upgraded or testing.exists_at(self.install_commit, helper)):
         # We're upgrading from a commit where background services don't
         # support synchronization, and haven't upgraded yet.  Sleep a (long)
         # while and pray that the service is idle when we wake up.
         testing.logger.debug("Synchronizing service: %s (sleeping %d seconds)"
                              % (service_name, timeout))
         time.sleep(timeout)
         return
     testing.logger.debug("Synchronizing service: %s" % service_name)
     pidfile_path = os.path.join("/var/run/critic/main", service_name + ".pid")
     if force_maintenance:
         signum = signal.SIGUSR2
     else:
         signum = signal.SIGUSR1
     before = time.time()
     self.execute(
         ["sudo", "python", "critic/" + helper,
          pidfile_path, str(signum), str(timeout)])
     after = time.time()
     testing.logger.debug("Synchronized service: %s in %.2f seconds"
                          % (service_name, after - before))