def tearDown(self): for index in range(self.max_consumer_threads): self.consumer_threads[index].do_run = False time.sleep(5) self.delete_test_docker_container() for index in range(self.max_consumer_threads): logging_to_console_and_syslog("Trying to join thread {}." .format(self.consumer_threads[index].getName())) self.consumer_threads[index].join(1.0) if self.consumer_threads[index].is_alive(): try: logging_to_console_and_syslog("Trying to __stop thread {}." .format(self.consumer_threads[index].getName())) self.consumer_threads[index]._stop() except: logging_to_console_and_syslog("Caught an exception while stopping thread {}" .format(self.consumer_threads[index].getName())) docker_image_name = self.dirname.split('/')[-2] logging_to_console_and_syslog("Trying to stop docker image{}." .format(docker_image_name)) try: docker_api_interface_instance = DockerAPIInterface(image_name=docker_image_name, dockerfile_directory_name=self.dirname) docker_api_interface_instance.stop_docker_container_by_name() except: logging_to_console_and_syslog("Caught an exception while stopping {}" .format(docker_image_name)) print("Exception in user code:") print("-" * 60) traceback.print_exc(file=sys.stdout) print("-" * 60)
def cleanup_test_environment(self): for index in range(self.max_consumer_threads): self.consumer_threads[index].do_run = False time.sleep(5) self.delete_test_docker_container() for index in range(self.max_consumer_threads): logging_to_console_and_syslog("Trying to join thread {}.".format( self.consumer_threads[index].getName())) self.consumer_threads[index].join(1.0) time.sleep(1) if self.consumer_threads[index].is_alive(): try: logging_to_console_and_syslog( "Trying to __stop thread {}.".format( self.consumer_threads[index].getName())) self.consumer_threads[index].__stop() except: logging_to_console_and_syslog( "Caught an exception while stopping thread {}".format( self.consumer_threads[index].getName())) docker_api_interface_instance = DockerAPIInterface( image_name=self.dirname.split('/')[-2], dockerfile_directory_name=self.dirname) docker_api_interface_instance.stop_docker_container_by_name( )
def create_docker_image(self): logging_to_console_and_syslog("Creating DockerAPIInterface instance()") self.docker_image = DockerAPIInterface(docker_tag=self.docker_tag, image_name=self.image_name, dockerfile_directory_name=self.dirname) logging_to_console_and_syslog("Invoking create_docker_container") self.docker_image.create_docker_container()
def tearDown(self): self.__tear_down_docker_stack() self.auto_scaler_thread.join(1.0) try: docker_api_interface_instance = DockerAPIInterface( image_name=TestAutoScaler.service_to_be_tested) docker_api_interface_instance.stop_docker_container_by_name() except: logging_to_console_and_syslog( "Caught an exception while stopping {}".format( TestAutoScaler.service_to_be_tested)) print("Exception in user code:") print("-" * 60) traceback.print_exc(file=sys.stdout) print("-" * 60)
class DockerBuildUTPublish(DockerAPIInterface, unittest.TestCase): def __init__(self, docker_tag=None, image_name=None, dockerfile_path=None): if not dockerfile_path: logging_to_console_and_syslog("You need to specify the path to Dockerfile.") raise BaseException if image_name: self.image_name = image_name else: self.image_name = dockerfile_path.split('/')[-1] self.dirname = dockerfile_path self.docker_tag = docker_tag logging_to_console_and_syslog("docker_tag={}," "image_name={}," "dirname={}" .format(docker_tag, self.image_name, self.dirname)) super().__init__(docker_tag, self.image_name, self.dirname) self.docker_image = None def create_docker_image(self): logging_to_console_and_syslog("Creating DockerAPIInterface instance()") self.docker_image = DockerAPIInterface(docker_tag=self.docker_tag, image_name=self.image_name, dockerfile_directory_name=self.dirname) logging_to_console_and_syslog("Invoking create_docker_container") self.docker_image.create_docker_container() def unit_test_this_image(self, ut_file_path): logging_to_console_and_syslog("Invoking run_docker_container() unit test.") try: self.docker_image.run_docker_container('python3 {}'.format(ut_file_path)) except: logging_to_console_and_syslog("Unhandled exception {}.".format(sys.exc_info()[0])) print("Exception in user code:") print("-" * 60) traceback.print_exc(file=sys.stdout) print("-" * 60) def stop_running_this_container(self): logging_to_console_and_syslog("Invoking stop_docker_container()") self.docker_image.stop_docker_container() def remove_docker_image(self): logging_to_console_and_syslog("Invoking remove_docker_image()") self.docker_image.remove_docker_image()
def tearDown(self): self.delete_test_docker_container() subprocess.run( ['rm', '-rf', TestMachineLearningWorkers.directory_name], stdout=subprocess.PIPE) self.machine_learning_worker_thread.do_run = False time.sleep(1) logging_to_console_and_syslog("Trying to join thread.") self.machine_learning_worker_thread.join(1.0) time.sleep(1) if self.machine_learning_worker_thread.isAlive(): try: logging_to_console_and_syslog("Trying to __stop thread.") self.machine_learning_worker_thread._stop() except: logging_to_console_and_syslog( "Caught an exception while stopping thread.") docker_api_interface_instance = DockerAPIInterface( image_name=self.dirname.split('/')[-2], dockerfile_directory_name=self.dirname) docker_api_interface_instance.stop_docker_container_by_name()
def validate_successful_completion(package_name, ut_file_path): logging_to_console_and_syslog("Starting {}," "package_name = {}" " ut_file_path = {}" .format(threading.current_thread().getName(), package_name, ut_file_path)) time.sleep(180) docker_api_interface_instance = DockerAPIInterface(image_name=package_name, dockerfile_directory_name=ut_file_path) docker_api_interface_instance.capture_docker_container_logs() docker_api_interface_instance.stop_docker_container_by_name() logging_to_console_and_syslog("Exiting {}".format(threading.current_thread().getName()))