in community/front-end/ofe/website/ghpcfe/views/clusters.py [0:0]
def get(self, request, pk):
cluster = get_object_or_404(Cluster, pk=pk)
user = request.user
try:
user_uid = user.socialaccount_set.first().uid
except AttributeError:
# User doesn't have a Google SocialAccount.
messages.error(
request,
"You are not signed in with a Google Account. This is required",
)
return HttpResponseRedirect(
reverse("user-gcp-auth", kwargs={"pk": pk})
)
logger.info(
"Beginning User GCS authorization process for %s on %s",
user,
cluster.name,
)
task = Task.objects.create(
owner=user,
title="Auth User GCP",
data={"status": "Contacting Cluster"},
)
task.save()
cluster_id = cluster.id
cluster_name = cluster.name
task_id = task.id
def callback(message):
logger.info(
"GCS Auth Status message received from cluster %s: %s",
cluster_name,
message["status"],
)
task = Task.objects.get(pk=task_id)
task.data.update(message)
task.save()
if "exit_status" in message:
logger.info(
"Final result from cluster %s for user auth to GCS was "
"status code %s",
cluster_name,
message["exit_status"],
)
task.delete()
message_data = {
"login_uid": user_uid,
}
comm_id = c2.send_command(
cluster_id,
"REGISTER_USER_GCS",
on_response=callback,
data=message_data,
)
task.data["comm_id"] = comm_id
task.save()
return JsonResponse({"taskid": task_id})