diff --git a/cleanup.py b/cleanup.py
index b69cd62..f641a95 100644
--- a/cleanup.py
+++ b/cleanup.py
@@ -29,10 +29,15 @@
 image = cloud.image
 network = cloud.network
 orchestration = cloud.orchestration
-object_store = cloud.object_store
 volume = cloud.volume
 load_balancer = cloud.load_balancer
 
+# Check if Object Storage is present on the cloud, else skip
+object_store_present = any(service.type == 'object-store' for service
+                           in list(identity.services()))
+if object_store_present:
+    object_store = cloud.object_store
+
 mask = "cvp|s_rally|rally_|tempest-|tempest_|spt|fio"
 full_mask = f"^(?!.*(manual|-static-)).*({mask}).*$"
 mask_pattern = re.compile(full_mask, re.IGNORECASE)
@@ -454,7 +459,10 @@
     cleanup_load_balancers()
     cleanup_servers()
     cleanup_flavors()
-    cleanup_volume_backups()
+    try:  # Skip if cinder-backup service is not enabled
+        cleanup_volume_backups()
+    except openstack.exceptions.ResourceNotFound:
+        pass
     cleanup_snapshots()
     cleanup_volumes()
     cleanup_volume_groups()
@@ -469,7 +477,8 @@
     cleanup_regions()
     cleanup_routers()
     cleanup_networks()
-    cleanup_containers()
+    if object_store_present:
+        cleanup_containers()
     cleanup_floating_ips()
 
     if args.projects:
diff --git a/k8s/workspace/init-workspace.sh b/k8s/workspace/init-workspace.sh
index 84ab960..4f8f00c 100644
--- a/k8s/workspace/init-workspace.sh
+++ b/k8s/workspace/init-workspace.sh
@@ -106,11 +106,11 @@
 
     echo " "
     keystone_pod=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml get pod -n openstack -o=custom-columns=NAME:.metadata.name | grep keystone-client)
-    echo "# Extracting network"
-    cmd="openstack network list --external -c Name -f value"
+    echo "# Extracting network: taking the first found external network"
+    cmd="openstack network list --external -c Name -f value | head -n1"
     echo "# Running 'kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec ${keystone_pod} -c keystone-client --stdin -- "${cmd}"'"
     vPUBNET=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec ${keystone_pod} -c keystone-client --stdin -- ${cmd})
-    echo "-> 'openstack network list --external -c Name -f value': '${vPUBNET}'"
+    echo "-> 'openstack network list --external -c Name -f value | head -n1': '${vPUBNET}'"
     ewriteln "export TEMPEST_CUSTOM_PUBLIC_NET=${vPUBNET}"
 
     echo "# Extracting volume types"
diff --git a/k8s/workspace/update-openstack-resources.sh b/k8s/workspace/update-openstack-resources.sh
index 23f9c21..c8745d2 100644
--- a/k8s/workspace/update-openstack-resources.sh
+++ b/k8s/workspace/update-openstack-resources.sh
@@ -33,7 +33,6 @@
 subnetid=$(kubectl exec toolset --stdin -n qa-space -- openstack subnet list -f value | grep ${netid} | cut -d' ' -f1)
 echo "# image_ref_name -> ${cirros51_name}"
 sed -i "s/image_ref_name/${cirros51_name}/g" $MY_PROJFOLDER/yamls/tempest_custom.yaml
-image_ref_name
 echo "# image_ref_uuid -> ${cirros51_id}"
 sed -i "s/image_ref_uuid/${cirros51_id}/g" $MY_PROJFOLDER/yamls/tempest_custom.yaml
 echo "# image_ref_alt_uuid -> ${cirros52_id}"
diff --git a/scripts/cmp_check.sh b/scripts/cmp_check.sh
index 58e841f..4aa5598 100644
--- a/scripts/cmp_check.sh
+++ b/scripts/cmp_check.sh
@@ -5,6 +5,7 @@
 fill_mode=false
 zone=nova
 use_fqdn=false
+vm_name_prefix=cvp_test_vm_
 
 tmp_out=$(mktemp)
 trap "rm -f ${tmp_out}" EXIT
@@ -153,7 +154,7 @@
 function clean_cmp() {
    # #### Cleaning mode
    if [ $cleaning = true ]; then
-      vmname=vm_${1}
+      vmname=${vm_name_prefix}${1}
       vmid=( $(getid ${vmname}) )
       if [ ${#vmid[@]} -ne 0 ]; then
          [ ! "$silent" = true ] && echo "# ${1}: cleaning ${#vmid[@]} VMs"
@@ -267,7 +268,7 @@
    for node in ${cmp_nodes[@]}; do
       echo "# ${node}: checking"
       cname=$(echo ${node} | cut -d'.' -f1)
-      check_cmp_node ${node} vm_${cname}
+      check_cmp_node ${node} ${vm_name_prefix}${cname}
       echo "# ${node}: done"
    done
    errors
@@ -283,7 +284,7 @@
       counter=1
       while [[ $counter -lt ${vmcount}+1 ]]; do
          cname=$(echo ${node} | cut -d'.' -f1)
-         vmname_c=vm_${cname}_$(printf "%02d" ${counter})
+         vmname_c=${vm_name_prefix}${cname}_$(printf "%02d" ${counter})
          [ ! "$silent" = true ] && echo "# ${node}: creating ${vmname_c}"
          vm_create ${node} ${vmname_c}
          cmp_stats ${node}
