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:
Henning Schild 2018-01-05 16:00:27 +01:00 committed by Daniel Wagner
parent 3594ad50a0
commit 9da82dba13
2 changed files with 11 additions and 14 deletions

View File

@ -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

View File

@ -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):