New test for Ceph Operations

PROD-35900

Change-Id: I34cdad3f6a9b6c89cfde6792b74e393fad7d49b6
diff --git a/tcp_tests/managers/reclass_manager.py b/tcp_tests/managers/reclass_manager.py
index 137dd33..0813b5b 100644
--- a/tcp_tests/managers/reclass_manager.py
+++ b/tcp_tests/managers/reclass_manager.py
@@ -37,6 +37,11 @@
         super(ReclassManager, self).__init__(config=config, underlay=underlay)
 
     def check_existence(self, key):
+        """
+        Returns True if reclass contains that key.
+        :param key: string
+        :return: boolean
+        """
         if key in self.ssh.check_call(
                 "{reclass_tools} get-key {key} /srv/salt/reclass/classes".
                 format(reclass_tools=self.reclass_tools_cmd,
@@ -56,15 +61,20 @@
             May look like cluster/*/cicd/control/leader.yml
         :return: None
         """
-        self.check_existence(key)
-        self.ssh.check_call(
-            "{reclass_tools} add-key {key} {value} \
+
+        value = str(value).replace('"', "'")
+        # let's escape $ symbol for bash-like command
+        value = str(value).replace("$", r"\$")
+
+        # value can contain a space symbol. So value should be in quotes
+        cmd = "{reclass_tools} add-key {key} \"{value}\" \
             /srv/salt/reclass/classes/{path}".format(
                 reclass_tools=self.reclass_tools_cmd,
                 key=key,
                 value=value,
-                path=short_path
-                ))
+                path=short_path)
+        LOG.info("Add key to reclass: \n  {cmd} ".format(cmd=cmd))
+        self.ssh.check_call(cmd)
 
     def get_key(self, key, file_name):
         """Find a key in a YAML