code: def validate_v3_svc_catalog_endpoint_data(self, expected, actual):
          self.log.debug('Validating v3 service catalog endpoint data...')
          self.log.debug('actual: {}'.format(repr(actual)))
          for k, v in six.iteritems(expected):
              if k in actual:
                  l_expected = sorted(v, key=lambda x: x['interface'])
                  l_actual = sorted(actual[k], key=lambda x: x['interface'])
                  if len(l_actual) != len(l_expected):
                      return ("endpoint {} has differing number of interfaces "
                              " - expected({}), actual({})"
                              .format(k, len(l_expected), len(l_actual)))
                  for i_expected, i_actual in zip(l_expected, l_actual):
                      self.log.debug("checking interface {}"
                                     .format(i_expected['interface']))
                      ret = self._validate_dict_data(i_expected, i_actual)
                      if ret:
                          return self.endpoint_error(k, ret)
              else:
                  return "endpoint {} does not exist".format(k)
          return ret