Skip to content

Commit 49a899f

Browse files
committed
Added support for management of trac wikis for explicitly named groups, such as the IESG and IAOC. Tweaked the dummy-run handling of the create_group_wikis management command.
- Legacy-Id: 12789
1 parent 8a8283f commit 49a899f

2 files changed

Lines changed: 24 additions & 17 deletions

File tree

ietf/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,7 @@ def skip_unreadable_post(record):
715715
TRAC_SVN_URL_PATTERN = "https://svn.ietf.org/svn/group/%s/"
716716

717717
TRAC_CREATE_GROUP_TYPES = ['wg', 'rg', 'area', 'team', 'dir', 'ag', ]
718+
TRAC_CREATE_GROUP_ACRONYMS = ['iesg', 'iaoc', ]
718719

719720
SVN_PACKAGES = [
720721
"/usr/lib/python2.7/dist-packages/svn",

ietf/utils/management/commands/create_group_wikis.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
from django.conf import settings
1616
from django.core.management.base import BaseCommand, CommandError
17+
from django.db.models import Q
1718
from django.template.loader import render_to_string
1819

1920
import debug # pyflakes:ignore
@@ -69,17 +70,21 @@ def svn_admin_cmd(self, *args):
6970
return self.do_cmd(settings.SVN_ADMIN_COMMAND, *args)
7071

7172
def create_svn(self, svn):
72-
self.note(" Creating svn repository: %s" % svn)
73-
if not os.path.exists(os.path.dirname(svn)):
74-
msg = "Intended to create '%s', but parent directory is missing" % svn
75-
self.log(msg)
76-
return msg
77-
err, out= self.svn_admin_cmd("create", svn )
78-
if err:
79-
msg = "Error %s creating svn repository %s:\n %s" % (err, svn, out)
80-
self.log(msg)
81-
return msg
82-
return None
73+
if self.dummy_run:
74+
self.note(" Would create svn repository: %s" % svn)
75+
return "Dummy run, no svn repo created"
76+
else:
77+
self.note(" Creating svn repository: %s" % svn)
78+
if not os.path.exists(os.path.dirname(svn)):
79+
msg = "Intended to create '%s', but parent directory is missing" % svn
80+
self.log(msg)
81+
return msg
82+
err, out= self.svn_admin_cmd("create", svn )
83+
if err:
84+
msg = "Error %s creating svn repository %s:\n %s" % (err, svn, out)
85+
self.log(msg)
86+
return msg
87+
return ""
8388

8489
# --- trac ---
8590

@@ -159,7 +164,7 @@ def create_trac(self, group):
159164
# custom pages and settings.
160165
if self.dummy_run:
161166
self.note("Would create Trac for group '%s' at %s" % (group.acronym, group.trac_dir))
162-
return None, None
167+
return None, "Dummy run, no trac created"
163168
else:
164169
try:
165170
self.note("Creating Trac for group '%s' at %s" % (group.acronym, group.trac_dir))
@@ -178,7 +183,7 @@ def create_trac(self, group):
178183
# Components (i.e., drafts) will be handled during components
179184
# update later
180185
# Permissions will be handled during permission update later.
181-
return env, None
186+
return env, ""
182187
except TracError as e:
183188
msg = "While creating Trac instance for %s: %s" % (group, e)
184189
self.log(msg)
@@ -287,11 +292,12 @@ def handle(self, *filenames, **options):
287292
if not os.path.exists(os.path.dirname(self.svn_dir_pattern)):
288293
raise CommandError('The SVN base direcory specified for the SVN directories (%s) does not exist.' % os.path.dirname(self.svn_dir_pattern))
289294

290-
groups = Group.objects.filter(
291-
type__slug__in=settings.TRAC_CREATE_GROUP_TYPES,
292-
state__slug='active',
293-
).order_by('acronym')
295+
gfilter = Q(type__slug__in=settings.TRAC_CREATE_GROUP_TYPES, state__slug='active')
296+
gfilter |= Q(acronym__in=settings.TRAC_CREATE_GROUP_ACRONYMS)
297+
298+
groups = Group.objects.filter(gfilter).order_by('acronym')
294299
if self.group_list:
300+
295301
groups = groups.filter(acronym__in=self.group_list)
296302

297303
for group in groups:

0 commit comments

Comments
 (0)