Home | History | Annotate | Download | only in server2
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from file_system import FileNotFoundError, FileSystem, StatInfo
      6 from future import Future
      7 from path_util import IsDirectory
      8 
      9 
     10 class EmptyDirFileSystem(FileSystem):
     11   '''A FileSystem with empty directories. Useful to inject places to disable
     12   features such as samples.
     13   '''
     14   def Read(self, paths, skip_not_found=False):
     15     result = {}
     16     for path in paths:
     17       if not IsDirectory(path):
     18         if skip_not_found: continue
     19         raise FileNotFoundError('EmptyDirFileSystem cannot read %s' % path)
     20       result[path] = []
     21     return Future(value=result)
     22 
     23   def Refresh(self):
     24     return Future(value=())
     25 
     26   def Stat(self, path):
     27     if not IsDirectory(path):
     28       raise FileNotFoundError('EmptyDirFileSystem cannot stat %s' % path)
     29     return StatInfo(0, child_versions=[])
     30 
     31   def GetIdentity(self):
     32     return self.__class__.__name__
     33