def _load_config(self): """ Loads the configuration from YAML, if no override config was passed in initially. """ if ( self.config ): # any config being pre-set at init will short circuit out, but not a plain {} return # Verify that we're in a project repo_root = self.repo_root if not repo_root: raise NotInProject( "No git repository was found in the current path. You must be in a git repository to set up and use CCI for a project." ) # Verify that the project's root has a config file if not self.config_project_path: raise ProjectConfigNotFound( f"The file {self.config_filename} was not found in the repo root: {repo_root}. Are you in a CumulusCI Project directory?" ) # Load the project's yaml config file with open(self.config_project_path, "r") as f_config: project_config = cci_safe_load(f_config) if project_config: self.config_project.update(project_config) # Load the local project yaml config file if it exists if self.config_project_local_path: with open(self.config_project_local_path, "r") as f_local_config: local_config = cci_safe_load(f_local_config) if local_config: self.config_project_local.update(local_config) # merge in any additional yaml that was passed along if self.additional_yaml: additional_yaml_config = yaml.safe_load(self.additional_yaml) if additional_yaml_config: self.config_additional_yaml.update(additional_yaml_config) self.config = merge_config({ "global_config": self.config_global, "global_local": self.config_global_local, "project_config": self.config_project, "project_local_config": self.config_project_local, "additional_yaml": self.config_additional_yaml, }) self._validate_config()
def _load_config(self): """ Loads the configuration for the project """ # Verify that we're in a project repo_root = self.repo_root if not repo_root: raise NotInProject( "No repository found in current path. You must be inside a repository to initialize the project configuration" ) # Verify that the project's root has a config file if not self.config_project_path: raise ProjectConfigNotFound( "The file {} was not found in the repo root: {}".format( self.config_filename, repo_root)) # Start the merged yaml config from the global and global local configs merge_yaml = [self.global_config_obj.config_global_path] if self.global_config_obj.config_global_local_path: merge_yaml.append(self.global_config_obj.config_global_local_path) # Load the project's yaml config file with open(self.config_project_path, "r") as f_config: project_config = yaml.load(f_config) if project_config: self.config_project.update(project_config) merge_yaml.append(self.config_project_path) # Load the local project yaml config file if it exists if self.config_project_local_path: with open(self.config_project_local_path, "r") as f_local_config: local_config = yaml.load(f_local_config) if local_config: self.config_project_local.update(local_config) merge_yaml.append(self.config_project_local_path) # merge in any additional yaml that was passed along if self.additional_yaml: additional_yaml_config = yaml.load(self.additional_yaml) if additional_yaml_config: self.config_additional_yaml.update(additional_yaml_config) merge_yaml.append(self.additional_yaml) self.config = hiyapyco.load(*merge_yaml, method=hiyapyco.METHOD_MERGE, loglevel="INFO")
def _load_config(self): """ Loads the configuration for the project """ # Initialize the dictionaries for the individual configs self.config_project = {} self.config_project_local = {} # Verify that we're in a project repo_root = self.repo_root if not repo_root: raise NotInProject('No repository found in current path. You must be inside a repository to initialize the project configuration') # Verify that the project's root has a config file if not self.config_project_path: raise ProjectConfigNotFound( 'The file {} was not found in the repo root: {}'.format( self.config_filename, repo_root ) ) # Start the merged yaml config from the global and global local configs merge_yaml = [self.global_config_obj.config_global_path] if self.global_config_obj.config_global_local_path: merge_yaml.append(self.global_config_obj.config_global_local_path) # Load the project's yaml config file with open(self.config_project_path, 'r') as f_config: project_config = yaml.load(f_config) if project_config: self.config_project.update(project_config) merge_yaml.append(self.config_project_path) # Load the local project yaml config file if it exists if self.config_project_local_path: with open(self.config_project_local_path, 'r') as f_local_config: local_config = yaml.load(f_local_config) if local_config: self.config_project_local.update(local_config) merge_yaml.append(self.config_project_local_path) self.config = hiyapyco.load(*merge_yaml, method=hiyapyco.METHOD_MERGE)