def __load(self, config_path): item_name = self.__chassis_name logger_config = self.get_logger(item_name) try: with open(config_path, 'r') as fp: chassis_info = YAMLLoader(fp).get_data() except IOError: logger_config.exception( "Cannot find config {}".format(config_path)) raise InfraSimError("Cannot find config {}".format(config_path)) if not isinstance(chassis_info, dict): logger_config.exception( "Config {} is an invalid yaml file.".format(config_path)) raise InfraSimError( "Config {} is an invalid yaml file.".format(config_path)) nodes = chassis_info.get("nodes") if not nodes: raise InfraSimError( "Config {} has no [nodes].".format(chassis_info)) for node in nodes: if not node.get('name'): node['name'] = "{}_node_{}".format(item_name, nodes.index(node)) return chassis_info
def _get_map_manager(self, name, config_file=None): is_chassis = False has_node = nm.in_map_folder(name) has_chassis = cm.in_map_folder(name) if config_file: with open(config_file, 'r') as fp: info = YAMLLoader(fp).get_data() if info.get("nodes"): is_chassis = True if (is_chassis and has_node) or (is_chassis is False and has_chassis): raise InfraSimError("Type from config file is not match with name") else: is_chassis = has_chassis return cm if is_chassis else nm
def __load(self, config_path): item_name = self.__chassis_name logger_config = self.get_logger(item_name) try: with open(config_path, 'r') as fp: chassis_info = YAMLLoader(fp).get_data() except IOError: logger_config.exception("Cannot find config {}".format(config_path)) raise InfraSimError("Cannot find config {}".format(config_path)) if not isinstance(chassis_info, dict): logger_config.exception("Config {} is an invalid yaml file.".format(config_path)) raise InfraSimError("Config {} is an invalid yaml file.".format(config_path)) nodes = chassis_info.get("nodes") if not nodes: raise InfraSimError("Config {} has no [nodes].".format(chassis_info)) for node in nodes: if not node.get('name'): node['name'] = "{}_node_{}".format(item_name, nodes.index(node)) return chassis_info