diff --git a/tcp_tests/managers/virtlet_manager.py b/tcp_tests/managers/virtlet_manager.py
index 866192d..f2a05ed 100644
--- a/tcp_tests/managers/virtlet_manager.py
+++ b/tcp_tests/managers/virtlet_manager.py
@@ -97,17 +97,15 @@
 
     def get_domain_name(self, vm_name):
         virt_node = self.virtlet_nodes[0]
-        cmd = ("cd ~/virtlet/examples && "
-               "./virsh.sh list | grep -i {0} "
-               "| awk {{'print $2'}}".format(vm_name))
+        cmd = ("~/virtlet/examples/virsh.sh list --name | "
+               "grep -i {0} ".format(vm_name))
         result = self.__underlay.check_call(cmd,
                                             node_name=virt_node['node_name'])
         return result['stdout'].strip()
 
     def get_vm_cpu_count(self, domain_name):
         virt_node = self.virtlet_nodes[0]
-        cmd = ("cd ~/virtlet/examples && "
-               "./virsh.sh dumpxml {0} | "
+        cmd = ("~/virtlet/examples/virsh.sh dumpxml {0} | "
                "grep 'cpu' | grep -o '[[:digit:]]*'".format(domain_name))
         result = self.__underlay.check_call(cmd,
                                             node_name=virt_node['node_name'])
@@ -115,10 +113,26 @@
 
     def get_vm_memory_count(self, domain_name):
         virt_node = self.virtlet_nodes[0]
-        cmd = ("cd ~/virtlet/examples && "
-               "./virsh.sh dumpxml {0} | "
+        cmd = ("~/virtlet/examples/virsh.sh dumpxml {0} | "
                "grep 'memory unit' | "
                "grep -o '[[:digit:]]*'".format(domain_name))
         result = self.__underlay.check_call(cmd,
                                             node_name=virt_node['node_name'])
         return int(result['stdout'].strip())
+
+    def get_domain_id(self, domain_name):
+        virt_node = self.virtlet_nodes[0]
+        cmd = ("virsh dumpxml {} | grep id=\' | "
+               "grep -o [[:digit:]]*".format(domain_name))
+        result = self.__underlay.check_call(cmd,
+                                            node_name=virt_node['node_name'])
+        return int(result['stdout'].strip())
+
+    def list_vm_volumes(self, domain_name):
+        virt_node = self.virtlet_nodes[0]
+        domain_id = self.get_domain_id(domain_name)
+        cmd = ("~/virtlet/examples/virsh.sh domblklist {} | "
+               "tail -n +3 | awk {{'print $2'}}".format(domain_id))
+        result = self.__underlay.check_call(cmd,
+                                            node_name=virt_node['node_name'])
+        return result['stdout'].strip()
diff --git a/tcp_tests/tests/system/test_virtlet_actions.py b/tcp_tests/tests/system/test_virtlet_actions.py
index 4db505c..e5c01a1 100644
--- a/tcp_tests/tests/system/test_virtlet_actions.py
+++ b/tcp_tests/tests/system/test_virtlet_actions.py
@@ -78,3 +78,23 @@
                    'Correct is {1}'.format(cpu, target_cpu)
         assert target_cpu == cpu, fail_msg
         virtlet_actions.delete_vm(target_yaml)
+
+    def test_rbd_flexvolume_driver(self, underlay, virtlet_ceph_deployed,
+                                   show_step, virtlet_actions):
+        """Test for deploying a VM with Ceph RBD volume using flexvolumeDriver
+
+        Scenario:
+            1. Start VM with prepared yaml from run-ceph.sh scripts
+            2. Check that RBD volume is listed in virsh domblklist for VM
+            3. Destroy VM
+
+        """
+        # From:
+        # https://github.com/Mirantis/virtlet/blob/master/tests/e2e/run_ceph.sh
+        target_yaml = "virtlet/tests/e2e/cirros-vm-rbd-volume.yaml"
+        vm_name = virtlet_actions.run_vm(target_yaml)
+        virtlet_actions.wait_active_state(vm_name)
+        domain_name = virtlet_actions.get_domain_name(vm_name)
+        vm_volumes_list = virtlet_actions.list_vm_volumes(domain_name)
+        assert 'rbd' in vm_volumes_list
+        virtlet_actions.delete_vm(target_yaml)
