Skip to content

Commit fb6415d

Browse files
committed
Clean up other broadcasting failures
1 parent 8a72dbf commit fb6415d

File tree

3 files changed

+10
-39
lines changed

3 files changed

+10
-39
lines changed

readthedocs/builds/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def save(self, *args, **kwargs): # pylint: disable=arguments-differ
163163
def delete(self, *args, **kwargs): # pylint: disable=arguments-differ
164164
from readthedocs.projects import tasks
165165
log.info('Removing files for version %s', self.slug)
166-
tasks.clear_artifacts.delay(version_pk=self.pk)
166+
broadcast(type='app', task=tasks.clear_artifacts, args=[self.pk])
167167
broadcast(type='app', task=tasks.symlink_project, args=[self.project.pk])
168168
super(Version, self).delete(*args, **kwargs)
169169

readthedocs/core/utils/__init__.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,6 @@
2828
SYNC_USER = getattr(settings, 'SYNC_USER', getpass.getuser())
2929

3030

31-
def run_on_app_servers(command):
32-
"""A helper to copy a single file across app servers"""
33-
log.info("Running %s on app servers", command)
34-
ret_val = 0
35-
if getattr(settings, "MULTIPLE_APP_SERVERS", None):
36-
for server in settings.MULTIPLE_APP_SERVERS:
37-
ret = os.system("ssh %s@%s %s" % (SYNC_USER, server, command))
38-
if ret != 0:
39-
ret_val = ret
40-
return ret_val
41-
ret = os.system(command)
42-
return ret
43-
44-
4531
def broadcast(type, task, args, kwargs=None): # pylint: disable=redefined-builtin
4632
assert type in ['web', 'app', 'build']
4733
default_queue = getattr(settings, 'CELERY_DEFAULT_QUEUE', 'celery')

readthedocs/projects/tasks.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -554,9 +554,9 @@ def finish_build(version_pk, build_pk, hostname=None, html=False,
554554
version.save()
555555

556556
if not pdf:
557-
clear_pdf_artifacts(version)
557+
broadcast(type='app', task=clear_pdf_artifacts, args=[version.pk])
558558
if not epub:
559-
clear_epub_artifacts(version)
559+
broadcast(type='app', task=clear_epub_artifacts, args=[version.pk])
560560

561561
# Sync files to the web servers
562562
broadcast(type='app', task=move_files, args=[version_pk, hostname],
@@ -909,7 +909,6 @@ def remove_dir(path):
909909
shutil.rmtree(path, ignore_errors=True)
910910

911911

912-
@task(queue='web')
913912
def clear_artifacts(version_pk):
914913
"""Remove artifacts from the web servers"""
915914
version = Version.objects.get(pk=version_pk)
@@ -920,33 +919,19 @@ def clear_artifacts(version_pk):
920919

921920

922921
def clear_pdf_artifacts(version):
923-
run_on_app_servers('rm -rf %s'
924-
% version.project.get_production_media_path(
925-
type_='pdf', version_slug=version.slug))
922+
remove_dir(version.project.get_production_media_path(
923+
type_='pdf', version_slug=version.slug))
926924

927925

928926
def clear_epub_artifacts(version):
929-
run_on_app_servers('rm -rf %s'
930-
% version.project.get_production_media_path(
931-
type_='epub', version_slug=version.slug))
927+
remove_dir(version.project.get_production_media_path(
928+
type_='epub', version_slug=version.slug))
932929

933930

934931
def clear_htmlzip_artifacts(version):
935-
run_on_app_servers('rm -rf %s'
936-
% version.project.get_production_media_path(
937-
type_='htmlzip', version_slug=version.slug))
932+
remove_dir(version.project.get_production_media_path(
933+
type_='htmlzip', version_slug=version.slug))
938934

939935

940936
def clear_html_artifacts(version):
941-
run_on_app_servers('rm -rf %s' % version.project.rtd_build_path(version=version.slug))
942-
943-
944-
@task(queue='web')
945-
def remove_path_from_web(path):
946-
"""Remove the given path from the web servers file system."""
947-
# Santity check for spaces in the path since spaces would result in
948-
# deleting unpredictable paths with "rm -rf".
949-
assert ' ' not in path, "No spaces allowed in path"
950-
951-
# TODO: We need some proper escaping here for the given path.
952-
run_on_app_servers('rm -rf {path}'.format(path=path))
937+
remove_dir(version.project.rtd_build_path(version=version.slug))

0 commit comments

Comments
 (0)