Exemplo n.º 1
0
 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")
Exemplo n.º 2
0
 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')
Exemplo n.º 4
0
 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")