geosolutions-it / C198-KRIHS

3 stars 2 forks source link

Estimate and implementation plan #12

Open simboss opened 3 years ago

simboss commented 3 years ago

I would want to start with:

  1. investigation and discussion between @giohappy ad @afabiani (take into account that we want to have QGIS talk to GeoNode)
  2. estimate and implementation plan

Ideally I would want to have a simple REST Interface with Authentication rather than talking to Rabbit MQ.

simboss commented 3 years ago

@afabiani I see this is progress now.

Make sure whatever you come up with, you first align with @giohappy

afabiani commented 3 years ago

So far I did some tests on GeoNode side here. Currently those are my findings:

Exposing the updatelayers management command as an async task with Flower

The idea here is to create a celery task interface around the management command. GeoNode has several of those already available for a plenty of the internal management commands already. Creating such a task is very straight and won't take time.

How the task can be invoked then? There are several options here. The easiest is to use an utility called Flower which exposes an generic api around the Celery tasks. Here the API reference. You may notice that a task can be invoked both synchronously and asynchronously.

cons:

Estimated points: 2

Creating a rest interface

Not a bit issue either. Wrapping the command around a REST interface is not a big deal. We will need to better define such interface in order to handle the asynchronous invocation and retrieve somehow the responses from the command output.

For sure this is much work to do but not a complex task to achieve.

cons:

Estimated points: 4

That said, we still need to coordinate with @giohappy in order to understand what we can do from QGis, even though I do not envisage hard blockers.