def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._client = docker_client_config().get_client() self._low_level_client = docker_client_config().get_low_level_client() self._prepare_outputs()
def build(self, image_info: ImageInfo): image_info_json = image_info.to_json() if image_info.image_state == ImageState.NEEDS_TO_BE_BUILD.name: yield DockerBuildImageTask(image_name=self.image_name, image_info_json=image_info_json) image_info.image_state = ImageState.WAS_BUILD.name elif image_info.image_state == ImageState.CAN_BE_LOADED.name: yield DockerLoadImageTask(image_name=self.image_name, image_info_json=image_info_json) image_info.image_state = ImageState.WAS_LOADED.name elif image_info.image_state == ImageState.REMOTE_AVAILABLE.name: yield DockerPullImageTask(image_name=self.image_name, image_info_json=image_info_json) image_info.image_state = ImageState.WAS_PULLED.name elif image_info.image_state == ImageState.TARGET_LOCALLY_AVAILABLE.name: image_info.image_state = ImageState.USED_LOCAL.name elif image_info.image_state == ImageState.SOURCE_LOCALLY_AVAILABLE.name: image_info.image_state = ImageState.WAS_TAGED.name docker_client_config().get_client().images.get( image_info.get_source_complete_name()).tag( repository=image_info.target_repository_name, tag=image_info.get_target_complete_tag()) else: raise Exception( "Task %s: Image state %s not supported for image %s", self.task_id, image_info.image_state, image_info.get_target_complete_name())
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._client = docker_client_config().get_client() self._low_level_client = docker_client_config().get_low_level_client() self._test_container_info = ContainerInfo.from_dict( self.test_container_info_dict) self._database_info = DatabaseInfo.from_dict(self.database_info_dict) self._prepare_outputs()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._client = docker_client_config().get_client() self._low_level_client = docker_client_config().get_low_level_client() if self.ip_address_index_in_subnet < 0: raise Exception( "ip_address_index_in_subnet needs to be greater than 0 got %s" % self.ip_address_index_in_subnet) self._prepare_outputs()
def stop(cls, test_environment_info: EnvironmentInfo): cls.logger.info("Stopping environment %s", test_environment_info.name) _docker_config = docker_client_config() _client = docker_client_config().get_client() db_container = _client.containers.get( test_environment_info.database_info.container_info.container_name) db_container.remove(force=True, v=True) test_container = _client.containers.get( test_environment_info.test_container_info.container_name) test_container.remove(force=True, v=True) network = _client.networks.get( test_environment_info.test_container_info.network_info.network_name ) network.remove()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._source_repository_name = self.get_source_repository_name() self._target_repository_name = self.get_target_repository_name() self._source_image_tag = self.get_source_image_tag() self._target_image_tag = self.get_target_image_tag() merged_transparent_build_arguments = { **self.get_transparent_build_arguments(), **docker_build_arguments().transparent } merged_image_changing_build_arguments = { **self.get_image_changing_build_arguments(), **docker_build_arguments().image_changing } self.image_description = ImageDescription( dockerfile=self.get_dockerfile(), mapping_of_build_files_and_directories=self. get_mapping_of_build_files_and_directories(), image_changing_build_arguments= merged_image_changing_build_arguments, transparent_build_arguments=merged_transparent_build_arguments) self._dockerfile = self.get_dockerfile() self._prepare_outputs() self._build_context_hasher = \ BuildContextHasher(self.__repr__(), self.image_description) self._client = docker_client_config().get_client()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._client = docker_client_config().get_client() self._log_config = log_config() self.docker_image_task = self.get_docker_image_task() self._prepare_outputs()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.client = docker_client_config().get_client() self.image_info = ImageInfo.from_json(self.image_info_json) self.image_target = DockerImageTarget( self.image_info.target_repository_name, self.image_info.get_target_complete_tag()) self.remove_image()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) test_evironment_info = EnvironmentInfo.from_dict(self.test_environment_info_dict) self._test_container_info = test_evironment_info.test_container_info self._database_info = test_evironment_info.database_info self._client = docker_client_config().get_client() self._prepare_outputs()
def create_and_export_container(self, release_image_name: str, temp_directory: str): self.logger.info("Task %s: Export container %s", self.__repr__(), release_image_name) client = docker_client_config().get_client() try: container = client.containers.create(image=release_image_name) try: return self.export_container(container, release_image_name, temp_directory) finally: container.remove(force=True) finally: client.close()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) test_evironment_info = EnvironmentInfo.from_dict( self.test_environment_info_dict) self._test_container_info = test_evironment_info.test_container_info self._client = docker_client_config().get_client() self._prepare_outputs() self.test_container = self._client.containers.get( self._test_container_info.container_name) self.tasks = self.generate_test_task_configs_from_directory( self.test_container, self.directory)
def __init__(self, task_id: str): self._log_config = log_config() self._low_level_client = docker_client_config().get_low_level_client() self._task_id = task_id