code: def report(shas, meta):
      
      num_members = meta.num_members
      uniq = shas.sha.unique()
      if len(shas) != num_members or len(uniq) != 1:
          return make_fail("DISTINCT_NTP_CONFS", confs=len(uniq), nodes=num_members)
  
      return make_pass("MATCHING_NTP_CONFS", nodes=meta['nodes'], servers=meta['servers'])
docs: Cluster rule to compare ntp.conf files across a cluster
  
      ``shas`` is a Pandas DataFrame for the facts for each host
      by the fact ``ntp_sha256``.  See
      https://pandas.pydata.org/pandas-docs/stable/api.html#dataframe
      for information on available attributes and methods.
  
      ``meta`` is a dictionary that contains the information from the
      cluster topology file provided by the ``-i`` switch.  The dictionary
      keys are the sections, and the values are a list of the host
      information provided in the toplolgy file.
  
      Arguments:
          shas (pandas.DataFrame): Includes facts from ``ntp_sha256``
              fact with column "sha" and one row per host in the cluster.
          meta (dict): Keys are the sections in the topology file and
              values are a list of the values in the section.