Skip to content

Conversation

mattiagiupponi
Copy link
Contributor

@mattiagiupponi mattiagiupponi commented Jul 23, 2025

… harvesters

Checklist

Reviewing is a process done by project maintainers, mostly on a volunteer basis. We try to keep the overhead as small as possible and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

For all pull requests:

  • Confirm you have read the contribution guidelines
  • You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in the documentation)
  • Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.

The following are required only for core and extension modules (they are welcomed, but not required, for contrib modules):

  • There is a ticket in https://github.com/GeoNode/geonode/issues describing the issue/improvement/feature (a notable exemption is, changes not visible to end-users)
  • The issue connected to the PR must have Labels and Milestone assigned
  • PR for bug fixes and small new features are presented as a single commit
  • PR title must be in the form "[Fixes #<issue_number>] Title of the PR"
  • New unit tests have been added covering the changes, unless there is an explanation on why the tests are not necessary/implemented

Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or inapplicable.

@cla-bot cla-bot bot added the cla-signed CLA Bot: community license agreement signed label Jul 23, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @mattiagiupponi, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the WMS dataset import process by introducing automatic integration with existing harvesters, ensuring better organization and management of remote resources. It also includes a refactoring effort to improve the clarity of WMS layer identification within the system.

Highlights

  • WMS Dataset Harvesting Integration: I've implemented functionality to automatically connect newly imported WMS datasets to existing harvesters. This occurs if the remote service URL of the imported dataset matches a pre-configured harvester, streamlining the management of external WMS resources.
  • Field Name Refactoring: The lookup field in the WMS remote resource serializer has been renamed to identifier. This change, along with updates to all corresponding code and tests, improves clarity and consistency in how WMS layers are referenced.
  • Enhanced Testing: A new end-to-end test case has been added to specifically validate the automatic creation of harvestable resources for WMS imports. Existing WMS import tests were also updated to reflect the field name change and use environment variables for better test configurability.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the WMS remote resource handler to use identifier instead of lookup for clarity and introduces functionality to automatically connect a newly created WMS dataset to an existing harvester if the service URL matches. The changes are supported by new end-to-end tests. My review focuses on fixing a syntax error and a logical issue in the tests, and improving test robustness.

@mattiagiupponi mattiagiupponi added this to the 5.0.0 milestone Jul 24, 2025
@mattiagiupponi mattiagiupponi changed the title Allowing remove WMS dataset to be automatically connected to existing… [Fixes #13381] Allowing remove WMS dataset to be automatically connected to existing… Jul 24, 2025
Copy link

codecov bot commented Jul 24, 2025

Codecov Report

❌ Patch coverage is 69.60784% with 31 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.46%. Comparing base (8771c80) to head (c5c2f55).
⚠️ Report is 2 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (8771c80) and HEAD (c5c2f55). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (8771c80) HEAD (c5c2f55)
importer 1 0
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #13380      +/-   ##
==========================================
- Coverage   73.25%   66.46%   -6.80%     
==========================================
  Files         915      916       +1     
  Lines       52364    52458      +94     
  Branches     5962     5972      +10     
==========================================
- Hits        38359    34864    -3495     
- Misses      12454    16114    +3660     
+ Partials     1551     1480      -71     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mattiagiupponi mattiagiupponi marked this pull request as ready for review July 24, 2025 13:02
@mattiagiupponi mattiagiupponi marked this pull request as draft July 24, 2025 13:03
@mattiagiupponi mattiagiupponi marked this pull request as ready for review July 24, 2025 15:19
@mattiagiupponi mattiagiupponi requested a review from giohappy July 24, 2025 15:19
@mattiagiupponi mattiagiupponi requested a review from Gpetrak July 24, 2025 15:35
@giohappy giohappy changed the title [Fixes #13381] Allowing remove WMS dataset to be automatically connected to existing… [Fixes #13381] Allowing remote WMS dataset to be automatically connected to existing… Jul 31, 2025
@mattiagiupponi mattiagiupponi requested review from Gpetrak and removed request for giohappy September 17, 2025 10:29
Copy link
Contributor

@Gpetrak Gpetrak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mattiagiupponi please check the comment

# if exists, we need to be sure that the resource from geonode is getting connected
if not hresource.geonode_resource:
hresource.geonode_resource = geonode_resource
hresource.should_be_harvested = True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mattiagiupponi in this line: hresource.should_be_harvested = True I think we should check if the harvester is sheduled or not (if <Harvester>.scheduling_enabled = True) Because otherwise, I think that we should keep the hresource.should_be_harvested as False. should_be_harvested is used only by a shceduled harvester in order to be aware that in the next run, this resource will be harvested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed CLA Bot: community license agreement signed enhancement master
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allowing remote WMS dataset to be automatically connected to existing harvesters
3 participants