Skip to content

Commit

Permalink
Revert "add async_thumbnail to improve upload time"
Browse files Browse the repository at this point in the history
  • Loading branch information
frafra committed Mar 28, 2019
1 parent 074670e commit a803592
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 52 deletions.
41 changes: 12 additions & 29 deletions geonode/geoserver/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import errno
import logging
import urllib
from .tasks import thumbnail_task

from urlparse import urlparse, urljoin

from django.conf import settings
Expand All @@ -42,6 +42,7 @@
set_layer_style,
gs_catalog,
ogc_server_settings,
create_gs_thumbnail,
_stylefilterparams_geowebcache_layer,
_invalidate_geowebcache_layer)
from geonode.base.models import ResourceBase, Link
Expand Down Expand Up @@ -89,16 +90,11 @@ def geoserver_post_save(instance, sender, **kwargs):
instance_dict = model_to_dict(instance)
payload = json_serializer_producer(instance_dict)
producer.geoserver_upload_layer(payload)
if instance.storeType != 'remoteStore':
logger.info("... Creating Thumbnail for Layer [%s]" % (instance))
try:
thumbnail_task.delay(
instance.id,
instance.__class__.__name__,
overwrite=True,
check_bbox=True)
except BaseException:
logger.warn("!WARNING! - Failure while Creating Thumbnail for Layer [%s]" % (instance))
logger.info("... Creating Thumbnail for Layer [%s]" % (instance.alternate))
try:
create_gs_thumbnail(instance, overwrite=True, check_bbox=True)
except BaseException:
logger.warn("!WARNING! - Failure while Creating Thumbnail for Layer [%s]" % (instance.alternate))


def geoserver_post_save_local(instance, *args, **kwargs):
Expand Down Expand Up @@ -518,15 +514,9 @@ def command_url(command):
# some thumbnail generators will update thumbnail_url. If so, don't
# immediately re-generate the thumbnail here. use layer#save(update_fields=['thumbnail_url'])
if 'update_fields' in kwargs and kwargs['update_fields'] is not None and \
'thumbnail_url' in kwargs['update_fields'] and instance.storeType != "remoteStore":
logger.info("... Creating Thumbnail for Layer [%s]" % (instance))
try:
thumbnail_task.delay(
instance.id,
instance.__class__.__name__,
overwrite=True)
except BaseException:
logger.warn("!WARNING! - Failure while Creating Thumbnail for Layer [%s]" % (instance))
'thumbnail_url' in kwargs['update_fields']:
logger.info("... Creating Thumbnail for Layer [%s]" % (instance.alternate))
create_gs_thumbnail(instance, overwrite=True)

try:
Link.objects.filter(resource=instance.resourcebase_ptr, name='Legend').delete()
Expand Down Expand Up @@ -654,12 +644,5 @@ def geoserver_pre_save_maplayer(instance, sender, **kwargs):

def geoserver_post_save_map(instance, sender, **kwargs):
instance.set_missing_info()
logger.info("... Creating Thumbnail for Map [%s]" % (instance))
try:
thumbnail_task.delay(
instance.id,
instance.__class__.__name__,
overwrite=False,
check_bbox=True)
except BaseException:
logger.warn("!WARNING! - Failure while Creating Thumbnail for Map [%s]" % (instance))
logger.info("... Creating Thumbnail for Map [%s]" % (instance.title))
create_gs_thumbnail(instance, overwrite=False, check_bbox=True)
24 changes: 2 additions & 22 deletions geonode/geoserver/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#########################################################################

from celery.app import shared_task
from celery.utils.log import get_task_logger

from .helpers import gs_slurp

logger = get_task_logger(__name__)
Expand All @@ -30,25 +32,3 @@ def geoserver_update_layers(self, *args, **kwargs):
Runs update layers.
"""
return gs_slurp(*args, **kwargs)


@shared_task(bind=True, queue='update', expires=30)
def thumbnail_task(self,
instance_id,
instance_type,
overwrite=False,
check_bbox=False):
if instance_type == 'Layer':
from geonode.layers.models import Layer
instance = Layer.objects.get(id=instance_id)
elif instance_type == 'Map':
from geonode.maps.models import Map
instance = Map.objects.get(id=instance_id)
elif instance_type == 'Document':
from geonode.documents.models import Document
instance = Document.objects.get(id=instance_id)
else:
from geonode.base.models import ResourceBase
instance = ResourceBase.objects.get(id=instance_id)
from .helpers import create_gs_thumbnail
create_gs_thumbnail(instance, overwrite, check_bbox)
10 changes: 9 additions & 1 deletion geonode/geoserver/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

requests.packages.urllib3.disable_warnings()


Expand All @@ -42,3 +41,12 @@ def requests_retry(retries=3,
session.mount('http://', adapter)
session.mount('https://', adapter)
return session


def geoserver_requests_session():
from .helpers import ogc_server_settings
_user, _password = ogc_server_settings.credentials
session = requests.Session()
session.auth = (_user, _password)
session = requests_retry(session=session)
return session

0 comments on commit a803592

Please sign in to comment.