added default_namespace config option

This commit is contained in:
clime 2018-02-05 22:11:37 +01:00
parent ae51199cb4
commit 3a0c21cb90
5 changed files with 51 additions and 1 deletions

View file

@ -10,3 +10,5 @@ grok = True
fedmsgs = True
old_paths = True
nomd5 = True
default_namespace = rpms

View file

@ -92,6 +92,18 @@ if [ -z "$BRANCH" -o -z "$PACKAGES" ] ; then
exit -1
fi
# prefix default namespace if set
NEWP=
for PACKAGE in $PACKAGES ; do
PACKAGE=`echo $PACKAGE | sed -e "s+^/*\([^/]*\)/*$+\1+"`
parts=($(echo $PACKAGE | tr "/" " "))
parts_len=${#parts[@]}
if [ -n "$default_namespace" ] && [ $parts_len -le 1 ]; then
PACKAGE=$default_namespace/$PACKAGE
fi
NEWP="$NEWP $PACKAGE"
done
PACKAGES="$(echo $NEWP)"
# Sanity checks before we start doing damage
NEWP=
@ -108,6 +120,7 @@ for p in $PACKAGES ; do
NEWP="$NEWP $p"
done
PACKAGES="$(echo $NEWP)"
if [ -z "$PACKAGES" ] ; then
echo "NOOP: no valid packages found to process"
exit -1

View file

@ -92,6 +92,18 @@ if [ -z "$BRANCH" -o -z "$PACKAGES" ] ; then
exit -1
fi
# prefix default namespace if set
NEWP=
for PACKAGE in $PACKAGES ; do
PACKAGE=`echo $PACKAGE | sed -e "s+^/*\([^/]*\)/*$+\1+"`
parts=($(echo $PACKAGE | tr "/" " "))
parts_len=${#parts[@]}
if [ -n "$default_namespace" ] && [ $parts_len -le 1 ]; then
PACKAGE=$default_namespace/$PACKAGE
fi
NEWP="$NEWP $PACKAGE"
done
PACKAGES="$(echo $NEWP)"
# Sanity checks before we start doing damage
NEWP=
@ -108,6 +120,7 @@ for p in $PACKAGES ; do
NEWP="$NEWP $p"
done
PACKAGES="$(echo $NEWP)"
if [ -z "$PACKAGES" ] ; then
echo "NOOP: no valid packages found to process"
exit -1

View file

@ -58,6 +58,13 @@ if [ -z "$PACKAGE" ] ; then
exit -1
fi
PACKAGE=`echo $PACKAGE | sed -e "s+^/*\([^/]*\)/*$+\1+"`
parts=($(echo $PACKAGE | tr "/" " "))
parts_len=${#parts[@]}
if [ -n "$default_namespace" ] && [ $parts_len -le 1 ]; then
PACKAGE=$default_namespace/$PACKAGE
fi
# Sanity checks before we start doing damage
[ $VERBOSE -gt 1 ] && echo "Checking package $PACKAGE..."
if [ -f $REPODIR/$PACKAGE.git/refs/heads/master ] ; then

View file

@ -91,6 +91,17 @@ def makedirs(dir_, username, mode=02755):
send_error(str(e))
def ensure_namespaced(name, namespace):
if not namespace:
return name
name_parts = name.split('/')
if len(name_parts) == 1:
return os.path.join(namespace, name)
return name
def main():
config = ConfigParser()
config.read('/etc/dist-git/dist-git.conf')
@ -112,7 +123,7 @@ def main():
assert os.environ['REQUEST_URI'].split('/')[1] == 'repo'
form = cgi.FieldStorage()
name = check_form(form, 'name')
name = check_form(form, 'name').strip('/')
# Search for the file hash, start with stronger hash functions
if 'sha512sum' in form:
@ -164,6 +175,10 @@ def main():
hash_dir = os.path.join(module_dir, filename, hash_type, checksum)
msgpath = os.path.join(name, filename, hash_type, checksum, filename)
# prefix name by default namespace if configured
if config['dist-git'].get('default_namespace'):
name = ensure_namespaced(name, config['dist-git'].get('default_namespace')).strip('/')
# first test if the module really exists
git_dir = os.path.join(config['dist-git']['gitroot_dir'], '%s.git' % name)
if not os.path.isdir(git_dir):