Exemple #1
0
    def get_config(self, request):
        """Gets a config file."""
        try:
            validation.validate_config_set(request.config_set)
            validation.validate_path(request.path)
        except ValueError as ex:
            raise endpoints.BadRequestException(ex.message)
        res = self.GetConfigResponseMessage()

        if not self.can_read_config_set(request.config_set):
            logging.warning('%s does not have access to %s',
                            auth.get_current_identity().to_bytes(),
                            request.config_set)
            raise_config_not_found()

        res.revision, res.content_hash = (storage.get_config_hash_async(
            request.config_set, request.path,
            revision=request.revision).get_result())
        if not res.content_hash:
            raise_config_not_found()

        if not request.hash_only:
            res.content = (storage.get_config_by_hash_async(
                res.content_hash).get_result())
            if not res.content:
                logging.warning(
                    'Config hash is found, but the blob is not.\n'
                    'File: "%s:%s:%s". Hash: %s', request.config_set,
                    request.revision, request.path, res.content_hash)
                raise_config_not_found()
        return res
Exemple #2
0
  def get_config(self, request):
    """Gets a config file."""
    try:
      validation.validate_config_set(request.config_set)
      validation.validate_path(request.path)
    except ValueError as ex:
      raise endpoints.BadRequestException(ex.message)
    res = self.GetConfigResponseMessage()

    if not self.can_read_config_set(request.config_set):
      logging.warning(
          '%s does not have access to %s',
          auth.get_current_identity().to_bytes(),
          request.config_set)
      raise_config_not_found()

    res.revision, res.content_hash = (
        storage.get_config_hash_async(
            request.config_set, request.path, revision=request.revision)
        .get_result())
    if not res.content_hash:
      raise_config_not_found()

    if not request.hash_only:
      res.content = (
          storage.get_config_by_hash_async(res.content_hash).get_result())
      if not res.content:
        logging.warning(
            'Config hash is found, but the blob is not.\n'
            'File: "%s:%s:%s". Hash: %s', request.config_set,
            request.revision, request.path, res.content_hash)
        raise_config_not_found()
    return res
Exemple #3
0
 def get_config_by_hash(self, request):
     """Gets a config file by its hash."""
     res = self.GetConfigByHashResponseMessage(
         content=storage.get_config_by_hash_async(
             request.content_hash).get_result())
     if not res.content:
         raise_config_not_found()
     return res
Exemple #4
0
 def get_config_by_hash(self, request):
   """Gets a config file by its hash."""
   res = self.GetConfigByHashResponseMessage(
       content=storage.get_config_by_hash_async(
           request.content_hash).get_result())
   if not res.content:
     raise_config_not_found()
   return res
Exemple #5
0
 def test_get_config_by_hash(self):
   self.assertIsNone(storage.get_config_by_hash_async('deadbeef').get_result())
   storage.Blob(id='deadbeef', content='content').put()
   self.assertEqual(
       storage.get_config_by_hash_async('deadbeef').get_result(), 'content')
Exemple #6
0
 def test_get_config_by_hash(self):
   self.assertIsNone(storage.get_config_by_hash_async('deadbeef').get_result())
   storage.Blob(id='deadbeef', content='content').put()
   self.assertEqual(
       storage.get_config_by_hash_async('deadbeef').get_result(), 'content')
Exemple #7
0
 def test_get_config_by_hash(self):
     self.assertIsNone(storage.get_config_by_hash_async("deadbeef").get_result())
     storage.Blob(id="deadbeef", content="content").put()
     self.assertEqual(storage.get_config_by_hash_async("deadbeef").get_result(), "content")