def cleanup(self): super(build, self).cleanup() # Auto-converts "yes/no" to a boolean if (self.config['try_remove_after_test'] and self.stuff.has_key('image_id')): di = DockerImages(self) di.remove_image_by_id(self.stuff['image_id']) di.remove_image_by_full_name("empty_base_image") self.loginfo("Successfully removed test images") else: self.loginfo("NOT removing image")
def cleanup(self): super(build, self).cleanup() # Auto-converts "yes/no" to a boolean if self.config['try_remove_after_test']: dc = DockerContainers(self) for cid in dc.list_container_ids(): dcmd = DockerCmd(self, 'rm', ['--force', '--volumes', cid]) dcmd.execute() di = DockerImages(self) if self.stuff.get('image_id') is not None: di.remove_image_by_id(self.stuff['image_id']) di.remove_image_by_full_name("empty_base_image") self.loginfo("Successfully removed test images") else: self.loginfo("NOT removing image")
def run_once(self): fqin = self.sub_stuff['fqin'] self.sub_stuff["images"].append(fqin) di = DockerImages(self.parent_subtest) try: images = di.list_imgs_with_full_name(fqin) for i in images: di.remove_image_by_id(i.long_id) except error.CmdError: pass # removal was the goal images = di.list_imgs_with_full_name(fqin) if images != []: error.TestNAError("Unable to prepare env for test:" " image %s already/still" " exist in docker repository", fqin) self.logdebug("Existing images: %s", di.list_imgs_full_name()) self.loginfo("Executing test commands") self.run_command('run', self.sub_stuff['subargs'], 'cmdresult_run1') self.run_command('rm', [self.sub_stuff["rand_name"]], 'cmdresult_rm') self.run_command('tag', [fqin, self.sub_stuff["rand_name"].lower()], 'cmdresult_tag') self.run_command('rmi', [fqin], 'cmdresult_rmi') self.run_command('run', self.sub_stuff['subargs'], 'cmdresult_run2') self.run_command('rm', [self.sub_stuff["rand_name"]], 'cmdresult_rm2') self.run_command('rmi', [self.sub_stuff["rand_name"].lower()], 'cmdresult_rmi2')
def cleanup(self): super(rmi_base, self).cleanup() di = DockerImages(self.parent_subtest) # Auto-converts "yes/no" to a boolean if (self.config['remove_after_test'] and 'image_list' in self.sub_stuff): for cont in self.sub_stuff["containers"]: clean_cont = NoFailDockerCmd(self, "rm", ['--force', cont], self.config['docker_rmi_timeout']) clean_cont.execute() for image in self.sub_stuff["image_list"]: # If removal by name fails, try id try: try: di.remove_image_by_full_name(image.full_name) except DockerCommandError: di.remove_image_by_id(image.long_id) except DockerCommandError: self.logwarning("Image not exist or failed" " to remove image.") self.loginfo("Successfully removed test image")