-@transaction.atomic
-def update_user_data(user, proxy):
- from qcg.models import User, Job, Task, Allocation, NodeInfo
-
- credential = Credential(proxy)
- registry = Registry(credential)
-
- # put lock on user record (hopefully..?)
- user = User.objects.select_for_update().get(pk=user.pk)
-
- changed_filter = {'changed': TimePeriod(after=user.last_update)}
-
- ###################################
- # Jobs
- ###################################
- for qcg_job in registry.jobs(**changed_filter):
- params = Job.qcg_map(qcg_job, user)
- job_id = params.pop('job_id')
+def try_parse_int(s, default=None, base=10):
+ try:
+ return int(s, base)
+ except (TypeError, ValueError):
+ return default