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):
"""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):
"""Return list of paths of existing objects"""
@ -234,7 +240,7 @@ class Cdist:
"""Return directory that holds the explorers of a type"""
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 os.path.join(REMOTE_TYPE_DIR, type, "explorer")
@ -246,17 +252,20 @@ class Cdist:
if type in self.type_explorers_transferred:
log.debug("Skipping retransfer for %s", type)
return
else:
# Do not retransfer
self.type_explorers_transferred[type] = 1
src = self.type_explorer_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
self.remote_run_or_fail(["mkdir", "-p", remote_base])
self.transfer_dir(src, dst)
# Only continue, if there is at least the directory
if os.path.isdir(src):
# 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):
"""Link type names to cdist-type-emulator"""
@ -293,12 +302,12 @@ class Cdist:
cmd = []
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:
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)