Skip to content

Commit

Permalink
[Fixes #4181] WMS links are not created for Remote services
Browse files Browse the repository at this point in the history
  • Loading branch information
afabiani committed Jan 25, 2019
1 parent 9266f43 commit 9dc568a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
29 changes: 12 additions & 17 deletions geonode/services/serviceprocessors/wms.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,24 +298,19 @@ def _create_layer_legend_link(self, geonode_layer):
)

def _create_layer_service_link(self, geonode_layer):
Link.objects.get_or_create(
ogc_wms_url = geonode_layer.ows_url
ogc_wms_name = 'OGC WMS: %s Service' % geonode_layer.store
ogc_wms_link_type = 'OGC:WMS'
Link.objects.update_or_create(
resource=geonode_layer.resourcebase_ptr,
url=geonode_layer.ows_url,
name="OGC {}: {} Service".format(
geonode_layer.remote_service.type,
geonode_layer.store
),
link_type="OGC:WMS",
defaults={
"extension": "html",
"name": "OGC {}: {} Service".format(
geonode_layer.remote_service.type,
geonode_layer.store
),
"url": geonode_layer.ows_url,
"mime": "text/html",
"link_type": "OGC:WMS",
}
name=ogc_wms_name,
link_type=ogc_wms_link_type,
defaults=dict(
extension='html',
url=ogc_wms_url,
mime='text/html',
link_type=ogc_wms_link_type
)
)

def _get_cascaded_layer_fields(self, geoserver_resource):
Expand Down
10 changes: 10 additions & 0 deletions geonode/services/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
from . import models
from .serviceprocessors import get_service_handler

from geonode.layers.models import Layer
from geonode.catalogue.models import catalogue_post_save

logger = logging.getLogger(__name__)


Expand All @@ -54,6 +57,13 @@ def harvest_resource(self, harvest_job_id):
harvest_job.resource_id, harvest_job.service)
result = True
logger.debug("Resource harvested successfully")

logger.debug("Updating Layer Metadata ...")
try:
layer = Layer.objects.get(alternate=harvest_job.resource_id)
catalogue_post_save(instance=layer, sender=layer.__class__)
except:
logger.error("Remote Layer [%s] couldn't be updated" % (harvest_job.resource_id))
except Exception as err:
logger.exception(msg="An error has occurred while harvesting "
"resource {!r}".format(harvest_job.resource_id))
Expand Down

0 comments on commit 9dc568a

Please sign in to comment.