Ensure account creation succeeds before creating comments service user

Also improves handling in cases where account creation did succeed, but
comments service user creation did not.

Depends on commit 88abdd8a0b20bc9816f487b25abdea1953f5661d in https://github.com/edx/cs_comments_service

JIRA: FOR-522
This commit is contained in:
jsa
2014-03-14 11:02:36 -04:00
parent 16523b9912
commit b20c8f9248
5 changed files with 103 additions and 43 deletions

View File

@@ -80,7 +80,16 @@ class User(models.Model):
retrieve_params = self.default_retrieve_params
if self.attributes.get('course_id'):
retrieve_params['course_id'] = self.course_id
response = perform_request('get', url, retrieve_params)
try:
response = perform_request('get', url, retrieve_params)
except CommentClientRequestError as e:
if e.status_code == 404:
# attempt to gracefully recover from a previous failure
# to sync this user to the comments service.
self.save()
response = perform_request('get', url, retrieve_params)
else:
raise
self.update_attributes(**response)