Skip to content

Commit

Permalink
Merge pull request #4891 from dojutsu-user/fix-domain-deletion-task-sym
Browse files Browse the repository at this point in the history
Fix the failing domain deletion task
  • Loading branch information
ericholscher authored Jan 22, 2019
2 parents 621467d + 205e53b commit 4ee4f61
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
21 changes: 13 additions & 8 deletions readthedocs/core/symlink.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,10 @@ def symlink_cnames(self, domain=None):
if domain:
domains = [domain]
else:
domains = Domain.objects.filter(project=self.project)
domains = Domain.objects.filter(project=self.project).values_list('domain', flat=True)
for dom in domains:
log_msg = 'Symlinking CNAME: {} -> {}'.format(
dom.domain,
dom,
self.project.slug,
)
log.info(
Expand All @@ -167,13 +167,13 @@ def symlink_cnames(self, domain=None):
)

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

# Project symlink
project_cname_symlink = os.path.join(
self.PROJECT_CNAME_ROOT,
dom.domain,
dom,
)
self.environment.run(
'ln',
Expand All @@ -183,16 +183,21 @@ def symlink_cnames(self, domain=None):
)

def remove_symlink_cname(self, domain):
"""Remove CNAME symlink."""
log_msg = 'Removing symlink for CNAME {}'.format(domain.domain)
"""
Remove CNAME symlink.
:param domain: domain for which symlink is to be removed
:type domain: str
"""
log_msg = 'Removing symlink for CNAME {}'.format(domain)
log.info(
constants.LOG_TEMPLATE.format(
project=self.project.slug,
version='',
msg=log_msg,
msg=log_msg
),
)
symlink = os.path.join(self.CNAME_ROOT, domain.domain)
symlink = os.path.join(self.CNAME_ROOT, domain)
safe_unlink(symlink)

def symlink_subprojects(self):
Expand Down
4 changes: 2 additions & 2 deletions readthedocs/projects/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1199,15 +1199,15 @@ def save(self, *args, **kwargs): # pylint: disable=arguments-differ
broadcast(
type='app',
task=tasks.symlink_domain,
args=[self.project.pk, self.pk],
args=[self.project.pk, self.domain],
)

def delete(self, *args, **kwargs): # pylint: disable=arguments-differ
from readthedocs.projects import tasks
broadcast(
type='app',
task=tasks.symlink_domain,
args=[self.project.pk, self.pk, True],
args=[self.project.pk, self.domain, True],
)
super().delete(*args, **kwargs)

Expand Down
11 changes: 9 additions & 2 deletions readthedocs/projects/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1074,9 +1074,16 @@ def symlink_project(project_pk):


@app.task(queue='web', throws=(BuildEnvironmentWarning,))
def symlink_domain(project_pk, domain_pk, delete=False):
def symlink_domain(project_pk, domain, delete=False):
"""
Symlink domain.
:param project_pk: project's pk
:type project_pk: int
:param domain: domain for the symlink
:type domain: str
"""
project = Project.objects.get(pk=project_pk)
domain = Domain.objects.get(pk=domain_pk)
for symlink in [PublicSymlink, PrivateSymlink]:
sym = symlink(project=project)
if delete:
Expand Down

0 comments on commit 4ee4f61

Please sign in to comment.