From fdc64a25a591b68ca96572221b58ca8df4b5dbdd Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Sat, 1 Aug 2020 12:19:45 +0200
Subject: [PATCH] some specific dev settings to get celery working on windows.

---
 esap/esap/esap_staging_config.sqlite3 | Bin 32768 -> 32768 bytes
 esap/requirements/base.txt            |   3 ++-
 esap/requirements/dev.txt             |   1 +
 esap/run_celery.bat                   |   9 +++++++++
 esap/run_celery_beat.bat              |   6 ++++++
 esap/staging/api/urls.py              |   3 ++-
 esap/staging/api/views.py             |  14 ++++++++++++--
 7 files changed, 32 insertions(+), 4 deletions(-)
 create mode 100644 esap/run_celery.bat
 create mode 100644 esap/run_celery_beat.bat

diff --git a/esap/esap/esap_staging_config.sqlite3 b/esap/esap/esap_staging_config.sqlite3
index 4ea8b6d243a82f13c4385beeaa832c84b9d7cb48..80cfe2a2ccf30fb825676a0d3f3ad34e336551b3 100644
GIT binary patch
delta 369
zcmZo@U}|V!njp<6K2gS*QG8><LU~^P>kQ2N%Nh7z@h|7!y;)FTCcmT*6SF2`aY<r&
zW?p)HaY<rHX)&`DGqWY*<OCiuRyGC(2I0-O^)&^!nE9_W@PFoi#(#aYputIgTV7@s
z26<j*f8PKf*AQ11ZYCB6Y2M%vM|V#@cWy=yC&1Ou#naE7m;Vw28~<ts{^R^#`JeOO
z<lo7^db6OwbpB)>HWmhH#)ACflH9~RW*$~#9w#FUgD7K4X-X<H0|NuQG-m-13$i>9
zGcu2p39g!pfq{XU|26~vZT_$PFE<MsoaMLVWtL}zyOf!mS(*{*P$n*BX-=p+K^ock
yZ!z<~;s3?|jQ=D51O8i^1r3hztFbaOGBUG)Nmek)%)-pb$qZ()FfcHH8B74<%u-$e

delta 199
zcmZo@U}|V!njp={Hc`fzk!@qbLU~>W1_oyS-3<J%_^<Qt-Yh7vmY-FMnc0$YasrPS
zE3+UIv*za8`kDf4jQpP&_&;wJG<eA`&CSTdAk7=#>gVF==MFL9J_G+Z{x|&hHwzkE
z<k#kAW?_)#EXXe|$xY1TU}9kq<xD9}N#$UKvA7r*7#R7#GVp)hENJkWUy_SiniFas
iNQ#;N69fMr{_p&sHVYa&;pbyv=450B5lqa?oSXpGAuaR(

diff --git a/esap/requirements/base.txt b/esap/requirements/base.txt
index 0093e97b..ed9de577 100644
--- a/esap/requirements/base.txt
+++ b/esap/requirements/base.txt
@@ -10,4 +10,5 @@ requests==2.22.0
 django-oidc-provider==0.7.0
 django-rest-knox==4.1.0
 mozilla-django-oidc==1.2.3
-celery==4.4.6
\ No newline at end of file
+celery==4.4.6
+eventlet==0.24.1
\ No newline at end of file
diff --git a/esap/requirements/dev.txt b/esap/requirements/dev.txt
index a3e81b8d..a9ae624c 100644
--- a/esap/requirements/dev.txt
+++ b/esap/requirements/dev.txt
@@ -1 +1,2 @@
 -r base.txt
+pypiwin32==223
\ No newline at end of file
diff --git a/esap/run_celery.bat b/esap/run_celery.bat
new file mode 100644
index 00000000..b082b7a5
--- /dev/null
+++ b/esap/run_celery.bat
@@ -0,0 +1,9 @@
+
+SET OIDC_RP_CLIENT_ID="fancy"
+SET OIDC_RP_CLIENT_SECRET="dude"
+
+rem https://www.distributedpython.com/2018/08/21/celery-4-windows/#:~:text=Celery%20no%20longer%20officially%20supports,Celery%20version%20across%20your%20infrastructure.
+rem celery worker -A esap.settings.dev --pool=eventlet --loglevel=INFO
+celery worker -A esap.settings.dev --pool=solo --loglevel=INFO
+
+
diff --git a/esap/run_celery_beat.bat b/esap/run_celery_beat.bat
new file mode 100644
index 00000000..37afe677
--- /dev/null
+++ b/esap/run_celery_beat.bat
@@ -0,0 +1,6 @@
+
+SET OIDC_RP_CLIENT_ID="fancy"
+SET OIDC_RP_CLIENT_SECRET="dude"
+
+celery beat -A esap.settings.dev --loglevel=INFO
+
diff --git a/esap/staging/api/urls.py b/esap/staging/api/urls.py
index 09dd928a..283f1894 100644
--- a/esap/staging/api/urls.py
+++ b/esap/staging/api/urls.py
@@ -15,6 +15,7 @@ urlpatterns += [
     # path('admin', admin.site.urls, name='admin-view'),
     path('', views.IndexView.as_view(), name='index-view'),
     path('my_staging', views.StagingListViewAPI.as_view(), name='staging-view'),
-    path('staging/test', views.test_function_call, name='test')
+    path('staging/test', views.test_function_call, name='test'),
+    path('poll', views.poll_view, name='poll')
 ]
 
diff --git a/esap/staging/api/views.py b/esap/staging/api/views.py
index a8fa9b1e..c388d428 100644
--- a/esap/staging/api/views.py
+++ b/esap/staging/api/views.py
@@ -1,7 +1,9 @@
 from django.views.generic import ListView
 from django_filters import rest_framework as filters
+from django.http import JsonResponse
+
 from rest_framework import viewsets, permissions, decorators, request, response, status
-from staging.tasks import create_request
+from staging.tasks import create_request, poll_status
 from staging.models import Staging, StagingRequest
 
 
@@ -60,4 +62,12 @@ def test_function_call(request: request.HttpRequest):
         request_id = create_request(surl)
         return response.Response(status=status.HTTP_201_CREATED, data={'request_id': request_id})
     except KeyError:
-        return response.Response(status=status.HTTP_400_BAD_REQUEST, data='missing parameter surl')
\ No newline at end of file
+        return response.Response(status=status.HTTP_400_BAD_REQUEST, data='missing parameter surl')
+
+
+def poll_view(request):
+    poll_status()
+    #return response.Response(status=status.HTTP_200_OK)
+
+    return JsonResponse({'poll': "OK"})
+    #return response.JsonResponse({'poll': "OK"})
\ No newline at end of file
-- 
GitLab