예제 #1
0
    def cmd_down(self):
        result = dict(
            changed=False,
            actions=dict(),
        )

        for service in self.project.services:
            containers = service.containers(stopped=True)
            if len(containers):
                result['changed'] = True
            if self.debug or self.check_mode:
                result['actions'][service.name] = dict()
                result['actions'][service.name]['deleted'] = [
                    container.name for container in containers
                ]

        if not self.check_mode and result['changed']:
            image_type = image_type_from_opt('--rmi', self.remove_images)
            try:
                self.project.down(image_type, self.remove_volumes,
                                  self.remove_orphans)
            except Exception as exc:
                self.client.fail("Error bringing %s down - %s" %
                                 (self.project.name, str(exc)))

        return result
예제 #2
0
 def cmd_down(self):
     result = dict(
         changed=False,
         actions=[]
     )
     for service in self.project.services:
         containers = service.containers(stopped=True)
         if len(containers):
             result['changed'] = True
         result['actions'].append(dict(
             service=service.name,
             deleted=[container.name for container in containers]
         ))
     if not self.check_mode and result['changed']:
         image_type = image_type_from_opt('--rmi', self.remove_images)
         out_redir_name, err_redir_name = make_redirection_tempfiles()
         try:
             with stdout_redirector(out_redir_name):
                 with stderr_redirector(err_redir_name):
                     self.project.down(image_type, self.remove_volumes, self.remove_orphans)
         except Exception as exc:
             fail_reason = get_failure_info(exc, out_redir_name, err_redir_name,
                                            msg_format="Error stopping project - %s")
             self.client.fail(**fail_reason)
         else:
             cleanup_redirection_tempfiles(out_redir_name, err_redir_name)
     return result
예제 #3
0
 def cmd_down(self):
     result = dict(changed=False, actions=[])
     for service in self.project.services:
         containers = service.containers(stopped=True)
         if len(containers):
             result['changed'] = True
         result['actions'].append(
             dict(service=service.name,
                  deleted=[container.name for container in containers]))
     if not self.check_mode and result['changed']:
         image_type = image_type_from_opt('--rmi', self.remove_images)
         try:
             self.project.down(image_type, self.remove_volumes,
                               self.remove_orphans)
         except Exception as exc:
             self.client.fail("Error stopping project - %s" % str(exc))
     return result
예제 #4
0
 def cmd_down(self):
     result = dict(
         changed=False,
         actions=[]
     )
     for service in self.project.services:
         containers = service.containers(stopped=True)
         if len(containers):
             result['changed'] = True
         result['actions'].append(dict(
             service=service.name,
             deleted=[container.name for container in containers]
         ))
     if not self.check_mode and result['changed']:
         image_type = image_type_from_opt('--rmi', self.remove_images)
         try:
             self.project.down(image_type, self.remove_volumes, self.remove_orphans)
         except Exception as exc:
             self.client.fail("Error stopping project - %s" % str(exc))
     return result