diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-03-30 17:42:26 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-03-30 17:42:26 +0300 |
commit | 9184c4cbae2a1a6502a36142953accf1fc164739 (patch) | |
tree | 2fa3e0109d481b3d5ac610bfe92ae568c6c10d4a | |
parent | ef7b01237ad7585cbfa6b7c16c524b669fca2836 (diff) | |
download | ick2-9184c4cbae2a1a6502a36142953accf1fc164739.tar.gz |
Fix: empty workspace
-rw-r--r-- | ick2/actions.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/ick2/actions.py b/ick2/actions.py index 1ca33d5..9c9b9d6 100644 --- a/ick2/actions.py +++ b/ick2/actions.py @@ -60,12 +60,16 @@ class ActionFactory: def get_allowed_environments(self): return list(self._classes.keys()) + def get_workspace_area(self): + area = ick2.WorkspaceArea() + area.set_root(self._workspace_area) + return area + def create_environment(self, spec, project_name): env = spec.get('where', 'host') assert env in self.get_allowed_environments() env_class = self._classes[env] - area = ick2.WorkspaceArea() - area.set_root(self._workspace_area) + area = self.get_workspace_area() ws = area.create_workspace(project_name) return env_class(self._systree, ws.get_directory(), self._reporter) @@ -209,9 +213,9 @@ class CreateWorkspaceAction(Action): def execute(self, params, step): env = self.get_env() - workspace = env.get_workspace_directory() - workspace.clear() - self._env.report(0, 'Created workspace %s\n' % workspace) + dirname = env.get_workspace_directory() + make_directory_empty(env, dirname) + self._env.report(0, 'Created or emptied workspace %s\n' % workspace) return 0 @@ -262,13 +266,9 @@ class PopulateSystreeAction(Action): # pragma: no cover env = self.get_env() systree_dir = env.get_systree_directory() - self.make_directory_empty(systree_dir) + make_directory_empty(env, systree_dir) return self.download_and_unpack_systree(systree_name, systree_dir) - def make_directory_empty(self, dirname): - return cliapp.runcmd( - ['sudo', 'find', dirname, '-mindepth', '1', '-delete']) - def download_and_unpack_systree(self, systree_name, dirname): url = self.get_blob_upload_url(systree_name) headers = self.get_authz_headers() @@ -282,3 +282,8 @@ class PopulateSystreeAction(Action): # pragma: no cover exit_code = self._env.host_runcmd(curl, untar) self._env.report(exit_code, 'action finished\n') return exit_code + + +def make_directory_empty(env, dirname): + return env.runcmd( + ['sudo', 'find', dirname, '-mindepth', '1', '-delete']) |