Skip to content
3 changes: 2 additions & 1 deletion geonode/harvesting/harvesters/wms.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from geonode.base.models import Link, ResourceBase
from geonode.layers.enumerations import GXP_PTYPES
from geonode.resource.manager import resource_manager
from geonode.services.serviceprocessors import get_service_handler
from geonode.thumbs.exceptions import ThumbnailError

from .. import models
Expand Down Expand Up @@ -151,7 +152,7 @@ def get_extra_config_schema(cls) -> typing.Optional[typing.Dict]:
def get_wms_operations(cls, url, version=None) -> typing.Optional[typing.Dict]:
operations = {}
try:
_url, _parsed_service = WebMapService(url, version=version)
_parsed_service = get_service_handler(url, service_type="WMS")
Comment thread
mattiagiupponi marked this conversation as resolved.
Outdated
for _op in _parsed_service.operations:
_methods = []
for _op_method in getattr(_op, "methods", []) if hasattr(_op, "methods") else _op.get("methods", []):
Expand Down
6 changes: 4 additions & 2 deletions geonode/services/serviceprocessors/wms.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
from ..enumerations import INDEXED
from .. import models
from .. import utils
from . import base
from . import base, get_service_handler

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -288,7 +288,9 @@ def __init__(self, url, geonode_service_id=None, *args, **kwargs):
@property
def parsed_service(self):
cleaned_url, service, version, request = WmsServiceHandler.get_cleaned_url_params(self.ows_endpoint())
_url, _parsed_service = WebMapService(cleaned_url.geturl(), version=version)
_parsed_service = get_service_handler(
cleaned_url.geturl(), service.type, service.id, username=service.username, password=service.get_password()
)
Comment thread
mattiagiupponi marked this conversation as resolved.
return _parsed_service

def probe(self):
Expand Down
7 changes: 6 additions & 1 deletion geonode/services/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ def _get_service_handler(request, service):
multiple Capabilities requests (this is a time saver on servers that
feature many layers.
"""
service_handler = get_service_handler(service.service_url, service.type, service.id)
service_handler = get_service_handler(
service.service_url, service.type, service.id, username=service.username, password=service.get_password()
)
Comment thread
mattiagiupponi marked this conversation as resolved.
if not service_handler.geonode_service_id:
service_handler.geonode_service_id = service.id
# commented out due to jsonserializer error, will be replaced with cache
Expand Down Expand Up @@ -320,6 +322,9 @@ def remove_service(request, service_id):
elif request.method == "POST":
service.dataset_set.all().delete()
# by deleting the harvester we delete also the service
is_cached = service_cache.get(service.base_url)
if is_cached:
service_cache.delete(service.base_url)
Comment thread
mattiagiupponi marked this conversation as resolved.
Outdated
service.harvester.delete()
messages.add_message(request, messages.INFO, _(f"Service {service.title} has been deleted"))
return HttpResponseRedirect(reverse("services"))
Expand Down
Loading