def get_submit_mapping(self, project, branch=None):
"""Get submit mapping though project or branch"""
- for prj in self.mapping_obj.project:
- if prj.name == project or prj.name == '/' + project:
- # submission is blocked, return empty list, otherwise
- # return matched OBS target project
- return self.__get_mapping(prj, branch) or []
+ if self.mapping_obj.project:
+ for prj in self.mapping_obj.project:
+ if prj.name == project or prj.name == '/' + project:
+ # submission is blocked, return empty list, otherwise
+ # return matched OBS target project
+ return self.__get_mapping(prj, branch) or []
+ elif self.mapping_obj.default:
+ # Search in path list
+ prj_path = project
+ while True:
+ # parent directory of project/directory
+ prj_path = os.path.dirname(os.path.join('/', prj_path))
- # Search in path list
- prj_path = project
- while True:
- # parent directory of project/directory
- prj_path = os.path.dirname(os.path.join('/', prj_path))
+ if prj_path == '/':
+ for path in self.mapping_obj.default.path:
+ if path.name == '/':
+ return self.__get_mapping(path, branch) or []
+ # No branch match, return NULL
+ return []
- if prj_path == '/':
+ # Search path
for path in self.mapping_obj.default.path:
- if path.name == '/':
+ # path match
+ if os.path.dirname(path.name+'/') == prj_path:
+ # path pattern match projects blocked
+ # <path name="/test/" submission="N"/>
+ # <path name="/apps/">
+ # <branch name="master" submission="N"/>
+ # </path>
return self.__get_mapping(path, branch) or []
- # No branch match, return NULL
- return []
-
- # Search path
- for path in self.mapping_obj.default.path:
- # path match
- if os.path.dirname(path.name+'/') == prj_path:
- # path pattern match projects blocked
- # <path name="/test/" submission="N"/>
- # <path name="/apps/">
- # <branch name="master" submission="N"/>
- # </path>
- return self.__get_mapping(path, branch) or []
+ else:
+ return []