Changeset 293 for trunk/DNSDB.pm
- Timestamp:
- 03/27/12 17:11:59 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r292 r293 1849 1849 # -> ... 1850 1850 my $failmsg = ''; 1851 my $resultmsg = ''; 1852 1853 # collect some pieces for logging and error messages 1854 my $groupname = groupName($dbh,$groupid); 1855 my $parid = parentID($dbh, (id => $groupid, type => 'group')); 1851 1856 1852 1857 # Wrap all the SQL in a transaction 1853 1858 eval { 1854 my $sth = $dbh->prepare("SELECT count(*) FROM domains WHERE group_id=?"); 1855 $sth->execute($groupid); 1856 my ($domcnt) = $sth->fetchrow_array; 1857 $failmsg = "Can't remove group ".groupName($dbh,$groupid); 1859 # Check for Things in the group 1860 $failmsg = "Can't remove group $groupname"; 1861 my ($grpcnt) = $dbh->selectrow_array("SELECT count(*) FROM groups WHERE parent_group_id=?", undef, ($groupid)); 1862 die "$grpcnt groups still in group\n" if $grpcnt; 1863 my ($domcnt) = $dbh->selectrow_array("SELECT count(*) FROM domains WHERE group_id=?", undef, ($groupid)); 1858 1864 die "$domcnt domains still in group\n" if $domcnt; 1859 1860 $sth = $dbh->prepare("delete from default_records where group_id=?"); 1861 $failmsg = "Failed to delete default records for ".groupName($dbh,$groupid); 1862 $sth->execute($groupid); 1863 $sth = $dbh->prepare("delete from groups where group_id=?"); 1864 $failmsg = "Failed to remove group ".groupName($dbh,$groupid); 1865 $sth->execute($groupid); 1865 my ($usercnt) = $dbh->selectrow_array("SELECT count(*) FROM users WHERE group_id=?", undef, ($groupid)); 1866 die "$usercnt users still in group\n" if $usercnt; 1867 1868 $failmsg = "Failed to delete default records for $groupname"; 1869 $dbh->do("DELETE from default_records WHERE group_id=?", undef, ($groupid)); 1870 $failmsg = "Failed to delete default reverse records for $groupname"; 1871 $dbh->do("DELETE from default_rev_records WHERE group_id=?", undef, ($groupid)); 1872 $failmsg = "Failed to remove group $groupname"; 1873 $dbh->do("DELETE from groups WHERE group_id=?", undef, ($groupid)); 1874 1875 _log($dbh, (group_id => $parid, entry => "Deleted group $groupname")); 1876 $resultmsg = "Deleted group $groupname"; 1866 1877 1867 1878 # once we get here, we should have suceeded. … … 1872 1883 my $msg = $@; 1873 1884 eval { $dbh->rollback; }; 1885 if ($config{log_failures}) { 1886 _log($dbh, (group_id => $parid, entry => "$failmsg: $msg")); 1887 $dbh->commit; # since we enabled transactions earlier 1888 } 1874 1889 return ('FAIL',"$failmsg: $msg"); 1875 } else {1876 return ('OK','OK'); 1877 }1890 } 1891 1892 return ('OK',$resultmsg); 1878 1893 } # end delGroup() 1879 1894
Note:
See TracChangeset
for help on using the changeset viewer.