server2/mirrormanager/model/category.py | 6 +++++-
server2/mirrormanager/model/directory.py | 2 +-
server2/mirrormanager/model/directoryexclusivehost.py | 4 ++++
server2/mirrormanager/model/filedetail.py | 3 +++
server2/mirrormanager/model/host.py | 4 ++++
server2/mirrormanager/model/hostcategory.py | 2 +-
server2/mirrormanager/model/hostcategorydir.py | 4 ++++
server2/mirrormanager/model/hostcategoryurl.py | 3 +++
server2/mirrormanager/model/product.py | 2 +-
server2/mirrormanager/model/repository.py | 4 ++++
server2/mirrormanager/model/site.py | 7 +++----
server2/mirrormanager/model/siteadmin.py | 3 +++
server2/mirrormanager/model/sitetosite.py | 4 ++++
server2/mirrormanager/model/version.py | 3 +++
14 files changed, 43 insertions(+), 8 deletions(-)
New commits:
commit c5d2c6aac91a162a729bceeee6c274abfdfa7152
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Tue Sep 6 19:20:30 2011 +0200
Start porting deletion of items from SO to SA
Work on the destroySelf function
diff --git a/server2/mirrormanager/model/category.py
b/server2/mirrormanager/model/category.py
index a92476b..690ad0f 100644
--- a/server2/mirrormanager/model/category.py
+++ b/server2/mirrormanager/model/category.py
@@ -28,7 +28,7 @@ class Category(DeclarativeBase):
def destroySelf(self):
for hc in self.hostCategories:
hc.destroySelf()
- SQLObject.destroySelf(self)
+ DBSession.delete(self)
def directories_newer_than(self, since):
result = []
@@ -36,3 +36,7 @@ class Category(DeclarativeBase):
if d.ctime > since:
result.append(d.name)
return result
+
+ def select(self):
+ ''' Returns all values in the table '''
+ DBSession.query(self.__class__()).all()
diff --git a/server2/mirrormanager/model/directory.py
b/server2/mirrormanager/model/directory.py
index a88cea0..71eb8b3 100644
--- a/server2/mirrormanager/model/directory.py
+++ b/server2/mirrormanager/model/directory.py
@@ -41,4 +41,4 @@ class Directory(DeclarativeBase):
fd.destroySelf()
for eh in self.exclusive_hosts:
eh.destroySelf()
- SQLObject.destroySelf(self)
+ DBSession.delete(self)
diff --git a/server2/mirrormanager/model/directoryexclusivehost.py
b/server2/mirrormanager/model/directoryexclusivehost.py
index 389eeac..7a59a32 100644
--- a/server2/mirrormanager/model/directoryexclusivehost.py
+++ b/server2/mirrormanager/model/directoryexclusivehost.py
@@ -16,4 +16,8 @@ class DirectoryExclusiveHost(DeclarativeBase):
id = Column(Integer, primary_key=True)
directory = Column('directory_id', Integer,
ForeignKey("directory.id"))
host = Column('host_id', Integer, ForeignKey("host.id"))
+
+ def destroySelf(self):
+ DBSession.delete(self)
+
Index(DirectoryExclusiveHost.__tablename__+'_idx',
DirectoryExclusiveHost.directory, DirectoryExclusiveHost.host, unique=True)
diff --git a/server2/mirrormanager/model/filedetail.py
b/server2/mirrormanager/model/filedetail.py
index 77a803c..efda6d9 100644
--- a/server2/mirrormanager/model/filedetail.py
+++ b/server2/mirrormanager/model/filedetail.py
@@ -23,3 +23,6 @@ class FileDetail(DeclarativeBase):
md5 = Column(UnicodeText, default=None)
sha256 = Column(UnicodeText, default=None)
sha512 = Column(UnicodeText, default=None)
+
+ def destroySelf(self):
+ DBSession.delete(self)
diff --git a/server2/mirrormanager/model/host.py b/server2/mirrormanager/model/host.py
index 9fe9ea2..3c83d1c 100644
--- a/server2/mirrormanager/model/host.py
+++ b/server2/mirrormanager/model/host.py
@@ -40,4 +40,8 @@ class Host(DeclarativeBase):
#acl_ips = MultipleJoin('HostAclIp', orderBy='ip')
#categories = MultipleJoin('HostCategory')
#exclusive_dirs = MultipleJoin('DirectoryExclusiveHost')
+
+ def destroySelf(self):
+ DBSession.delete(self)
+
Index(Host.__tablename__+'_idx', Host.site, Host.name, unique=True)
diff --git a/server2/mirrormanager/model/hostcategory.py
b/server2/mirrormanager/model/hostcategory.py
index 1906d7d..bc180fb 100644
--- a/server2/mirrormanager/model/hostcategory.py
+++ b/server2/mirrormanager/model/hostcategory.py
@@ -34,6 +34,6 @@ class HostCategory(DeclarativeBase):
b.destroySelf()
for d in self.dirs:
d.destroySelf()
- SQLObject.destroySelf(self)
+ DBSession.delete(self)
Index(HostCategory.__tablename__+'_hcdindex', HostCategory.host,
HostCategory.category, unique=True)
diff --git a/server2/mirrormanager/model/hostcategorydir.py
b/server2/mirrormanager/model/hostcategorydir.py
index 2e47ae8..ab0e2aa 100644
--- a/server2/mirrormanager/model/hostcategorydir.py
+++ b/server2/mirrormanager/model/hostcategorydir.py
@@ -23,4 +23,8 @@ class HostCategoryDir(DeclarativeBase):
up2date = Column(Boolean, default=True)
files = Column(PickleType, default=None)
lastCrawled = Column('last_crawled', DateTime, default=None)
+
+ def destroySelf(self):
+ DBSession.delete(self)
+
Index(HostCategoryDir.__tablename__+'_hcdindex', HostCategoryDir.path,
HostCategoryDir.host_category, unique=True)
diff --git a/server2/mirrormanager/model/hostcategoryurl.py
b/server2/mirrormanager/model/hostcategoryurl.py
index 23ac94c..7791e8a 100644
--- a/server2/mirrormanager/model/hostcategoryurl.py
+++ b/server2/mirrormanager/model/hostcategoryurl.py
@@ -22,3 +22,6 @@ class HostCategoryUrl(DeclarativeBase):
def my_site(self):
return self.host_category.my_site()
+
+ def destroySelf(self):
+ DBSession.delete(self)
diff --git a/server2/mirrormanager/model/product.py
b/server2/mirrormanager/model/product.py
index 0d82220..049754a 100644
--- a/server2/mirrormanager/model/product.py
+++ b/server2/mirrormanager/model/product.py
@@ -23,4 +23,4 @@ class Product(DeclarativeBase):
v.destroySelf()
for c in self.categories:
c.destroySelf()
- SQLObject.destroySelf(self)
+ DBSession.delete(self)
diff --git a/server2/mirrormanager/model/repository.py
b/server2/mirrormanager/model/repository.py
index fd2fa79..eddfc8e 100644
--- a/server2/mirrormanager/model/repository.py
+++ b/server2/mirrormanager/model/repository.py
@@ -21,4 +21,8 @@ class Repository(DeclarativeBase):
arch = Column('arch_id', Integer, ForeignKey("arch.id"))
directory = Column('directory_id', Integer,
ForeignKey("directory.id"))
disabled = Column(Boolean, default=False)
+
+ def destroySelf(self):
+ DBSession.delete(self)
+
Index(Repository.__tablename__+'_idx', Repository.prefix, Repository.arch,
unique=True)
diff --git a/server2/mirrormanager/model/site.py b/server2/mirrormanager/model/site.py
index 3cdecc7..bf39e7e 100644
--- a/server2/mirrormanager/model/site.py
+++ b/server2/mirrormanager/model/site.py
@@ -37,10 +37,11 @@ class Site(DeclarativeBase):
h.destroySelf()
for a in self.admins:
a.destroySelf()
- for s in SiteToSite.select(OR(SiteToSite.q.upstream_siteID == self.id,
+ for s in DBSession.query(SiteToSite).filter(OR(
+ SiteToSite.q.upstream_siteID == self.id,
SiteToSite.q.downstream_siteID == self.id)):
s.destroySelf()
- SQLObject.destroySelf(self)
+ DBSession.delete(self)
def _get_downstream_sites(self):
if self.allSitesCanPullFromMe:
@@ -58,7 +59,6 @@ class Site(DeclarativeBase):
if site is not None:
SiteToSite(upstream_site=self, downstream_site=site)
-
def is_siteadmin_byname(self, name):
for a in DBSession.query(SiteAdmin).all():
if a.site == self.id and a.username == name:
@@ -72,7 +72,6 @@ class Site(DeclarativeBase):
return True
return self.is_siteadmin_byname(identity)
-
def is_downstream_siteadmin_byname(self, name):
#for d in self.downstream_sites:
#for a in d.admins:
diff --git a/server2/mirrormanager/model/siteadmin.py
b/server2/mirrormanager/model/siteadmin.py
index 7cf4edc..02b18cf 100644
--- a/server2/mirrormanager/model/siteadmin.py
+++ b/server2/mirrormanager/model/siteadmin.py
@@ -19,3 +19,6 @@ class SiteAdmin(DeclarativeBase):
def my_site(self):
return self.site
+
+ def destroySelf(self):
+ DBSession.delete(self)
diff --git a/server2/mirrormanager/model/sitetosite.py
b/server2/mirrormanager/model/sitetosite.py
index 9f496a4..1d9c53a 100644
--- a/server2/mirrormanager/model/sitetosite.py
+++ b/server2/mirrormanager/model/sitetosite.py
@@ -21,6 +21,10 @@ class SiteToSite(DeclarativeBase):
def my_site(self):
return self.upstream_site
+
+ def destroySelf(self):
+ DBSession.delete(self)
+
Index(SiteToSite.__tablename__+'_idx', SiteToSite.upstream_site,
SiteToSite.downstream_site, unique=True)
diff --git a/server2/mirrormanager/model/version.py
b/server2/mirrormanager/model/version.py
index 51c29fc..31d6648 100644
--- a/server2/mirrormanager/model/version.py
+++ b/server2/mirrormanager/model/version.py
@@ -20,3 +20,6 @@ class Version(DeclarativeBase):
display = Column(Boolean, default=True)
display_name = Column(UnicodeText, default=None)
ordered_mirrorlist = Column(Boolean, default=True)
+
+ def destroySelf(self):
+ DBSession.delete(self)