server/mirrormanager/controllers.py | 15 +++++++++++++++
server/mirrormanager/templates/adminview.kid | 11 +++++++++++
server/mirrormanager/zonecreator.py | 7 ++++++-
3 files changed, 32 insertions(+), 1 deletion(-)
New commits:
commit bbeacdde4972bdfa1a8079acf052a53a73449a0e
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Fri Jan 21 14:04:17 2011 -0600
report number of sites and hosts in adminview
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index b636b52..8f05356 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -1245,6 +1245,15 @@ class Root(controllers.RootController):
@expose(template="mirrormanager.templates.adminview")
@identity.require(identity.in_group(admin_group))
def adminview(self):
+ num_sites = Site.select().count()
+ num_private_sites = 0
+ for s in Site.select():
+ if site.private: num_private_sites = num_private_sites + 1
+ num_hosts = Host.select().count()
+ num_private_hosts = 0
+ for h in Host.select():
+ if h.is_private(): num_private_hosts = num_private_hosts + 1
+
return {"sites":Site.select(orderBy='name'),
"arches":Arch.select(),
"products":Product.select(),
@@ -1257,6 +1266,12 @@ class Root(controllers.RootController):
"repository_redirects":RepositoryRedirect.select(orderBy='fromRepo'),
"country_continent_redirects":CountryContinentRedirect.select(orderBy='country'),
"locations":Location.select(orderBy='name'),
+ "num_sites": num_sites,
+ "num_private_sites":num_private_sites,
+ "num_public_sites":(num_sites-num_private_sites)
+ "num_hosts":num_hosts,
+ "num_private_hosts":num_private_hosts,
+ "num_public_hosts":(num_hosts - num_private_hosts)
}
@expose(template="mirrormanager.templates.rsync_acl",
format="plain", content_type="text/plain")
diff --git a/server/mirrormanager/templates/adminview.kid
b/server/mirrormanager/templates/adminview.kid
index f75e054..089295a 100644
--- a/server/mirrormanager/templates/adminview.kid
+++ b/server/mirrormanager/templates/adminview.kid
@@ -16,6 +16,17 @@ Nothing to see here, move along.
<div id="adminview" py:if="admin_group in tg.identity.groups">
+<h3>Statistics</h3>
+<UL>
+ <LI>Sites: <span py:replace="num_sites"/> total
+ (<span py:replace="num_public_sites"/> public /
+ <span py:replace="num_private_sites"/> private) </LI>
+ <LI>Hosts: <span py:replace="num_hosts"/> total
+ (<span py:replace="num_public_hosts"/> public /
+ <span py:replace="num_private_hosts"/> private) </LI>
+</UL>
+
+
<div id="categories">
<h3>Categories <a
href="${tg.url('/category/new')}">[Add]</a></h3>
<ul>
diff --git a/server/mirrormanager/zonecreator.py b/server/mirrormanager/zonecreator.py
index 3abbe5c..96c2940 100644
--- a/server/mirrormanager/zonecreator.py
+++ b/server/mirrormanager/zonecreator.py
@@ -56,4 +56,9 @@ def writeZoneFiles(output_dir = default_output_dir):
generateZoneFile(output_dir)
-__all__ = ['writeZoneFiles']
+def zoneFilesIdentical(file1, file2):
+ z1 = dns.zone.from_file(file1)
+ z2 = dns.zone.from_file(file2)
+ return z1 == z2
+
+__all__ = ['writeZoneFiles', 'zoneFilesIdentical']
Show replies by date