Skip to content

Commit 4ee4f61

Browse files
authored
Merge pull request #4891 from dojutsu-user/fix-domain-deletion-task-sym
Fix the failing domain deletion task
2 parents 621467d + 205e53b commit 4ee4f61

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

readthedocs/core/symlink.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,10 @@ def symlink_cnames(self, domain=None):
152152
if domain:
153153
domains = [domain]
154154
else:
155-
domains = Domain.objects.filter(project=self.project)
155+
domains = Domain.objects.filter(project=self.project).values_list('domain', flat=True)
156156
for dom in domains:
157157
log_msg = 'Symlinking CNAME: {} -> {}'.format(
158-
dom.domain,
158+
dom,
159159
self.project.slug,
160160
)
161161
log.info(
@@ -167,13 +167,13 @@ def symlink_cnames(self, domain=None):
167167
)
168168

169169
# CNAME to doc root
170-
symlink = os.path.join(self.CNAME_ROOT, dom.domain)
170+
symlink = os.path.join(self.CNAME_ROOT, dom)
171171
self.environment.run('ln', '-nsf', self.project_root, symlink)
172172

173173
# Project symlink
174174
project_cname_symlink = os.path.join(
175175
self.PROJECT_CNAME_ROOT,
176-
dom.domain,
176+
dom,
177177
)
178178
self.environment.run(
179179
'ln',
@@ -183,16 +183,21 @@ def symlink_cnames(self, domain=None):
183183
)
184184

185185
def remove_symlink_cname(self, domain):
186-
"""Remove CNAME symlink."""
187-
log_msg = 'Removing symlink for CNAME {}'.format(domain.domain)
186+
"""
187+
Remove CNAME symlink.
188+
189+
:param domain: domain for which symlink is to be removed
190+
:type domain: str
191+
"""
192+
log_msg = 'Removing symlink for CNAME {}'.format(domain)
188193
log.info(
189194
constants.LOG_TEMPLATE.format(
190195
project=self.project.slug,
191196
version='',
192-
msg=log_msg,
197+
msg=log_msg
193198
),
194199
)
195-
symlink = os.path.join(self.CNAME_ROOT, domain.domain)
200+
symlink = os.path.join(self.CNAME_ROOT, domain)
196201
safe_unlink(symlink)
197202

198203
def symlink_subprojects(self):

readthedocs/projects/models.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1199,15 +1199,15 @@ def save(self, *args, **kwargs): # pylint: disable=arguments-differ
11991199
broadcast(
12001200
type='app',
12011201
task=tasks.symlink_domain,
1202-
args=[self.project.pk, self.pk],
1202+
args=[self.project.pk, self.domain],
12031203
)
12041204

12051205
def delete(self, *args, **kwargs): # pylint: disable=arguments-differ
12061206
from readthedocs.projects import tasks
12071207
broadcast(
12081208
type='app',
12091209
task=tasks.symlink_domain,
1210-
args=[self.project.pk, self.pk, True],
1210+
args=[self.project.pk, self.domain, True],
12111211
)
12121212
super().delete(*args, **kwargs)
12131213

readthedocs/projects/tasks.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -1074,9 +1074,16 @@ def symlink_project(project_pk):
10741074

10751075

10761076
@app.task(queue='web', throws=(BuildEnvironmentWarning,))
1077-
def symlink_domain(project_pk, domain_pk, delete=False):
1077+
def symlink_domain(project_pk, domain, delete=False):
1078+
"""
1079+
Symlink domain.
1080+
1081+
:param project_pk: project's pk
1082+
:type project_pk: int
1083+
:param domain: domain for the symlink
1084+
:type domain: str
1085+
"""
10781086
project = Project.objects.get(pk=project_pk)
1079-
domain = Domain.objects.get(pk=domain_pk)
10801087
for symlink in [PublicSymlink, PrivateSymlink]:
10811088
sym = symlink(project=project)
10821089
if delete:

0 commit comments

Comments
 (0)