code: def process_ret_job_event(self, event_data):
          '''
          Process a /ret event returned by Salt for a particular minion.
          These events contain the returned results from a particular execution.
          '''
          tag = event_data['tag']
          event_info = event_data['data']
  
          _, _, jid, _, mid = tag.split('/')
          job = self.jobs.setdefault(jid, {})
  
          minion = job.setdefault('minions', {}).setdefault(mid, {})
          minion.update({'return': event_info['return']})
          minion.update({'retcode': event_info['retcode']})
          minion.update({'success': event_info['success']})
  
          job_complete = all([minion['success'] for mid, minion
                              in six.iteritems(job['minions'])])
  
          if job_complete:
              job['state'] = 'complete'
  
          self.publish('jobs', self.jobsf process_ret_job_event(self, event_data):
          '''
          Process a /ret event returned by Salt for a particular minion.
          These events contain the returned results from a particular execution.
          '''
          tag = event_data['tag']
          event_info = event_data['data']
  
          _, _, jid, _, mid = tag.split('/')
          job = self.jobs.setdefault(jid, {})
  
          minion = job.setdefault('minions', {}).setdefault(mid, {})
          minion.update({'return': event_info['return']})
          minion.update({'retcode': event_info['retcode']})
          minion.update({'success': event_info['success']})
  
          job_complete = all([minion['success'] for mid, minion
                              in six.iteritems(job['minions'])])
  
          if job_complete:
              job['state'] = 'complete'
  
          self.publish('jobs', self.jobs)
docs: Process a /ret event returned by Salt for a particular minion.
          These events contain the returned results from a particular execution.