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) name = repo_config_dict[repo].get('name', repo)
refspec = repo_config_dict[repo].get('refspec', None) refspec = repo_config_dict[repo].get('refspec', None)
path = repo_config_dict[repo].get('path', None) path = repo_config_dict[repo].get('path', None)
dis_ops = False
if url is None: if url is None:
# No git operation on repository # No git operation on repository
@ -199,12 +200,12 @@ class Config:
name) name)
url = path url = path
rep = Repo.factory(url=url, path=path, layers=layers) dis_ops = True
rep.disable_operations()
else: else:
path = path or os.path.join(self.kas_work_dir, name) 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 repo_dict[repo] = rep
return repo_dict return repo_dict

View File

@ -38,19 +38,14 @@ class Repo:
Represents a repository in the kas configuration. 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.url = url
self.path = path self.path = path
self.refspec = refspec self.refspec = refspec
self._layers = layers self._layers = layers
self.name = os.path.basename(self.path) self.name = os.path.basename(self.path)
self.operations_disabled = False self.operations_disabled = disable_operations
def disable_operations(self):
"""
Disabled all version control operation for this repository.
"""
self.operations_disabled = True
def __getattr__(self, item): def __getattr__(self, item):
if item == 'layers': if item == 'layers':
@ -74,11 +69,12 @@ class Repo:
self.path, self._layers) self.path, self._layers)
@staticmethod @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 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 @staticmethod
def get_root_path(path, environ): def get_root_path(path, environ):