docs: def validate_unit_process_ids(self, expected, actual):
          """Validate process id quantities for services on units."""
          self.log.debug('Checking units for running processes...')
          self.log.debug('Expected PIDs: {}'.format(expected))
          self.log.debug('Actual PIDs: {}'.format(actual))
  
          if len(actual) != len(expected):
              return ('Unit count mismatch.  expected, actual: {}, '
                      '{} '.format(len(expected), len(actual)))
  
          for (e_sentry, e_proc_names) in six.iteritems(expected):
              e_sentry_name = e_sentry.info['unit_name']
              if e_sentry in actual.keys():
                  a_proc_names = actual[e_sentry]
              else:
                  return ('Expected sentry ({}) not found in actual dict data.'
                          '{}'.format(e_sentry_name, e_sentry))
  
              if len(e_proc_names.keys()) != len(a_proc_names.keys()):
                  return ('Process name count mismatch.  expected, actual: {}, '
                          '{}'.format(len(expected), len(actual)))
  
              for (e_proc_name, e_pids), (a_proc_name, a_pids) in \
                      zip(e_proc_names.items(), a_proc_names.items()):
                  if e_proc_name != a_proc_name:
                      return ('Process name mismatch.  expected, actual: {}, '
                              '{}'.format(e_proc_name, a_proc_name))
  
                  a_pids_length = len(a_pids)
                  fail_msg = ('PID count mismatch. {} ({}) expected, actual: '
                              '{}, {} ({})'.format(e_sentry_name, e_proc_name,
                                                   e_pids, a_pids_length,
                                                   a_pids))
  
                  # If expected is a list, ensure at least one PID quantity match
                  if isinstance(e_pids, list) and \
                          a_pids_length not in e_pids:
                      return fail_msg
                  # If expected is not bool and not list,
                  # ensure PID quantities match
                  elif not isinstance(e_pids, bool) and \
                          not isinstance(e_pids, list) and \
                          a_pids_length != e_pids:
                      return fail_msg
                  # If expected is bool True, ensure 1 or more PIDs exist
                  elif isinstance(e_pids, bool) and \
                          e_pids is True and a_pids_length < 1:
                      return fail_msg
                  # If expected is bool False, ensure 0 PIDs exist
                  elif isinstance(e_pids, bool) and \
                          e_pids is False and a_pids_length != 0:
                      return fail_msg
                  else:
                      self.log.debug('PID check OK: {} {} {}: '
                                     '{}'.format(e_sentry_name, e_proc_name,
                                                 e_pids, a_pids))
          return None