Branch 'tg2merge' - server2/mirrormanager
by Pierre-YvesChibon
server2/mirrormanager/config/app_cfg.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 22d9f97f38ada0661a18c5d9a755c667698d40df
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Wed Nov 30 17:41:10 2011 +0100
Let's rely on python-fedora-turbogears2 rather than python-fedora-turbogears
diff --git a/server2/mirrormanager/config/app_cfg.py b/server2/mirrormanager/config/app_cfg.py
index c532311..2d3b231 100644
--- a/server2/mirrormanager/config/app_cfg.py
+++ b/server2/mirrormanager/config/app_cfg.py
@@ -17,9 +17,9 @@ from tg.configuration import AppConfig
import mirrormanager
from mirrormanager import model
-from mirrormanager.lib import app_globals, helpers
+from mirrormanager.lib import app_globals, helpers
-from fedora.tg.tg2utils import add_fas_auth_middleware
+from fedora.tg2.utils import add_fas_auth_middleware
class MyAppConfig(AppConfig):
add_auth_middleware = add_fas_auth_middleware
12 years, 4 months
Branch 'v1.3' - 3 commits - server/mirrormanager
by Matt Domsch
server/mirrormanager/controllers.py | 23 ++++++++++++++++++++---
server/mirrormanager/lib.py | 21 +++++++++++++++++++++
server/mirrormanager/mirrorlist.py | 18 +-----------------
3 files changed, 42 insertions(+), 20 deletions(-)
New commits:
commit 5c486ec9f915f9c0b87aa85b245de5fa95282581
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Fri Nov 25 22:39:48 2011 -0600
validate value passed as a netblock resolves to at least one IP address
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index f48b56e..9eb0c5d 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -676,7 +676,10 @@ class HostNetblockController(HostListitemController):
raise InvalidData, emsg
except ValueError:
# also accept DNS hostnames
- pass
+ emsg = "Error: host names must resolve to at least one IP address"
+ ips = name_to_ips(kwargs['netblock'])
+ if len(ips) == 0:
+ raise InvalidData, emsg
HostNetblock(host=host, netblock=kwargs['netblock'])
commit 0e8b90a5dc8c36b855cccc2b82e78d69edaebfd4
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Fri Nov 25 22:33:58 2011 -0600
validate string passed for rsync ACL is an IP address or valid hostname
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index 3f5bd85..f48b56e 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -20,7 +20,7 @@ from fedora.tg.controllers import logout as fc_logout
import mirrormanager.model
from mirrormanager import my_validators
from mirrormanager.model import *
-from mirrormanager.lib import createErrorString
+from mirrormanager.lib import createErrorString, name_to_ips
import IPy
IPy.check_addr_prefixlen = 0
@@ -627,7 +627,21 @@ class HostAclIPController(HostListitemController):
return dict(values=v, host=v.host)
def do_create(self, host, kwargs):
- HostAclIp(host=host, ip=kwargs['ip'])
+ emesg = 'Error: value must be a single IP address or DNS name that resolves to at most one IPv4 and one IPv6 address.'
+ passed_value = kwargs['ip']
+
+ try:
+ ip = IPy.IP(passed_value)
+ if ip.len() > 1:
+ raise InvalidData, emsg
+ except ValueError:
+ ips = name_to_ips(passed_value)
+ if len(ips) == 0:
+ raise InvalidData, emsg
+ elif len(ips) > 2: # allow one IPv4 and one IPv6 resolved address
+ raise InvalidData, emsg
+
+ HostAclIp(host=host, passed_value)
commit 05f4fe22803ee57f20fa881e84686b55254af074
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Fri Nov 25 22:33:19 2011 -0600
move name_to_ips into lib.py
diff --git a/server/mirrormanager/lib.py b/server/mirrormanager/lib.py
index 8c75cbd..ea3882d 100644
--- a/server/mirrormanager/lib.py
+++ b/server/mirrormanager/lib.py
@@ -1,4 +1,7 @@
import types, os
+import dns.resolver
+from dns.resolver import NoAnswer
+from IPy import IP
def createErrorString(tg_errors):
"""
@@ -67,3 +70,21 @@ def manage_pidfile(pidfile):
if err.errno == 3: # No such process
return write_pidfile(pidfile, pid)
return 1
+
+def name_to_ips(name):
+ result=[]
+ recordtypes=('A', 'AAAA')
+ for r in recordtypes:
+ try:
+ records = dns.resolver.query(name, r)
+ for rdata in records:
+ try:
+ ip = IP(str(rdata))
+ result.append(ip)
+ except ValueError:
+ raise
+ except NoAnswer:
+ pass
+ except:
+ raise
+ return result
diff --git a/server/mirrormanager/mirrorlist.py b/server/mirrormanager/mirrorlist.py
index e3fd2a0..88b5dcf 100644
--- a/server/mirrormanager/mirrorlist.py
+++ b/server/mirrormanager/mirrorlist.py
@@ -1,8 +1,8 @@
from mirrormanager.model import Directory, Host, RepositoryRedirect, CountryContinentRedirect, Repository, HostCategoryUrl
+from mirrormanager.lib import name_to_ips
from IPy import IP
import sha
import pprint
-import dns.resolver
# key is directoryname
mirrorlist_cache = {}
@@ -152,22 +152,6 @@ def populate_directory_cache():
global mirrorlist_cache
mirrorlist_cache = shrink(cache)
-def name_to_ips(name):
- result=[]
- recordtypes=('A', 'AAAA')
- for r in recordtypes:
- try:
- records = dns.resolver.query(name, r)
- for rdata in records:
- try:
- ip = IP(str(rdata))
- result.append(ip)
- except:
- continue
- except:
- continue
- return result
-
def populate_netblock_cache():
cache = {}
for host in Host.select():
12 years, 4 months
Branch 'v1.3' - .gitignore
by Matt Domsch
.gitignore | 7 +++++++
1 file changed, 7 insertions(+)
New commits:
commit f4a668d6a768b8e4c5c86db7df080738ea635823
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Thu Nov 17 23:05:16 2011 -0600
add .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0f0e132
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+*~
+*.pyc
+mirrormanager.spec
+server/mirrormanager/release.py
+server/mirrormanager.egg-info/
+dist/
+mirrorlist-server/mirrormanager_version.py
12 years, 5 months
Branch 'v1.3' - server/update-master-directory-list
by Matt Domsch
server/update-master-directory-list | 35 -----------------------------------
1 file changed, 35 deletions(-)
New commits:
commit 2332117ad050476bea6bc65ffb0691a0a670b1a4
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Thu Nov 17 23:02:11 2011 -0600
delete unused code from umdl
diff --git a/server/update-master-directory-list b/server/update-master-directory-list
index b39ec25..71b7e75 100755
--- a/server/update-master-directory-list
+++ b/server/update-master-directory-list
@@ -24,25 +24,6 @@ from turbogears.database import PackageHub
hub = PackageHub("mirrormanager")
__connection__ = hub
-def trim_os_from_dirname(dirname):
- # trim the /os off the name
- index = dirname.rfind('/os')
- if index > 0:
- dirname = dirname[:index]
- return dirname
-
-def rename_SRPMS_source(l):
- rc = []
- for i in l:
- if i == 'source':
- pass
- elif i == 'SRPMS':
- rc.append('source')
- else:
- rc.append(i)
- return rc
-
-
def _get_version_from_path(path):
s = r'/(([\.\d]+)(\-\w+)?)/'
m = re.search(re.compile(s), path)
@@ -196,17 +177,6 @@ def make_repomd_file_details(dir):
timestamp=timestamp, size=size)
-def move_repository_from_development(prefix, arch, newdir):
- try:
- repo = Repository.selectBy(prefix=prefix, arch=arch)[0]
- except:
- return None
-
- if repo.directory is not None and newdir.name is not None:
- if '/development' in repo.directory.name and '/releases' in newdir.name:
- repo.directory = newdir
- return repo
-
def make_repository(dir, category):
repo = None
path = dir.name[len(category.topdir.name)+1:]
@@ -224,11 +194,6 @@ def make_repository(dir, category):
# which can't conflict.
repo = Repository(name=dir.name, category=category, version=ver, arch=arch, directory=dir, prefix=prefix)
except:
- # repo exists, but it may be one we want to move
- #try:
- #repo = move_repository_from_development(prefix, arch, dir)
- #except:
- #pass
pass
return repo
12 years, 5 months
Branch 'v1.3' - 2 commits - Makefile mirrorlist-server/mirrorlist_server.py server/mirrormanager
by Matt Domsch
Makefile | 6 +++++-
mirrorlist-server/mirrorlist_server.py | 7 ++++++-
server/mirrormanager/hostconfig.py | 4 ++--
server/mirrormanager/model.py | 10 +++++++---
server/mirrormanager/xmlrpc.py | 4 ++--
5 files changed, 22 insertions(+), 9 deletions(-)
New commits:
commit cd11efdce0e5b50b7cffd41cc5057f831e602968
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Thu Nov 17 22:47:59 2011 -0600
report_mirror prints an error if no paths match
https://fedorahosted.org/mirrormanager/ticket/37
diff --git a/server/mirrormanager/hostconfig.py b/server/mirrormanager/hostconfig.py
index 49fc14e..8ffcf88 100644
--- a/server/mirrormanager/hostconfig.py
+++ b/server/mirrormanager/hostconfig.py
@@ -70,5 +70,5 @@ def read_host_config(config):
if h.count() != 1:
return (None, 'Config file host name for site not found.\n')
host = h[0]
- message = host.checkin(config)
- return (True, message)
+ rc, message = host.checkin(config)
+ return (rc, message)
diff --git a/server/mirrormanager/model.py b/server/mirrormanager/model.py
index 34c92fb..af9f932 100644
--- a/server/mirrormanager/model.py
+++ b/server/mirrormanager/model.py
@@ -211,6 +211,7 @@ class Host(SQLObject):
def _uploaded_config(self, config):
+ rc = True
message = ''
def _config_categories(config):
@@ -290,9 +291,12 @@ class Host(SQLObject):
deleted += 1
message += "Category %s directories updated: %s added: %s deleted %s\n" % (category.name, marked_up2date, added, deleted)
+ if (marked_up2date == 0 and deleted == 0 and added == 0):
+ message += u'Error: Report did not include any known directories for this category. Please check the path= values in report_mirror.conf.\n'
+ rc = False
hc.sync()
- return message
+ return rc, message
def is_admin_active(self):
@@ -313,10 +317,10 @@ class Host(SQLObject):
self.lastCheckedIn = datetime.utcnow()
def checkin(self, config):
- message = self._uploaded_config(config)
+ rc, message = self._uploaded_config(config)
self.config = config
self.sync()
- return message
+ return rc, message
def has_category(self, cname):
return HostCategory.selectBy(host=self, category=Category.byName(cname)).count() > 0
diff --git a/server/mirrormanager/xmlrpc.py b/server/mirrormanager/xmlrpc.py
index 989b404..e5db380 100644
--- a/server/mirrormanager/xmlrpc.py
+++ b/server/mirrormanager/xmlrpc.py
@@ -12,8 +12,8 @@ class XmlrpcController(controllers.Controller):
@expose()
def checkin(self, p):
config = pickle.loads(bz2.decompress(base64.urlsafe_b64decode(p)))
- r, message = read_host_config(config)
- if r is not None:
+ rc, message = read_host_config(config)
+ if rc == True:
return message + 'checked in successful'
else:
return message + 'error checking in'
commit a283e0a4471d3e9f197abd8e838cdd5c5c8675e2
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Thu Nov 17 22:25:57 2011 -0600
report version in metalink
fixes https://bugzilla.redhat.com/show_bug.cgi?id=701047
diff --git a/Makefile b/Makefile
index 694d519..3f65f9f 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ RELEASE_STRING := $(RELEASE_NAME)-$(RELEASE_VERSION)
SPEC=mirrormanager.spec
RELEASE_PY=server/mirrormanager/release.py
+VERSION_PY=mirrorlist-server/mirrormanager_version.py
TARBALL=dist/$(RELEASE_STRING).tar.bz2
STARTSCRIPT=server/start-mirrormanager
PROGRAMDIR=/usr/share/mirrormanager/server
@@ -27,7 +28,10 @@ $(SPEC):
$(RELEASE_PY):
sed -e 's/##VERSION##/$(RELEASE_VERSION)/' $(RELEASE_PY).in > $(RELEASE_PY)
-prep: $(SPEC) $(RELEASE_PY)
+$(VERSION_PY):
+ echo "mirrormanager_version = u'$(RELEASE_VERSION)'" > $(VERSION_PY)
+
+prep: $(SPEC) $(RELEASE_PY) $(VERSION_PY)
pushd server ;\
python setup.py egg_info
echo 'db_module=mirrormanager.model' > server/mirrormanager.egg-info/sqlobject.txt
diff --git a/mirrorlist-server/mirrorlist_server.py b/mirrorlist-server/mirrorlist_server.py
index fd9f8c6..151d258 100755
--- a/mirrorlist-server/mirrorlist_server.py
+++ b/mirrorlist-server/mirrorlist_server.py
@@ -16,6 +16,11 @@ from IPy import IP
import GeoIP
from weighted_shuffle import weighted_shuffle
+try:
+ from mirrormanager_version import mirrormanager_version
+except:
+ mirrormanager_version=u'dev'
+
# can be overridden on the command line
socketfile = '/var/run/mirrormanager/mirrorlist_server.sock'
cachefile = '/var/lib/mirrormanager/mirrorlist_cache.pkl'
@@ -101,7 +106,7 @@ def metalink_header():
doc += '<metalink version="3.0" xmlns="http://www.metalinker.org/"'
doc += ' type="dynamic"'
doc += ' pubdate="%s"' % pubdate
- doc += ' generator="mirrormanager"'
+ doc += ' generator="mirrormanager/%s"' % mirrormanager_version
doc += ' xmlns:mm0="http://fedorahosted.org/mirrormanager"'
doc += '>\n'
return doc
12 years, 5 months
Branch 'v1.3' - server/mirrormanager
by Matt Domsch
server/mirrormanager/repomap.py | 10 ++++++++++
1 file changed, 10 insertions(+)
New commits:
commit 92e533f6064d7652e6bf9769fe468709ba6867b3
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 15 22:37:44 2011 -0600
repomap: add CentOS repository prefixes
diff --git a/server/mirrormanager/repomap.py b/server/mirrormanager/repomap.py
index 27665b6..99b10ef 100644
--- a/server/mirrormanager/repomap.py
+++ b/server/mirrormanager/repomap.py
@@ -93,6 +93,7 @@ def repo_prefix(path, category, ver):
isRrpmfusionNonfreeFedora = (category.name == u'RPMFUSION nonfree Fedora')
isRhel = (category.name == u'RHEL')
+ isCentOS = (category.product and category.product.name == u'CentOS' and category.name == u'Releases')
version = u'unknown'
if not isRawhide and ver is not None:
@@ -367,4 +368,13 @@ def repo_prefix(path, category, ver):
if prefix and isBeta:
prefix = u'%s-beta' % prefix
+ elif isCentOS:
+ prefixes = (u'addons', u'centosplus', u'contrib', u'cr',
+ u'csgfs', u'extras', u'fasttrack', u'os',
+ u'testing', u'updates')
+ for p in prefixes:
+ if u'/%s/' % p in path:
+ prefix = u'%s-%s' % (p, version)
+ break
+
return prefix
12 years, 5 months
Branch 'v1.3' - mirrorlist-server/mirrorlist_client.wsgi
by Matt Domsch
mirrorlist-server/mirrorlist_client.wsgi | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
New commits:
commit 25e9654d10ebf812b12d76f6dc255124e6ec47f9
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 15 21:42:39 2011 -0600
mirrorlist: handle CentOS query string format
diff --git a/mirrorlist-server/mirrorlist_client.wsgi b/mirrorlist-server/mirrorlist_client.wsgi
index b009d3b..97c2c81 100755
--- a/mirrorlist-server/mirrorlist_client.wsgi
+++ b/mirrorlist-server/mirrorlist_client.wsgi
@@ -70,7 +70,7 @@ def real_client_ip(xforwardedfor):
return xforwardedfor.split(',')[-1].strip()
def request_setup(environ, request):
- fields = ['repo', 'arch', 'country', 'path', 'netblock']
+ fields = ['repo', 'arch', 'country', 'path', 'netblock', 'release']
d = {}
request_data = request.GET
for f in fields:
@@ -98,6 +98,13 @@ def request_setup(environ, request):
if scriptname == '/metalink' or pathinfo == '/metalink':
d['metalink'] = True
+ # CentOS query string includes release=6&arch=x86_64&repo=os
+ # convert that to repo=os-6&arch=x86_64
+ if 'release' in d:
+ if 'repo' in d:
+ d['repo'] = d['repo'] + '-' + d['release']
+ del d['release']
+
for k, v in d.iteritems():
try:
d[k] = unicode(v, 'utf8', 'replace')
12 years, 5 months
Branch 'v1.3' - 2 commits - server/dev.cfg server/mirrormanager
by Matt Domsch
server/dev.cfg | 2
server/mirrormanager/controllers.py | 99 +++++++++++++++---------------
server/mirrormanager/templates/static.kid | 2
3 files changed, 53 insertions(+), 50 deletions(-)
New commits:
commit ffd9042206b829b569e9851f7952b6a666315be9
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 15 21:32:13 2011 -0600
add support for branded css
diff --git a/server/dev.cfg b/server/dev.cfg
index eeeb047..780b482 100644
--- a/server/dev.cfg
+++ b/server/dev.cfg
@@ -7,6 +7,7 @@
#mirrormanager.cssroot = "https://lisas.de/mirrormanager/static/css/"
#mirrormanager.copyright = "rpmfusion"
#mirrormanager.upstream = "rsync://download1.rpmfusion.org/rpmfusion/"
+#mirrormanager.branded_css = "rpmfusion.css"
#mirrormanager.branded_templates = "mirrormanager.templates.rpmfusion"
#mirrormanager.max_ipv4_netblock_size = '/16'
#mirrormanager.max_ipv6_netblock_size = '/32'
diff --git a/server/mirrormanager/templates/static.kid b/server/mirrormanager/templates/static.kid
index 46c4dc4..b61f772 100644
--- a/server/mirrormanager/templates/static.kid
+++ b/server/mirrormanager/templates/static.kid
@@ -5,7 +5,7 @@
<meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
<title>MirrorManager</title>
<link rel="stylesheet" type="text/css" media="all"
- py:attrs="{'href': tg.config('mirrormanager.cssroot', '/mirrormanager/static/css/') + 'fedora.css'}"/>
+ py:attrs="{'href': tg.config('mirrormanager.cssroot', '/mirrormanager/static/css/') + tg.config('mirrormanager.branded_css', 'fedora.css')}"/>
<link rel="stylesheet" type="text/css" media="all"
py:attrs="{'href': tg.config('mirrormanager.cssroot', '/mirrormanager/static/css/') + 'main.css'}"/>
<link rel="stylesheet" type="text/css" media="all"
commit 5e016a4fc1d7b1d42b0baf553002cb1cd63920c1
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 15 21:28:31 2011 -0600
add support for branded templates
diff --git a/server/dev.cfg b/server/dev.cfg
index 962453d..eeeb047 100644
--- a/server/dev.cfg
+++ b/server/dev.cfg
@@ -7,6 +7,7 @@
#mirrormanager.cssroot = "https://lisas.de/mirrormanager/static/css/"
#mirrormanager.copyright = "rpmfusion"
#mirrormanager.upstream = "rsync://download1.rpmfusion.org/rpmfusion/"
+#mirrormanager.branded_templates = "mirrormanager.templates.rpmfusion"
#mirrormanager.max_ipv4_netblock_size = '/16'
#mirrormanager.max_ipv6_netblock_size = '/32'
#mirrormanager.report_problems_to_email = 'mirror-admin at fedoraproject.org'
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index e0f7fd9..3f5bd85 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -4,6 +4,7 @@ import cherrypy
from turbogears import config
admin_group = config.get('mirrormanager.admin_group', 'sysadmin')
+branded_templates = config.get('mirrormanager.branded_templates', 'mirrormanager.templates')
import turbogears
from turbogears import controllers, expose, validate, redirect, widgets
@@ -105,18 +106,18 @@ class SiteController(controllers.Controller, identity.SecureResource, content):
site = Site.get(id)
return dict(values=site, disabled_fields=self.disabled_fields(site=site))
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
def read(self, site):
downstream_siteadmin_check(site, identity)
submit_action = "/site/%s/update" % site.id
return dict(form=site_form, values=site, action=submit_action, disabled_fields=self.disabled_fields(site=site))
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
def new(self, **kwargs):
submit_action = "/site/0/create"
return dict(form=site_form, values=None, action=submit_action, disabled_fields=self.disabled_fields())
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
@validate(form=site_form)
@error_handler(new)
def create(self, tg_errors=None, **kwargs):
@@ -138,7 +139,7 @@ class SiteController(controllers.Controller, identity.SecureResource, content):
turbogears.flash("Site created.")
raise turbogears.redirect("/site/%s" % site.id)
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
@validate(form=site_form)
@error_handler()
def update(self, site, tg_errors=None, **kwargs):
@@ -157,13 +158,13 @@ class SiteController(controllers.Controller, identity.SecureResource, content):
turbogears.flash("Site Updated")
raise turbogears.redirect("/site/%s" % site.id)
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
def delete(self, site, **kwargs):
siteadmin_check(site, identity)
site.destroySelf()
raise turbogears.redirect("/")
- @expose(template="mirrormanager.templates.site")
+ @expose(template=branded_templates+".site")
def s2s_delete(self, site, **kwargs):
siteadmin_check(site, identity)
dsite = Site.get(kwargs['dsite'])
@@ -187,7 +188,7 @@ class SiteAdminController(controllers.Controller, identity.SecureResource, conte
v = SiteAdmin.get(id)
return dict(values=v, site=v.site, page_title="Site Admin")
- @expose(template="mirrormanager.templates.boringsiteform")
+ @expose(template=branded_templates+".boringsiteform")
def new(self, **kwargs):
siteid=kwargs['siteid']
try:
@@ -199,7 +200,7 @@ class SiteAdminController(controllers.Controller, identity.SecureResource, conte
submit_action = "/siteadmin/0/create?siteid=%s" % siteid
return dict(form=siteadmin_form, values=None, action=submit_action, page_title="New Site Admin", site=site)
- @expose(template="mirrormanager.templates.boringsiteform")
+ @expose(template=branded_templates+".boringsiteform")
@error_handler(new)
@validate(form=siteadmin_form)
def create(self, **kwargs):
@@ -223,7 +224,7 @@ class SiteAdminController(controllers.Controller, identity.SecureResource, conte
turbogears.flash("SiteAdmin created.")
raise turbogears.redirect("/site/%s" % siteid)
- @expose(template="mirrormanager.templates.boringsiteform")
+ @expose(template=branded_templates+".boringsiteform")
def delete(self, siteadmin, **kwargs):
site = siteadmin.my_site()
siteadmin_check(site, identity)
@@ -251,7 +252,7 @@ class SiteToSiteController(controllers.Controller, identity.SecureResource, cont
v = SiteToSite.get(id)
return dict(values=v, site=v.upstream_site)
- @expose(template="mirrormanager.templates.boringsiteform")
+ @expose(template=branded_templates+".boringsiteform")
def new(self, **kwargs):
siteid=kwargs['siteid']
try:
@@ -339,7 +340,7 @@ class HostController(controllers.Controller, identity.SecureResource, content):
host = Host.get(id)
return dict(values=host)
- @expose(template="mirrormanager.templates.host")
+ @expose(template=branded_templates+".host")
def new(self, **kwargs):
try:
siteid=kwargs['siteid']
@@ -350,7 +351,7 @@ class HostController(controllers.Controller, identity.SecureResource, content):
return dict(form=host_form, values=None, action=submit_action, disabled_fields=self.disabled_fields(),
page_title="Create Host", site=Site.get(siteid))
- @expose(template="mirrormanager.templates.host")
+ @expose(template=branded_templates+".host")
@validate(form=host_form)
@error_handler(new)
def create(self, siteid=None, tg_errors=None, **kwargs):
@@ -377,14 +378,14 @@ class HostController(controllers.Controller, identity.SecureResource, content):
raise turbogears.redirect("/host/%s" % host.id)
- @expose(template="mirrormanager.templates.host")
+ @expose(template=branded_templates+".host")
def read(self, host):
downstream_siteadmin_check(host.my_site(), identity)
submit_action = "/host/%s/update" % host.id
return dict(form=host_form, values=host, action=submit_action,
disabled_fields=self.disabled_fields(host=host), page_title="Host", site=host.site)
- @expose(template="mirrormanager.templates.host")
+ @expose(template=branded_templates+".host")
@validate(form=host_form)
@error_handler()
def update(self, host, tg_errors=None, **kwargs):
@@ -473,7 +474,7 @@ class HostCategoryController(controllers.Controller, identity.SecureResource, co
hc = HostCategory.get(id)
return dict(values=hc)
- @expose(template="mirrormanager.templates.hostcategory")
+ @expose(template=branded_templates+".hostcategory")
def new(self, **kwargs):
try:
@@ -486,14 +487,14 @@ class HostCategoryController(controllers.Controller, identity.SecureResource, co
return dict(form=host_category_form_new, values=None, action=submit_action, disabled_fields=self.disabled_fields(), host=host)
- @expose(template="mirrormanager.templates.hostcategory")
+ @expose(template=branded_templates+".hostcategory")
def read(self, hostcategory):
downstream_siteadmin_check(hostcategory.my_site(), identity)
submit_action = "/host_category/%s/update" % hostcategory.id
disabled_fields=self.disabled_fields()
return dict(form=host_category_form_read, values=hostcategory, action=submit_action, disabled_fields=self.disabled_fields(), host=hostcategory.host)
- @expose(template="mirrormanager.templates.hostcategory")
+ @expose(template=branded_templates+".hostcategory")
@validate(form=host_category_form_new)
@error_handler(new)
def create(self, **kwargs):
@@ -526,7 +527,7 @@ class HostCategoryController(controllers.Controller, identity.SecureResource, co
raise turbogears.redirect("/host_category/%s" % hostcategory.id)
- @expose(template="mirrormanager.templates.hostcategory")
+ @expose(template=branded_templates+".hostcategory")
@validate(form=host_category_form_read)
@error_handler()
def update(self, hostcategory, tg_errors=None, **kwargs):
@@ -545,7 +546,7 @@ class HostCategoryController(controllers.Controller, identity.SecureResource, co
turbogears.flash("HostCategory Updated")
raise turbogears.redirect("/")
- @expose(template="mirrormanager.templates.hostcategory")
+ @expose(template=branded_templates+".hostcategory")
def delete(self, hostcategory, **kwargs):
siteadmin_check(hostcategory.my_site(), identity)
hostid = hostcategory.host.id
@@ -561,7 +562,7 @@ class HostListitemController(controllers.Controller, identity.SecureResource, co
def get(self, id):
return self.do_get(id)
- @expose(template="mirrormanager.templates.boringhostform")
+ @expose(template=branded_templates+".boringhostform")
def new(self, **kwargs):
try:
hostid=kwargs['hostid']
@@ -573,7 +574,7 @@ class HostListitemController(controllers.Controller, identity.SecureResource, co
submit_action = "%s/0/create?hostid=%s" % (self.submit_action_prefix, hostid)
return dict(form=self.form, values=None, action=submit_action, page_title=self.page_title, host=host)
- @expose(template="mirrormanager.templates.boringhostform")
+ @expose(template=branded_templates+".boringhostform")
@validate(form=form)
@error_handler(new)
def create(self, **kwargs):
@@ -601,7 +602,7 @@ class HostListitemController(controllers.Controller, identity.SecureResource, co
raise turbogears.redirect("/host/%s" % host.id)
- @expose(template="mirrormanager.templates.boringhostform")
+ @expose(template=branded_templates+".boringhostform")
def delete(self, thing, **kwargs):
host = thing.host
siteadmin_check(host.my_site(), identity)
@@ -705,7 +706,7 @@ class HostCategoryUrlController(controllers.Controller, identity.SecureResource,
v = HostCategoryUrl.get(id)
return dict(values=v, host_category=v.host_category)
- @expose(template="mirrormanager.templates.hostcategoryurl")
+ @expose(template=branded_templates+".hostcategoryurl")
def new(self, **kwargs):
try:
hcid=kwargs['hcid']
@@ -719,7 +720,7 @@ class HostCategoryUrlController(controllers.Controller, identity.SecureResource,
submit_action = "/host_category_url/0/create?hcid=%s" % hcid
return dict(form=self.form, values=None, action=submit_action, page_title=self.page_title, host_category=host_category)
- @expose(template="mirrormanager.templates.hostcategoryurl")
+ @expose(template=branded_templates+".hostcategoryurl")
@validate(form=form)
@error_handler(new)
def create(self, **kwargs):
@@ -765,13 +766,13 @@ class HostCategoryUrlController(controllers.Controller, identity.SecureResource,
turbogears.flash("Success: HostCategoryURL created.")
raise turbogears.redirect("/host_category/%s" % hcid)
- @expose(template="mirrormanager.templates.hostcategoryurl")
+ @expose(template=branded_templates+".hostcategoryurl")
def read(self, hcurl):
downstream_siteadmin_check(hcurl.my_site(), identity)
submit_action = "/host_category_url/%s/update" % hcurl.id
return dict(form=self.form, values=hcurl, action=submit_action, page_title=self.page_title, host_category=hcurl.host_category)
- @expose(template="mirrormanager.templates.hostcategoryurl")
+ @expose(template=branded_templates+".hostcategoryurl")
def update(self, hcurl, **kwargs):
siteadmin_check(hcurl.my_site(), identity)
if kwargs['url'].endswith('/'):
@@ -784,7 +785,7 @@ class HostCategoryUrlController(controllers.Controller, identity.SecureResource,
- @expose(template="mirrormanager.templates.hostcategoryurl")
+ @expose(template=branded_templates+".hostcategoryurl")
def delete(self, hcurl, **kwargs):
hc = hcurl.host_category
siteadmin_check(hcurl.my_site(), identity)
@@ -809,7 +810,7 @@ class SimpleDbObjectController(controllers.Controller, identity.SecureResource,
v = self.myClass.get(id)
return dict(values=v)
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
def new(self, **kwargs):
submit_action = "/%s/0/create" % self.url_prefix
@@ -824,7 +825,7 @@ class SimpleDbObjectController(controllers.Controller, identity.SecureResource,
turbogears.flash("Success: Object created.")
turbogears.redirect("/adminview")
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
def read(self, obj):
submit_action = "/%s/%s/update" % (self.url_prefix, obj.id)
return dict(form=self.form, values=obj, action=submit_action, page_title=self.page_title)
@@ -835,7 +836,7 @@ class SimpleDbObjectController(controllers.Controller, identity.SecureResource,
submit_action = "/%s/%s/update" % (self.url_prefix, obj.id)
return dict(form=self.form, values=obj, action=submit_action, page_title=self.page_title)
- @expose(template="mirrormanager.templates.boringdeleteform")
+ @expose(template=branded_templates+".boringdeleteform")
def delete(self, obj, **kwargs):
confirmed = kwargs.get('confirmed', None)
confirm_delete_form = widgets.TableForm(fields=ConfirmDeleteFields(), submit_text="Yes, really delete it!")
@@ -865,7 +866,7 @@ class ArchController(SimpleDbObjectController):
url_prefix="arch"
form = arch_form
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=arch_form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
@@ -887,7 +888,7 @@ class EmbargoedCountryController(SimpleDbObjectController):
url_prefix="embargoed_country"
form = embargoed_country_form
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=embargoed_country_form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
@@ -909,7 +910,7 @@ class ProductController(SimpleDbObjectController):
myClass = Product
url_prefix="product"
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=product_form)
@error_handler(SimpleDbObjectController.new)
def create(self, came_from='/', **kwargs):
@@ -935,14 +936,14 @@ class RepositoryController(SimpleDbObjectController):
myClass = Repository
url_prefix="repository"
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=repository_form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
return SimpleDbObjectController.create(self, **kwargs)
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=repository_form)
@error_handler(SimpleDbObjectController.new)
def update(self, obj, **kwargs):
@@ -973,7 +974,7 @@ class VersionController(SimpleDbObjectController):
url_prefix="version"
form = version_form
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
@@ -987,7 +988,7 @@ class VersionController(SimpleDbObjectController):
SimpleDbObjectController.create(self, product=product, **kwargs)
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler()
def update(self, obj, **kwargs):
@@ -1008,13 +1009,13 @@ class RepositoryRedirectController(SimpleDbObjectController):
url_prefix="repository_redirect"
form = repository_redirect_form
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
SimpleDbObjectController.create(self, **kwargs)
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler()
def update(self, obj, **kwargs):
@@ -1035,13 +1036,13 @@ class CountryContinentRedirectController(SimpleDbObjectController):
url_prefix="country_continent_redirect"
form = country_continent_redirect_form
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler(SimpleDbObjectController.new)
def create(self, **kwargs):
SimpleDbObjectController.create(self, **kwargs)
- @expose(template="mirrormanager.templates.boringform")
+ @expose(template=branded_templates+".boringform")
@validate(form=form)
@error_handler()
def update(self, obj, **kwargs):
@@ -1074,7 +1075,7 @@ class Root(controllers.RootController):
from mirrormanager.xmlrpc import XmlrpcController
xmlrpc = XmlrpcController()
- @expose(template="mirrormanager.templates.welcome")
+ @expose(template=branded_templates+".welcome")
@identity.require(identity.not_anonymous())
def index(self):
if admin_group in identity.current.groups:
@@ -1083,7 +1084,7 @@ class Root(controllers.RootController):
sites = user_sites(identity)
return {"sites":sites}
- @expose(template="mirrormanager.templates.help")
+ @expose(template=branded_templates+".help")
@identity.require(identity.not_anonymous())
def help(self):
if admin_group in identity.current.groups:
@@ -1092,7 +1093,7 @@ class Root(controllers.RootController):
sites = user_sites(identity)
return {}
- @expose(template="mirrormanager.templates.adminview")
+ @expose(template=branded_templates+".adminview")
@identity.require(identity.in_group(admin_group))
def adminview(self):
return {"sites":Site.select(orderBy='name'),
@@ -1108,7 +1109,7 @@ class Root(controllers.RootController):
"country_continent_redirects":CountryContinentRedirect.select(orderBy='country'),
}
- @expose(template="mirrormanager.templates.rsync_acl", format="plain", content_type="text/plain")
+ @expose(template=branded_templates+".rsync_acl", format="plain", content_type="text/plain")
def rsync_acl(self, **kwargs):
internet2_only=False
public_only=False
@@ -1120,14 +1121,14 @@ class Root(controllers.RootController):
result = rsync_acl_list(internet2_only=internet2_only, public_only=public_only)
return dict(values=result)
- @expose(template="mirrormanager.templates.rsync_acl", format="plain", content_type="text/plain", allow_json=True)
+ @expose(template=branded_templates+".rsync_acl", format="plain", content_type="text/plain", allow_json=True)
def mirroradmins(self, **kwargs):
if 'host' not in kwargs:
return dict(values=[])
host = kwargs['host']
return dict(values=host_siteadmins(host))
- @expose(template="mirrormanager.templates.rsyncFilter", format="plain", content_type="text/plain")
+ @expose(template=branded_templates+".rsyncFilter", format="plain", content_type="text/plain")
def rsyncFilter(self, **kwargs):
def parents(dir):
@@ -1183,7 +1184,7 @@ class Root(controllers.RootController):
includes[i] += u'/'
return dict(includes=includes, excludes=excludes, message=message)
- @expose(template="genshi:mirrormanager.templates.login", allow_json=True)
+ @expose(template="genshi:"+branded_templates+".login", allow_json=True)
def login(self, forward_url=None, previous_url=None, *args, **kw):
login_dict = fc_login(forward_url, previous_url, args, kw)
return login_dict
@@ -1192,7 +1193,7 @@ class Root(controllers.RootController):
def logout(self):
return fc_logout()
- @expose(template="mirrormanager.templates.register")
+ @expose(template=branded_templates+".register")
def register(self, username="", display_name="", email_address="", tg_errors=None):
if tg_errors:
turbogears.flash(createErrorString(tg_errors))
12 years, 5 months
Branch 'v1.3' - server/update-master-directory-list
by Matt Domsch
server/update-master-directory-list | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit 69b21452450cd795b2c603a487056c2bff8bbd42
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 15 16:06:16 2011 -0600
umdl: find right-most occurance of a string in the path
diff --git a/server/update-master-directory-list b/server/update-master-directory-list
index 5e08405..b39ec25 100755
--- a/server/update-master-directory-list
+++ b/server/update-master-directory-list
@@ -436,7 +436,8 @@ def sync_directories_from_directory(directory, cname, excludes=[]):
except OSError:
continue
- i = string.index(dirpath, topdirName)
+ # find the right-most occurance of topdirName in dirpath
+ i = string.rindex(dirpath, topdirName)
dname = dirpath[i:]
dname = dname.rstrip('/')
try:
12 years, 5 months
Branch 'v1.3' - server/mirrormanager
by Matt Domsch
server/mirrormanager/templates/adminview.kid | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 9fa065e6ab3f1be49b1c088957ff47caa99b0914
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Mon Nov 14 16:59:58 2011 -0600
typo
diff --git a/server/mirrormanager/templates/adminview.kid b/server/mirrormanager/templates/adminview.kid
index e7be89c..45e0528 100644
--- a/server/mirrormanager/templates/adminview.kid
+++ b/server/mirrormanager/templates/adminview.kid
@@ -77,7 +77,7 @@ Nothing to see here, move along.
</ul>
</div>
<div id="Embargoed Countries">
-<h3>Embargoed Counries</h3>
+<h3>Embargoed Countries</h3>
<a href="${tg.url('/embargoed_country/0/new')}">[Add]</a>
<ul>
<li py:for="cc in embargoed_countries">
12 years, 5 months