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
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
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
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')
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")