diff --git a/lib/cdist/config_install.py b/lib/cdist/config_install.py index 3c809331..152d6c4a 100644 --- a/lib/cdist/config_install.py +++ b/lib/cdist/config_install.py @@ -40,12 +40,16 @@ class ConfigInstall(object): def __init__(self, context): self.context = context - + self.log = logging.getLogger(self.context.target_host) self.exec_wrapper = cdist.exec.Wrapper( target_host = self.context.target_host, remote_exec=self.context.remote_exec, remote_copy=self.context.remote_copy) + # Create directories other may depend on + self.__init_local_paths() + self.__init_remote_paths() + self.explorer = cdist.explorer.Explorer(self.context) #self.manifest = cdist.manifest.Mamifest() @@ -54,9 +58,6 @@ class ConfigInstall(object): # Setup env to be used by others - FIXME self.__init_env() - # Create directories - self.__init_local_paths() - self.__init_remote_paths() def __init_remote_paths(self): """Initialise remote directory structure""" @@ -84,21 +85,21 @@ class ConfigInstall(object): os.environ['__debug'] = "yes" def cleanup(self): - log.debug("Saving " + self.context.out_path + " to " + self.context.cache_path) + self.log.debug("Saving " + self.context.out_path + " to " + self.context.cache_path) if os.path.exists(self.context.cache_path): shutil.rmtree(self.context.cache_path) shutil.move(self.context.out_path, self.context.cache_path) def object_prepare(self, cdist_object): """Prepare object: Run type explorer + manifest""" - log.debug("Preparing object: " + cdist_object.name) + self.log.debug("Preparing object: " + cdist_object.name) cdist_object.explorers = self.explorer.run_type_explorer(cdist_object) self.manifest.run_type_manifest(cdist_object) cdist_object.prepared = True def object_run(self, cdist_object): """Run gencode and code for an object""" - log.debug("Running object %s", cdist_object) + self.log.debug("Running object %s", cdist_object) # Catch requirements, which re-call us if cdist_object.ran: @@ -107,7 +108,7 @@ class ConfigInstall(object): cdist_type = cdist_object.type for requirement in cdist_object.requirements: - log.debug("Object %s requires %s", cdist_object, requirement) + self.log.debug("Object %s requires %s", cdist_object, requirement) self.object_run(requirement) # @@ -123,7 +124,7 @@ class ConfigInstall(object): # gencode for cmd in ["local", "remote"]: - bin = os.path.join(self.type_base_path, + bin = os.path.join(self.context.type_base_path, getattr(cdist_type, "gencode_" + cmd + "_path")) if os.path.isfile(bin): @@ -169,16 +170,16 @@ class ConfigInstall(object): def link_emulator(self): """Link emulator to types""" src = os.path.abspath(self.context.exec_path) - for cdist_type in cdist.core.Type.list_types(self.type_base_path): + for cdist_type in cdist.core.Type.list_types(self.context.type_base_path): dst = os.path.join(self.context.bin_path, cdist_type.name) - log.debug("Linking emulator: %s to %s", src, dst) + self.log.debug("Linking emulator: %s to %s", src, dst) # FIXME: handle exception / make it more beautiful / Steven: raise except :-) os.symlink(src, dst) def deploy_to(self): """Mimic the old deploy to: Deploy to one host""" - log.info("Deploying to " + self.context.target_host) + self.log.info("Deploying to " + self.context.target_host) self.stage_prepare() self.stage_run() @@ -187,25 +188,25 @@ class ConfigInstall(object): start_time = time.time() self.deploy_to() self.cleanup() - log.info("Finished run of %s in %s seconds", + self.log.info("Finished run of %s in %s seconds", self.context.target_host, time.time() - start_time) def stage_prepare(self): """Do everything for a deploy, minus the actual code stage""" self.link_emulator() - self.run_global_explorers() + self.explorer.run_global_explorers() self.run_initial_manifest() - log.info("Running object manifests and type explorers") + self.log.info("Running object manifests and type explorers") # Continue process until no new objects are created anymore new_objects_created = True while new_objects_created: new_objects_created = False for cdist_object in cdist.core.Object.list_objects(self.object_base_path, - self.type_base_path): + self.context.type_base_path): if cdist_object.prepared: - log.debug("Skipping rerun of object %s", cdist_object) + self.log.debug("Skipping rerun of object %s", cdist_object) continue else: self.object_prepare(cdist_object) @@ -213,8 +214,8 @@ class ConfigInstall(object): def stage_run(self): """The final (and real) step of deployment""" - log.info("Generating and executing code") + self.log.info("Generating and executing code") for cdist_object in cdist.core.Object.list_objects(self.object_base_path, - self.type_base_path): - log.debug("Run object: %s", cdist_object) + self.context.type_base_path): + self.log.debug("Run object: %s", cdist_object) self.object_run(cdist_object)