Repository :
http://git.fedorahosted.org/cgit/
On branch : master
---------------------------------------------------------------
commit 1a5922b087dd03a84a8404a80cbbd37528e9361b
Merge: 82ebdfe 9b8611a
Author: Matt Domsch <Matt_Domsch(a)dell.com>
Date: Fri Dec 5 11:19:07 2014 -0600
Merge branch 'master' of
ssh+git://fedorahosted.org/git/mirrormanager
---------------------------------------------------------------
Makefile | 4 +-
client/report_mirror | 2 +-
mirrorlist-server/apache/mirrorlist-server.conf | 12 ++++++++
mirrormanager.spec.in | 4 ++
server/dev.cfg | 4 ++
server/mirrormanager/controllers.py | 6 ++--
server/mirrormanager/lib.py | 2 +-
server/mirrormanager/model.py | 17 ++++++++---
server/mirrormanager/repomap.py | 35 +++++++++++++++++++++++
server/prod.cfg.example | 3 ++
10 files changed, 77 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index 2fd533b..2a5e4fa 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
-RELEASE_DATE := "18-Dec-2013"
+RELEASE_DATE := "21-Jan-2014"
RELEASE_MAJOR := 1
RELEASE_MINOR := 4
-RELEASE_EXTRALEVEL := .3
+RELEASE_EXTRALEVEL := .4
RELEASE_NAME := mirrormanager
RELEASE_VERSION := $(RELEASE_MAJOR).$(RELEASE_MINOR)$(RELEASE_EXTRALEVEL)
RELEASE_STRING := $(RELEASE_NAME)-$(RELEASE_VERSION)
diff --git a/client/report_mirror b/client/report_mirror
index 00813be..fe64a93 100755
--- a/client/report_mirror
+++ b/client/report_mirror
@@ -290,7 +290,7 @@ def main():
print server.checkin(data)
except socket.error, m:
print "Error checking in: %s. Please try again later." %
(m[1])
- except ProtocolError:
+ except xmlrpclib.ProtocolError:
print "Error checking in: Service Temporarily Unavailable. Please
try again later."
sys.exit(1)
except xmlrpclib.Fault:
diff --git a/mirrorlist-server/apache/mirrorlist-server.conf
b/mirrorlist-server/apache/mirrorlist-server.conf
index 2858c63..9295787 100644
--- a/mirrorlist-server/apache/mirrorlist-server.conf
+++ b/mirrorlist-server/apache/mirrorlist-server.conf
@@ -40,3 +40,15 @@ WSGIScriptAlias /mirrorlist
/usr/share/mirrormanager/mirrorlist-server/mirrorlis
Allow from all
</IfModule>
</Location>
+
+<Location /publiclist>
+ <IfModule mod_authz_core.c>
+ # Apache 2.4
+ Require all granted
+ </IfModule>
+ <IfModule !mod_authz_core.c>
+ # Apache 2.2
+ Order deny,allow
+ Allow from all
+ </IfModule>
+</Location>
diff --git a/mirrormanager.spec.in b/mirrormanager.spec.in
index 6c70c11..b6cc80f 100644
--- a/mirrormanager.spec.in
+++ b/mirrormanager.spec.in
@@ -62,6 +62,7 @@ getent passwd mirrormanager >/dev/null || \
-c "MirrorManager" mirrormanager
exit 0
+
%files
%defattr(-,root,root,-)
%{_datadir}/%{name}
@@ -97,6 +98,9 @@ exit 0
%doc LICENSES LICENSE-GPLv2
%changelog
+* Tue Jan 21 2014 Matt Domsch <mdomsch(a)fedoraproject.org> - 1.4.4-1
+- upstream bugfix release
+
* Wed Dec 18 2013 Matt Domsch <mdomsch(a)fedoraproject.org> - 1.4.3-1
- upstream bugfix release
- Reduce Fedora-isms to make it more usable for other distributions
diff --git a/server/dev.cfg b/server/dev.cfg
index 6391da1..262a478 100644
--- a/server/dev.cfg
+++ b/server/dev.cfg
@@ -108,6 +108,10 @@
sqlobject.dburi="notrans_postgres://postgres@127.0.0.1/mirrormanager"
# for Windows users, sqlite URIs look like:
# sqlobject.dburi="sqlite:///drive_letter:/path/to/file"
+# Note: If you are using a database on another server, over a network socket,
+# and selinux is enabled, you will need to run:
+# sudo setsebool -P httpd_can_network_connect_db 1
+
# SERVER
# Some server parameters that you may want to tweak
diff --git a/server/mirrormanager/controllers.py b/server/mirrormanager/controllers.py
index 756ce69..aae01b8 100644
--- a/server/mirrormanager/controllers.py
+++ b/server/mirrormanager/controllers.py
@@ -914,13 +914,13 @@ class Root(controllers.RootController):
num_prefix = num_prefix_components(stripprefix)
except KeyError:
message=u'Missing categories, since, or stripprefix arguments'
- return project_dict('rsync_acl', includes=[], excludes=excludes,
message=message)
+ return project_dict('rsyncFilter', includes=[], excludes=excludes,
message=message)
try:
since = int(since)
except:
message=u'value of argument since is not an integer'
- return project_dict('rsync_acl', includes=[], excludes=excludes,
message=message)
+ return project_dict('rsyncFilter', includes=[], excludes=excludes,
message=message)
includes = set()
categories_requested = c.split(',')
@@ -935,7 +935,7 @@ class Root(controllers.RootController):
# add trailing slash as rsync wants it
for i in xrange(len(includes)):
includes[i] += u'/'
- return project_dict('rsync_acl', includes=includes, excludes=excludes,
message=message)
+ return project_dict('rsyncFilter', includes=includes, excludes=excludes,
message=message)
def fedora_login(self, forward_url=None, previous_url=None, *args, **kw):
login_dict = fc_login(forward_url, previous_url, args, kw)
diff --git a/server/mirrormanager/lib.py b/server/mirrormanager/lib.py
index b78884a..a88fbd8 100644
--- a/server/mirrormanager/lib.py
+++ b/server/mirrormanager/lib.py
@@ -15,7 +15,7 @@ def createErrorString(tg_errors):
if type(tg_errors) == types.DictType:
for param, inv in tg_errors.items():
- if type(inv) == types.StringType:
+ if type(inv) == types.StringType or type(inv) == types.UnicodeType:
errors.append("%s: %s"%(param, inv))
else:
errors.append("%s(%s): %s"%(param, inv.value, inv.msg))
diff --git a/server/mirrormanager/model.py b/server/mirrormanager/model.py
index 8ea815e..2484a8a 100644
--- a/server/mirrormanager/model.py
+++ b/server/mirrormanager/model.py
@@ -291,15 +291,22 @@ class Host(SQLObject):
dname = hc.category.topdir.name
# Don't create an entry for a directory the database
doesn't know about
+ # and if a crawler created it so we hit a unique violation, then
we don't have to
try:
- dir = Directory.byName(dname)
- hcdir = HostCategoryDir(host_category=hc, path=d,
directory=dir)
+ directory = Directory.byName(dname)
+ hcdir = HostCategoryDir(host_category=hc, path=d,
directory=directory)
added += 1
except:
pass
- for d in HostCategoryDir.selectBy(host_category=hc):
- if d.path not in config[c]['dirtree'].keys():
- d.destroySelf()
+ for hcdir in hc.dirs:
+ # handle disappearing hcdirs, deleted by other processes
+ try:
+ hcdirpath = hcdir.path
+ except: continue
+ if hcdirpath not in config[c]['dirtree'].keys():
+ try:
+ hcdir.destroySelf()
+ except: pass
deleted += 1
message += "Category %s directories updated: %s added: %s deleted
%s\n" % (category.name, marked_up2date, added, deleted)
diff --git a/server/mirrormanager/repomap.py b/server/mirrormanager/repomap.py
index 15d7d22..dde7ac6 100644
--- a/server/mirrormanager/repomap.py
+++ b/server/mirrormanager/repomap.py
@@ -37,6 +37,9 @@ def repo_prefix(path, category, ver):
isUpdatesReleased = u'updates' in path
isEverything = u'Everything' in path
isFedora = u'Fedora' in path
+ isCloud = u'Cloud' in path
+ isServer = u'Server' in path
+ isWorkstation = u'Workstation' in path
isEpel = (category.name == u'Fedora EPEL')
@@ -92,6 +95,38 @@ def repo_prefix(path, category, ver):
else:
# fedora-install-
prefix = u'fedora-install-%s' % version
+ elif isCloud:
+ if isDebug or isSource:
+ # ignore releases/$version/Cloud/$arch/debug/
+ # ignore releases/$version/Cloud/source/SRPMS/
+ prefix = None
+ else:
+ # fedora-cloud-
+ prefix = u'fedora-cloud-%s' % version
+ elif isServer:
+ if isDebug or isSource:
+ # ignore releases/$version/Server/$arch/debug/
+ # ignore releases/$version/Server/source/SRPMS/
+ prefix = None
+ else:
+ # fedora-server-
+ prefix = u'fedora-server-%s' % version
+ elif isWorkstation:
+ if isDebug or isSource:
+ # ignore releases/$version/Workstation/$arch/debug/
+ # ignore releases/$version/Workstation/source/SRPMS/
+ prefix = None
+ else:
+ # fedora-workstation-
+ prefix = u'fedora-workstation-%s' % version
+ else: # development/NN branch day
+ # fedora-
+ if isDebug:
+ prefix = u'fedora-debug-%s' % version
+ elif isSource:
+ prefix = u'fedora-source-%s' % version
+ else:
+ prefix=u'fedora-%s' % version
elif isUpdatesReleased:
# updates-released-
if isDebug:
diff --git a/server/prod.cfg.example b/server/prod.cfg.example
index e4a2fea..c8ff204 100644
--- a/server/prod.cfg.example
+++ b/server/prod.cfg.example
@@ -57,6 +57,9 @@ mrr.repos = ''' {
# sqlobject.dburi="notrans_postgres://mirrormanager@127.0.0.1/mirrormanager"
#
sqlobject.dburi="notrans_mysql://username:password@hostname:port/databasename"
# Note: MirrorManager doesn't use Transactions, so preceed with 'notrans_' as
shown.
+# Note: If you are using a database on another server, over a network socket,
+# and selinux is enabled, you will need to run:
+# sudo setsebool -P httpd_can_network_connect_db 1
sqlobject.dburi="notrans_sqlite:///var/lib/mirrormanager/sqlite.db"