diff --git a/tcp_tests/managers/reclass_manager.py b/tcp_tests/managers/reclass_manager.py
index 8448169..f8895c6 100644
--- a/tcp_tests/managers/reclass_manager.py
+++ b/tcp_tests/managers/reclass_manager.py
@@ -11,7 +11,6 @@
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
-
 from tcp_tests import logger
 from tcp_tests.managers.execute_commands import ExecuteCommandsMixin
 
@@ -69,18 +68,40 @@
                 path=short_path
             ))
 
-    def get_key(self, key, short_path):
+    def get_key(self, key, file_name):
         """Find a key in a YAML
 
         :param key: string, parameter to add
-        :param short_path: path to reclass yaml file.
-            It takes into account default path where the reclass is located.
-            May look like cluster/*/cicd/control/leader.yml
+        :param file_name: name of YAML file to find a key
         :return: str, key if found
         """
-        return self.ssh.check_call(
-            "{reclass_tools} get-key {key} /srv/salt/reclass/classes".format(
-                reclass_tools=self.reclass_tools_cmd, key=key))
+        request_key = self.ssh.check_call(
+            "{reclass_tools} get-key {key} /srv/salt/reclass/*/{file_name}".
+            format(reclass_tools=self.reclass_tools_cmd,
+                   key=key,
+                   file_name=file_name))['stdout']
+
+        # Reclass-tools returns result to stdout, so we get it as
+        #     ['\n',
+        #      '---\n',
+        #      '# Found parameters._param.jenkins_pipelines_branch in \
+        #          /srv/salt/reclass/classes/cluster/../infra/init.yml\n',
+        #      'release/proposed/2019.2.0\n',
+        #      '...\n',
+        #      '\n']
+        # So we have no chance to get value without dirty code like `stdout[3]`
+
+        LOG.info("From reclass.get_key {}".format(request_key))
+        if len(request_key) < 4:
+            assert "Can't find {key} in {file_name}. Got stdout {stdout}".\
+                format(
+                    key=key,
+                    file_name=file_name,
+                    stdout=request_key
+                )
+        value = request_key[3].strip('\n')
+        LOG.info("From reclass.get_key {}".format(value))
+        return value
 
     def add_bool_key(self, key, value, short_path):
         """
