fixup type explorer run

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
Nico Schottelius 2011-09-08 23:01:11 +02:00
parent 7e8362eeed
commit cbdb5cd05d
1 changed files with 20 additions and 11 deletions

View File

@ -189,7 +189,13 @@ class Cdist:
def list_type_explorers(self, type): def list_type_explorers(self, type):
"""Return list of available explorers for a specific type""" """Return list of available explorers for a specific type"""
return os.listdir(type_explorer_dir(type)) dir = self.type_explorer_dir(type)
if os.path.isdir(dir):
list = os.listdir(dir)
else:
list = []
return list
def list_object_paths(self, starting_point = False): def list_object_paths(self, starting_point = False):
"""Return list of paths of existing objects""" """Return list of paths of existing objects"""
@ -234,7 +240,7 @@ class Cdist:
"""Return directory that holds the explorers of a type""" """Return directory that holds the explorers of a type"""
return os.path.join(TYPE_DIR, type, "explorer") return os.path.join(TYPE_DIR, type, "explorer")
def remote_type_explorer_dir(type): def remote_type_explorer_dir(self, type):
"""Return remote directory that holds the explorers of a type""" """Return remote directory that holds the explorers of a type"""
return os.path.join(REMOTE_TYPE_DIR, type, "explorer") return os.path.join(REMOTE_TYPE_DIR, type, "explorer")
@ -246,17 +252,20 @@ class Cdist:
if type in self.type_explorers_transferred: if type in self.type_explorers_transferred:
log.debug("Skipping retransfer for %s", type) log.debug("Skipping retransfer for %s", type)
return return
else:
# Do not retransfer
self.type_explorers_transferred[type] = 1
src = self.type_explorer_dir(type) src = self.type_explorer_dir(type)
remote_base = os.path.join(REMOTE_TYPE_DIR, type) remote_base = os.path.join(REMOTE_TYPE_DIR, type)
dst = self.type_explorer_dir(type) dst = self.remote_type_explorer_dir(type)
# Ensure the path path exists # Only continue, if there is at least the directory
self.remote_run_or_fail(["mkdir", "-p", remote_base]) if os.path.isdir(src):
self.transfer_dir(src, dst) # Ensure that the path exists
self.remote_run_or_fail(["mkdir", "-p", remote_base])
self.transfer_dir(src, dst)
# Do not retransfer
self.type_explorers_transferred[type] = 1
def link_type_to_emulator(self): def link_type_to_emulator(self):
"""Link type names to cdist-type-emulator""" """Link type names to cdist-type-emulator"""
@ -293,12 +302,12 @@ class Cdist:
cmd = [] cmd = []
cmd.append("__explorer=" + REMOTE_GLOBAL_EXPLORER_DIR) cmd.append("__explorer=" + REMOTE_GLOBAL_EXPLORER_DIR)
cmd.append("__type_explorer=" + remote_type_explorer_dir(type)) cmd.append("__type_explorer=" + self.remote_type_explorer_dir(type))
explorers = list_type_explorers(type) explorers = self.list_type_explorers(type)
for explorer in explorers: for explorer in explorers:
remote_cmd = cmd remote_cmd = cmd
remote_cmd.append(os.path.join(remote_type_explorer_dir(type), explorer)) remote_cmd.append(os.path.join(self.remote_type_explorer_dir(type), explorer))
self.remote_run_or_fail(remote_cmd) self.remote_run_or_fail(remote_cmd)