From: Sebastian Wagner Date: Wed, 2 Jun 2021 10:41:36 +0000 (+0200) Subject: mgr/nfs: Fix whitespace handling X-Git-Tag: v17.1.0~1551^2~44 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e1928d57060ca3e180d6b8fc7fe5b8ee8c4aefad;p=ceph.git mgr/nfs: Fix whitespace handling keep whitespace in lines starting with %url Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/nfs/export_utils.py b/src/pybind/mgr/nfs/export_utils.py index e4842393245e..e9b5c7936323 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())