old_contents: # * require certificate as an argument
  # * lookup gid in db
  # * get pubkey from gid
  # * if certifacate matches pubkey from gid, return gid, else raise exception
  #  if not peer.is_pubkey(gid.get_pubkey()):
  #            raise ConnectionKeyGIDMismatch(gid.get_subject())
  
  from sfa.util.faults import *
  from sfa.util.method import Method
  from sfa.util.parameter import Parameter, Mixed
  from sfa.trust.auth import Auth
  from sfa.trust.gid import GID
  from sfa.trust.certificate import Certificate
  from sfa.util.genitable import GeniTable
  
  class get_gids(Method):
      """
      Get a list of record information (hrn, gid and type) for 
      the specified hrns.
  
      @param cred credential string 
      @param cert certificate string 
      @return    
      """
  
      interfaces = ['registry']
      
      accepts = [
          Parameter(str, "Certificate string"),
          Mixed(Parameter(str, "Human readable name (hrn)"), 
                Parameter(type([str]), "List of Human readable names (hrn)")) 
          ]
  
      returns = [Parameter(dict, "Dictionary of gids keyed on hrn")]
      
      def call(self, cred, hrns):
          # validate the credential
          self.api.auth.check(cred, 'getgids')
          table = GeniTable()
          if not isinstance(hrns, list):
              hrns = [hrns]
          records = table.find({'hrn': hrns}, columns=['hrn','type','gid'])
          
          return records 
  
new_contents: # * require certificate as an argument
  # * lookup gid in db
  # * get pubkey from gid
  # * if certifacate matches pubkey from gid, return gid, else raise exception
  #  if not peer.is_pubkey(gid.get_pubkey()):
  #            raise ConnectionKeyGIDMismatch(gid.get_subject())
  
  from sfa.util.faults import *
  from sfa.util.method import Method
  from sfa.util.parameter import Parameter, Mixed
  from sfa.trust.auth import Auth
  from sfa.trust.gid import GID
  from sfa.trust.certificate import Certificate
  from sfa.trust.credential import Credential
  from sfa.util.genitable import GeniTable
  
  class get_gids(Method):
      """
      Get a list of record information (hrn, gid and type) for 
      the specified hrns.
  
      @param cred credential string 
      @param cert certificate string 
      @return    
      """
  
      interfaces = ['registry']
      
      accepts = [
          Parameter(str, "Certificate string"),
          Mixed(Parameter(str, "Human readable name (hrn)"), 
                Parameter(type([str]), "List of Human readable names (hrn)")) 
          ]
  
      returns = [Parameter(dict, "Dictionary of gids keyed on hrn")]
      
      def call(self, cred, hrns):
          # validate the credential
          self.api.auth.check(cred, 'getgids')
          user_cred = Credential(string=cred)
          origin_hrn = user_cred.get_gid_caller().get_hrn()
  
          # resolve the record
          manager_base = 'sfa.managers'
          mgr_type = self.api.config.SFA_REGISTRY_TYPE
          manager_module = manager_base + ".registry_manager_%s" % mgr_type
          manager = __import__(manager_module, fromlist=[manager_base])
          records = manager.resolve(self.api, hrns, None, origin_hrn=origin_hrn)
          if not records:
              raise RecordNotFound(hrns)
  
          gids = []
          allowed_fields =  ['hrn', 'type', 'gid']
          for record in records:
              for key in record.keys():
                  if key not in allowed_fields:
                      del(record[key])
          return records    
  
subject: use registry manager module