mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-11-04 00:52:08 +00:00 
			
		
		
		
	framework/resource: add match_path method
This method is used to partially match a resource; its implementation cannot rely on the resource file actually being present and must match against the specified path alone. match() implementation now defaults to match_path(), as for most resource types, the path is sufficient to uniquely match a resource.
This commit is contained in:
		@@ -72,6 +72,9 @@ class Resource(object):
 | 
			
		||||
        self.owner = owner
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
        return self.match_path(path)
 | 
			
		||||
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        raise NotImplementedError()
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
@@ -86,7 +89,7 @@ class File(Resource):
 | 
			
		||||
        super(File, self).__init__(owner)
 | 
			
		||||
        self.path = path
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        return self.path == path
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
@@ -102,7 +105,7 @@ class Executable(Resource):
 | 
			
		||||
        self.abi = abi
 | 
			
		||||
        self.filename = filename
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        return self.filename == os.path.basename(path)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
@@ -118,7 +121,7 @@ class ReventFile(Resource):
 | 
			
		||||
        self.stage = stage
 | 
			
		||||
        self.target = target
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        filename = os.path.basename(path)
 | 
			
		||||
        parts = filename.split('.')
 | 
			
		||||
        if len(parts) > 2:
 | 
			
		||||
@@ -133,7 +136,7 @@ class JarFile(Resource):
 | 
			
		||||
 | 
			
		||||
    kind = 'jar'
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        # An owner always  has at most one jar file, so
 | 
			
		||||
        # always match
 | 
			
		||||
        return True
 | 
			
		||||
@@ -154,6 +157,10 @@ class ApkFile(Resource):
 | 
			
		||||
        self.exact_abi = exact_abi
 | 
			
		||||
        self.supported_abi = supported_abi
 | 
			
		||||
 | 
			
		||||
    def match_path(self, path):
 | 
			
		||||
        ext = os.path.splitext(path)[1].lower()
 | 
			
		||||
        return ext == '.apk'
 | 
			
		||||
 | 
			
		||||
    def match(self, path):
 | 
			
		||||
        name_matches = True
 | 
			
		||||
        version_matches = True
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user