@@ -1886,7 +1886,11 @@ function write_snapshots_database($vm,$name,$state,$desc,$method="QEMU") {
18861886 $ noxml = "" ;
18871887 $ snaps_json = file_get_contents ($ dbpath ."/snapshots.db " );
18881888 $ snaps = json_decode ($ snaps_json ,true );
1889- $ snapshot_res =$ lv ->domain_snapshot_lookup_by_name ($ vm ,$ name );
1889+ $ snapshot_xml = @file_get_contents ("/etc/libvirt/qemu/snapshot/ {$ vm }/ {$ name }.xml " );
1890+ if (empty ($ snapshot_xml )) {
1891+ $ snapshot_xml = trim (shell_exec ("virsh snapshot-dumpxml " .escapeshellarg ($ vm )." " .escapeshellarg ($ name )." 2>/dev/null " ));
1892+ }
1893+ $ snapshot_res = !empty ($ snapshot_xml );
18901894 if (!$ snapshot_res ) {
18911895 # Manual Snap no XML
18921896 if ($ state == "shutoff " && ($ method == "ZFS " || $ method == "BTRFS " )) {
@@ -1903,7 +1907,7 @@ function write_snapshots_database($vm,$name,$state,$desc,$method="QEMU") {
19031907 $ noxml = "noxml " ;
19041908 }
19051909 } else {
1906- $ snapshot_xml = $ lv -> domain_snapshot_get_xml ( $ snapshot_res );
1910+
19071911 $ a = simplexml_load_string ($ snapshot_xml );
19081912 $ a = json_encode ($ a );
19091913 $ b = json_decode ($ a , TRUE );
@@ -2133,7 +2137,9 @@ function vm_snapshot($vm,$snapshotname, $snapshotdescinput, $free = "yes", $meth
21332137 if ($ logging ) qemu_log ($ vm ,"Success write snap db " );
21342138 $ ret = write_snapshots_database ("$ vm " ,"$ name " ,$ state ,$ snapshotdescinput ,$ method );
21352139 #remove meta data
2136- if ($ ret != "noxml " ) $ ret = $ lv ->domain_snapshot_delete ($ vm , "$ name " ,2 );
2140+ if ($ ret != "noxml " ) {
2141+ exec ("virsh snapshot-delete " .escapeshellarg ($ vm )." " .escapeshellarg ($ name )." --metadata 2>&1 " , $ snapDelOut , $ snapDelRtn );
2142+ }
21372143 }
21382144 return $ arrResponse ;
21392145
0 commit comments