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()
示例#4
0
 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()
示例#7
0
 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()))