From e1928d57060ca3e180d6b8fc7fe5b8ee8c4aefad Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Wed, 2 Jun 2021 12:41:36 +0200 Subject: [PATCH] mgr/nfs: Fix whitespace handling keep whitespace in lines starting with %url Signed-off-by: Sebastian Wagner --- src/pybind/mgr/nfs/export_utils.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pybind/mgr/nfs/export_utils.py b/src/pybind/mgr/nfs/export_utils.py index e4842393245ee..e9b5c7936323a 100644 --- a/src/pybind/mgr/nfs/export_utils.py +++ b/src/pybind/mgr/nfs/export_utils.py @@ -10,23 +10,24 @@ class GaneshaConfParser: self.pos = 0 self.text = "" for line in raw_config.split("\n"): - self.text += line + line = line.lstrip() + if line.startswith("%"): + self.text += line.replace('"', "") self.text += "\n" - - def remove_whitespaces_quotes(self): - if self.text.startswith("%url"): - self.text = self.text.replace('"', "") - else: - self.text = "".join(self.text.split()) + else: + self.text += "".join(line.split()) def stream(self): return self.text[self.pos:] + def last_context(self) -> str: + return f'"...{self.text[max(0, self.pos - 30):self.pos]}{self.stream()[:30]}"' + def parse_block_name(self): idx = self.stream().find('{') if idx == -1: - raise Exception("Cannot find block name") + raise Exception(f"Cannot find block name at {self.last_context()}") block_name = self.stream()[:idx] self.pos += idx+1 return block_name @@ -104,7 +105,6 @@ class GaneshaConfParser: raise Exception("Infinite loop while parsing block content") def parse(self): - self.remove_whitespaces_quotes() blocks = [] while self.stream(): blocks.append(self.parse_block_or_section()) -- 2.39.5