diff options
Diffstat (limited to 'ick2/state.py')
-rw-r--r-- | ick2/state.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/ick2/state.py b/ick2/state.py index 806b2a7..3a985a8 100644 --- a/ick2/state.py +++ b/ick2/state.py @@ -40,9 +40,9 @@ class ControllerState: def get_resource_directory(self, type_name): return os.path.join(self.get_state_directory(), type_name) - def get_resource_filename(self, type_name, project_name): - return os.path.join( - self.get_resource_directory(type_name), project_name + '.yaml') + def get_resource_filename(self, type_name, resource_name): + dirname = self.get_resource_directory(type_name) + return os.path.join(dirname, resource_name + '.yaml') def load_resources(self, type_name): assert self._statedir is not None @@ -107,10 +107,14 @@ class ResourceStore: # pragma: no cover self._category = category self._name_field = name_field + def get_resource_name(self, name): + return str(name) + def list(self): return self._state.get_resources(self._category) def get(self, name): + name = self.get_resource_name(name) try: return self._state.get_resource(self._category, name) except ick2.NotFound: @@ -119,10 +123,11 @@ class ResourceStore: # pragma: no cover } def add(self, name, resource): + name = self.get_resource_name(name) self._state.add_resource(self._category, name, resource) def update(self, resource): - name = resource[self._name_field] + name = self.get_resource_name(resource[self._name_field]) try: self._state.get_resource(self._category, name) except ick2.NotFound: @@ -155,6 +160,18 @@ class Projects(ResourceStore): # pragma: no cover self.update(project) +class Builds(ResourceStore): # pragma: no cover + + def __init__(self, state): + super().__init__(state, 'builds', 'build_id') + + def get_builds(self): + return self.list() + + def update_build(self, build): + self.update(build) + + class PipelineInstances(ResourceStore): # pragma: no cover def __init__(self, state): |