diff --git a/build_tools/test_frontend.sh b/build_tools/test_frontend.sh index 06f5620..4b839a0 100755 --- a/build_tools/test_frontend.sh +++ b/build_tools/test_frontend.sh @@ -7,12 +7,17 @@ LOG="/tmp/frontend_test_hub.log" NPROC=2 TESTS_DIR="frontend_tests" WAIT_FOR_START=3 -WAIT_FOR_STOP=25 +WAIT_FOR_STOP=20 function kill_everware { echo "Stopping everware" pkill -TERM -f everware-server sleep $WAIT_FOR_STOP + if [[ ! -z `pgrep -f everware-server` ]] ; then + echo "Fail to stop with sigterm, killing" + pkill -KILL -f everware-server + sleep $WAIT_FOR_STOP + fi } if [ -z "$UPLOADDIR" ] ; then diff --git a/everware/image_handler.py b/everware/image_handler.py index 16e2929..72a4f85 100644 --- a/everware/image_handler.py +++ b/everware/image_handler.py @@ -42,8 +42,8 @@ def block(self): return value def __enter__(self): - if self._exception is not None: - raise self._exception + # if self._exception is not None: + # raise self._exception return self def __exit__(self, exc_type, exc_value, traceback): diff --git a/everware/spawner.py b/everware/spawner.py index c929241..27a7504 100755 --- a/everware/spawner.py +++ b/everware/spawner.py @@ -226,7 +226,7 @@ def wait_up(self): # means that spawn was unsuccessful, need to set is_failed try: yield self.user.server.wait_up(http=True, timeout=self.http_timeout) - ip, port = yield from self.get_ip_and_port() + ip, port = yield self.get_ip_and_port() self.user.server.ip = ip self.user.server.port = port self._is_up = True @@ -323,33 +323,6 @@ def remove_old_container(self): self.log.info("Can't erase container %s due to %s" % (self.container_name, e)) @gen.coroutine - def wait_up(self): - # copied from jupyterhub, because if user's server didn't appear, it - # means that spawn was unsuccessful, need to set is_failed - try: - yield self.user.server.wait_up(http=True, timeout=self.http_timeout) - ip, port = yield self.get_ip_and_port() - self.user.server.ip = ip - self.user.server.port = port - self._is_up = True - except TimeoutError: - self._is_failed = True - self._add_to_log('Server never showed up after {} seconds'.format(self.http_timeout)) - self.log.info("{user}'s server never showed up after {timeout} seconds".format( - user=self.user.name, - timeout=self.http_timeout - )) - yield self.notify_about_fail("Http timeout limit %.3f exceeded" % self.http_timeout) - raise - except Exception as e: - self._is_failed = True - message = str(e) - self._add_to_log('Something went wrong during waiting for server. Error: %s' % message) - yield self.notify_about_fail(message) - raise e - - - @gen.coroutine def start(self, image=None): """start the single-user server in a docker container""" self._user_log = [] @@ -534,3 +507,4 @@ def start(self, image=None, extra_create_kwargs=None): self.db.commit() self.log.info("{} was started on {} ({}:{})".format( self.container_name, node_name, self.user.server.ip, self.user.server.port)) + return self.user.server.ip, self.user.server.port diff --git a/frontend_tests/normal_scenarios.py b/frontend_tests/normal_scenarios.py index 7d141f7..07b3279 100644 --- a/frontend_tests/normal_scenarios.py +++ b/frontend_tests/normal_scenarios.py @@ -55,9 +55,6 @@ def scenario_timeout(user): user.log('correct, timeout happened') driver.find_element_by_id("resist").click() user.log("resist clicked") - commons.fill_repo_info(driver, user, 'https://github.com/everware/test_long_creation') - user.log("spawn clicked (second try)") - user.wait_for_element_present(By.ID, "resist") def scenario_no_dockerfile(user):