Skip to content

Commit

Permalink
Converting prints to logs
Browse files Browse the repository at this point in the history
  • Loading branch information
Nagyman committed Mar 12, 2012
1 parent d8fa4df commit e75ad7b
Showing 1 changed file with 38 additions and 28 deletions.
66 changes: 38 additions & 28 deletions readthedocs/projects/tasks.py
Expand Up @@ -7,6 +7,7 @@
import re
import shutil
import json
import logging

from celery.decorators import task
from django.db import transaction
Expand Down Expand Up @@ -36,6 +37,7 @@
ghetto_hack = re.compile(
r'(?P<key>.*)\s*=\s*u?\[?[\'\"](?P<value>.*)[\'\"]\]?')

log = logging.getLogger(__name__)

@task
def remove_dir(path):
Expand All @@ -45,7 +47,7 @@ def remove_dir(path):
This is mainly a wrapper around shutil.rmtree so that app servers
can kill things on the build server.
"""
print "Removing %s" % path
log.info("Removing %s" % path)
shutil.rmtree(path)


Expand All @@ -58,6 +60,14 @@ def update_docs(pk, record=True, pdf=True, man=True, epub=True, version_pk=None,
It handles all of the logic around whether a project is imported or we created it.
Then it will build the html docs and other requested parts.
It also handles clearing the varnish cache.
`pk`
Primary key of the project to update
`record`
Whether or not to keep a record of the update in the database. Useful
for preventing changes visible to the end-user when running commands from
the shell, for example.
"""

###
Expand All @@ -69,14 +79,14 @@ def update_docs(pk, record=True, pdf=True, man=True, epub=True, version_pk=None,
del project_data['resource_uri']
del project_data['absolute_url']
project = Project(**project_data)

# Prevent saving the temporary Project instance
def new_save(*args, **kwargs):
#fields = [(field, field.value_to_string(self)) for field in self._meta.fields]
print "*** Called save on a non-real object."
#print fields
#raise TypeError('Not a real model')
log.warning("Called save on a non-real object.")
return 0
project.save = new_save
print "Building %s" % project

log.info("Building %s" % project)
if version_pk:
version_data = api.version(version_pk).get()
del version_data['resource_uri']
Expand Down Expand Up @@ -140,7 +150,7 @@ def new_save(*args, **kwargs):
try:
update_output = update_imported_docs(project, version)
except ProjectImportError, err:
print("Error importing project: %s. Skipping build." % err)
log.error("Error importing project. Skipping build.", exc_info=True)
return False

#scrape_conf_file(version)
Expand All @@ -156,39 +166,39 @@ def new_save(*args, **kwargs):
record=record, force=force, update_output=update_output)
if not 'no targets are out of date.' in out:
if ret == 0:
print "HTML Build OK"
log.info("HTML Build OK")
purge_version(version, subdomain=True,
mainsite=True, cname=True)
symlink_cname(version)
update_intersphinx(version.pk)
#send_notifications(version)
print "Purged %s" % version
log.info("Purged %s" % version)
else:
print "HTML Build ERROR"
log.error("HTML Build ERROR")
else:
print "Build Unchanged"
log.info("Build Unchanged")

# Try importing from Open Comparison sites.
try:
result = tastyapi_client.import_project(project)
if result:
print "Project imported from Open Comparison!"
log.info("Project imported from Open Comparison!")
else:
print "Project failed to import from Open Comparison!"
log.info("Project failed to import from Open Comparison!")

except:
print "Importing from Open Comparison Errored."
log.error("Importing from Open Comparison Errored.", exc_info=True)

# Try importing from Crate
try:
result = tastyapi_client.import_crate(project)
if result:
print "Project imported from Crate!"
log.info("Project imported from Crate!")
else:
print "Project failed to import from Crate!"
log.info("Project failed to import from Crate!")

except:
print "Importing from Crate Errored."
log.error("Importing from Crate Errored.", exc_info=True)

return True

Expand All @@ -203,13 +213,13 @@ def update_imported_docs(project, version):
repo_type=project.repo_type))

if version:
print 'Checking out version {slug}: {identifier}'.format(
slug=version.slug, identifier=version.identifier)
log.info('Checking out version {slug}: {identifier}'.format(
slug=version.slug, identifier=version.identifier))
version_slug = version.slug
version_repo = project.vcs_repo(version_slug)
update_docs_output['checkout'] = version_repo.checkout(version.identifier)
else:
print 'Updating to latest revision'
log.info('Updating to latest revision')
version_slug = 'latest'
version_repo = project.vcs_repo(version_slug)
update_docs_output['checkout'] = version_repo.update()
Expand Down Expand Up @@ -255,16 +265,16 @@ def update_imported_docs(project, version):
identifier=tag.identifier,
verbose_name=tag.verbose_name
))
print "New tag found: %s" % tag.identifier
log.info("New tag found: {0}".format(tag.identifier))
highest = project.highest_version['version']
ver_obj = mkversion(ver)
#TODO: Handle updating higher versions automatically.
#This never worked very well, anyways.
if highest and ver_obj and ver_obj > highest:
print "Highest verison known, building docs"
log.info("Highest verison known, building docs")
update_docs.delay(ver.project.pk, version_pk=ver.pk)
except Exception, e:
print "Failed to create version (tag): %s" % e
log.error("Failed to create version (tag)", exc_info=True)
transaction.rollback()
break
transaction.leave_transaction_management()
Expand All @@ -284,15 +294,15 @@ def update_imported_docs(project, version):
identifier=branch.identifier,
verbose_name=branch.verbose_name
))
print "New branch found: %s" % branch.identifier
log.info("New branch found: {0}".format(branch.identifier))
except Exception, e:
print "Failed to create version (branch): %s" % e
log.error("Failed to create version (branch)", exc_info=True)
transaction.rollback()
break
transaction.leave_transaction_management()
#TODO: Kill deleted branches
except ValueError, e:
print "Error getting tags: %s" % e
log.error("Error getting tags", exc_info=True)

#TODO: Find a better way to handle indexing.
#fileify(version)
Expand Down Expand Up @@ -466,8 +476,8 @@ def update_docs_pull(record=False, pdf=False, man=False, force=False):
try:
update_docs(
pk=project.pk, record=record, pdf=pdf, man=man, force=force)
except:
print "failed"
except Exception, e:
print "Failed: %s" % e


@task
Expand Down

0 comments on commit e75ad7b

Please sign in to comment.