config: call Repo.factory only in one place
This patch simplifies the code a bit and does not change any semantics. Signed-off-by: Henning Schild <henning.schild@siemens.com>
This commit is contained in:
parent
3594ad50a0
commit
9da82dba13
@ -189,6 +189,7 @@ class Config:
|
||||
name = repo_config_dict[repo].get('name', repo)
|
||||
refspec = repo_config_dict[repo].get('refspec', None)
|
||||
path = repo_config_dict[repo].get('path', None)
|
||||
dis_ops = False
|
||||
|
||||
if url is None:
|
||||
# No git operation on repository
|
||||
@ -199,12 +200,12 @@ class Config:
|
||||
name)
|
||||
|
||||
url = path
|
||||
rep = Repo.factory(url=url, path=path, layers=layers)
|
||||
rep.disable_operations()
|
||||
dis_ops = True
|
||||
else:
|
||||
path = path or os.path.join(self.kas_work_dir, name)
|
||||
rep = Repo.factory(url=url, path=path, refspec=refspec,
|
||||
layers=layers)
|
||||
|
||||
rep = Repo.factory(url=url, path=path, refspec=refspec,
|
||||
layers=layers, disable_operations=dis_ops)
|
||||
repo_dict[repo] = rep
|
||||
return repo_dict
|
||||
|
||||
|
16
kas/repos.py
16
kas/repos.py
@ -38,19 +38,14 @@ class Repo:
|
||||
Represents a repository in the kas configuration.
|
||||
"""
|
||||
|
||||
def __init__(self, url, path, refspec, layers):
|
||||
def __init__(self, url, path, refspec, layers, disable_operations):
|
||||
# pylint: disable=too-many-arguments
|
||||
self.url = url
|
||||
self.path = path
|
||||
self.refspec = refspec
|
||||
self._layers = layers
|
||||
self.name = os.path.basename(self.path)
|
||||
self.operations_disabled = False
|
||||
|
||||
def disable_operations(self):
|
||||
"""
|
||||
Disabled all version control operation for this repository.
|
||||
"""
|
||||
self.operations_disabled = True
|
||||
self.operations_disabled = disable_operations
|
||||
|
||||
def __getattr__(self, item):
|
||||
if item == 'layers':
|
||||
@ -74,11 +69,12 @@ class Repo:
|
||||
self.path, self._layers)
|
||||
|
||||
@staticmethod
|
||||
def factory(url, path, refspec=None, layers=None):
|
||||
def factory(url, path, refspec, layers, disable_operations):
|
||||
"""
|
||||
Return an instance Repo depending on params.
|
||||
"""
|
||||
return GitRepo(url, path, refspec, layers)
|
||||
# pylint: disable=too-many-arguments
|
||||
return GitRepo(url, path, refspec, layers, disable_operations)
|
||||
|
||||
@staticmethod
|
||||
def get_root_path(path, environ):
|
||||
|
Loading…
Reference in New Issue
Block a user