server/update-master-directory-list
by Matt Domsch
server/update-master-directory-list | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 446879ed78f6f256aec9b4614741429a6fb75509
Author: Adrian Reber <adrian(a)lisas.de>
Date: Fri Nov 20 08:01:50 2009 -0600
umdl: time.mktime() might return floats
diff --git a/server/update-master-directory-list b/server/update-master-directory-list
index b71e2dc..c69d694 100755
--- a/server/update-master-directory-list
+++ b/server/update-master-directory-list
@@ -239,7 +239,7 @@ def ctime_from_rsync(date, hms):
year, month, day = date.split('/')
hour, minute, second = hms.split(':')
t = datetime.datetime(int(year), int(month), int(day), int(hour), int(minute), int(second), 0, None)
- return time.mktime(t.timetuple())
+ return int(time.mktime(t.timetuple()))
def make_one_directory(line, category, path, category_directories):
14 years, 5 months
server/update-master-directory-list
by Matt Domsch
server/update-master-directory-list | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
New commits:
commit ea7f4b85926e72088e3d616638563e2fca6db2fc
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Tue Nov 17 17:02:14 2009 -0600
umdl: fix crash in _get_version_from_path()
Fixes this traceback when a dir does not have an identifyable version
in it, yet we're trying to make a repository for it. Unclear what dir
is causing this though.
Traceback (most recent call last):
File "./update-master-directory-list", line 485, in ?
sys.exit(main())
File "./update-master-directory-list", line 477, in main
sync_directories_from_directory(i['path'], i['category'],
excludes)
File "./update-master-directory-list", line 446, in
sync_directories_from_directory
sync_category_directories(category, category_directories)
File "./update-master-directory-list", line 339, in
sync_category_directories
make_repository(dir, category)
File "./update-master-directory-list", line 199, in make_repository
(ver, arch) = guess_ver_arch_from_path(category, path)
File "./update-master-directory-list", line 85, in
guess_ver_arch_from_path
ver = create_version_from_path(category, path)
File "./update-master-directory-list", line 53, in
create_version_from_path
vname = _get_version_from_path(path)
File "./update-master-directory-list", line 49, in
_get_version_from_path
return m.group(1)
AttributeError: 'NoneType' object has no attribute 'group'
diff --git a/server/update-master-directory-list b/server/update-master-directory-list
index 1582e82..b71e2dc 100755
--- a/server/update-master-directory-list
+++ b/server/update-master-directory-list
@@ -46,7 +46,9 @@ def rename_SRPMS_source(l):
def _get_version_from_path(path):
s = r'/(([\.\d]+)(\-\w+)?)/'
m = re.search(re.compile(s), path)
- return m.group(1)
+ if m is not None:
+ return m.group(1)
+ return None
def create_version_from_path(category, path):
ver = None
14 years, 5 months
server/mirrormanager
by Matt Domsch
server/mirrormanager/controllers.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 558ea5a78d3db83d71cc07b5bad2f5ba4cf46afc
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Mon Nov 16 23:51:36 2009 -0600
mirroradmins: always return empty list on failure
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index edb36dc..b87c93d 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -1119,7 +1119,7 @@ class Root(controllers.RootController):
@expose(template="mirrormanager.templates.rsync_acl", format="plain", content_type="text/plain", allow_json=True)
def mirroradmins(self, **kwargs):
if 'host' not in kwargs:
- return dict()
+ return dict(values=[])
host = kwargs['host']
return dict(values=host_siteadmins(host))
14 years, 5 months
server/mirrormanager
by Matt Domsch
server/mirrormanager/controllers.py | 7 +++++++
server/mirrormanager/model.py | 26 ++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
New commits:
commit e8d5868430ae70a91b264e9a563cadf9791700c2
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Mon Nov 16 23:19:49 2009 -0600
controllers: add mirroradmins query
Queries of the form:
mirroradmins?host=host.name.com
will return a list of usernames which administer the Site
containing the requested host (FQDN). Appending
&tg_format=json will return the list in json.
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index 3bf9560..edb36dc 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -1116,6 +1116,13 @@ 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)
+ def mirroradmins(self, **kwargs):
+ if 'host' not in kwargs:
+ return dict()
+ host = kwargs['host']
+ return dict(values=host_siteadmins(host))
+
@expose(template="mirrormanager.templates.rsyncFilter", format="plain", content_type="text/plain")
def rsyncFilter(self, **kwargs):
diff --git a/server/mirrormanager/model.py b/server/mirrormanager/model.py
index 635cb88..c7ff62f 100644
--- a/server/mirrormanager/model.py
+++ b/server/mirrormanager/model.py
@@ -828,6 +828,32 @@ class DirectoryExclusiveHost(SQLObject):
host = ForeignKey('Host')
idx = DatabaseIndex('directory', 'host', unique=True)
+def _host_siteadmins(url):
+ sql = 'SELECT DISTINCT site_admin.username FROM '
+ sql += 'host_category_url, host_category, host, site, site_admin WHERE '
+ # join conditions
+ sql += 'host_category_url.host_category_id = host_category.id AND '
+ sql += 'host_category.host_id = host.id AND '
+ sql += 'host.site_id = site.id AND '
+ sql += 'site_admin.site_id = site.id AND '
+ # query conditions
+ sql += "host_category_url.url = '" + url + "'"
+ qresult = Directory._connection.queryAll(sql)
+ result = [x[0] for x in qresult]
+ return result
+
+from urlparse import urlsplit
+def host_siteadmins(host):
+ found = False
+ for hcurl in HostCategoryUrl.select():
+ scheme, netloc, path, query, fragment = urlsplit(hcurl.url)
+ if host == netloc:
+ found=True
+ break
+ if not found:
+ return []
+ return _host_siteadmins(hcurl.url)
+
###############################################################
# These classes are only used if you're not using the
# Fedora Account System or some other backend that provides
14 years, 5 months
server/update-master-directory-list
by Matt Domsch
server/update-master-directory-list | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 56baf4a7357587280dfbee178335ee2b6625e636
Author: Adrian Reber <adrian(a)lisas.de>
Date: Mon Nov 16 09:23:29 2009 -0600
umdl: fix failure when updating from rsync listings.
diff --git a/server/update-master-directory-list b/server/update-master-directory-list
index e564d4b..1582e82 100755
--- a/server/update-master-directory-list
+++ b/server/update-master-directory-list
@@ -258,13 +258,13 @@ def make_one_directory(line, category, path, category_directories):
except ValueError:
raise
ctime = ctime_from_rsync(date, hms)
- category_directories[dname] = {'files':{}, 'isRepository':False, 'readable':readable, 'ctime':ctime}
+ category_directories[dname] = {'files':{}, 'isRepository':False, 'readable':readable, 'ctime':ctime, 'changed':True}
if d.endswith('repodata'):
parent_dname = dname[:-len('/repodata')]
try:
category_directories[parent_dname]['isRepository'] = True
except KeyError:
- category_directories[parent_dname] = {'files':{}, 'isRepository':True, 'readable':readable, 'ctime':ctime}
+ category_directories[parent_dname] = {'files':{}, 'isRepository':True, 'readable':readable, 'ctime':ctime, 'changed':True}
return dname, category_directories
14 years, 5 months