Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GNIP 89: Architecture Design - Resource and Storage Manager Modules (#…
…7670) * Generalization of update method, rename gs_resource and fix regiorns * Refactor append and replace with resource_manager * [Resource Manager] Move Security logic to the Resource Manager * [Resource Manager] Move Security logic to the Resource Manager * [Resource Manager] Move Security logic to the Resource Manager * Handling resource storing via replace or append * Handling resource storing via replace or append * Enrich replace/append, fix broken thumburl in panels * Add storage of files for resource_manager.append * Pr comments: fix layer permission error, add header in new file, remove dependencies with gs_catalog from resource_manager, add layer storage into revise_resource_value * Fix curated_thumbnail and let it store the file via storage_manager. Add new def to storages and rollback curated thumb for app and doc * Fix curated_thumbnail and let it store the file via storage_manager. Add new def to storages and rollback curated thumb for app and doc * Add missign migration file for curatedthub * [Minor][Code Cleanup] rename "_storage_manager" to "_concrete_storage_manager" * Rename storeType value in geonode * Fix pr comments * Fix pr comments * Missing migration files * Flake8 formatting * Update requirements.txt * [Pep8] Using f-strings instead of concatenated strings * [Dependencies] typo on the requirements repo definition * [Dependencies] Align setup.cfg to requirements.txt * First draft of adding blob field to ResourceBase * [Resource Manager] Fix "set_permissions" removal method * [Dependencies] Align setup.cfg to requirements.txt * Fix data serializer in order to retreive data blob only if required * Resourcebase migration file * [Dependencies] Align setup.cfg to requirements.txt * [LGTM] Fix LGTM Issues * [LGTM] Fix LGTM Issues * Remove unused models * Remove unused models * [Dependencies] Align setup.cfg to requirements.txt * - Fix "synch_guardian" celery task * Fix geostory value update * [Ref #7298] json field dependency confusion * Fix migrations process * - Update docker entries logs and ngix image * Fix Map creation * Fix Map creation * - Move data/blob serializer to ResourceBase * - Pep8 issues * - Fix geoapp serializer * [CircleCI] Test fixes * [GeoStories] Fix data save as JSON * Fix error in save geostory metadata * Exclude blob and files from resourcebase form * [CircleCI] Test fixes * [CircleCI] Test fixes * [CircleCI] Test fixes * Minor bugfix for maps and resource update * Fix storage manager tests * [CircleCI] Test fixes * Fix storage manager tests * [CircleCI] Test fixes * [CircleCI] Test fixes * [CircleCI] Test fixes * [CircleCI] Test fixes * [CircleCI] Test fixes * [CircleCI] Test fixes * - Fixes GeoServer append/replace operation * - Fixes GeoServer append/replace operation * [Fixes geosolutions-it/nexus-geonode#225] Legends links on maps are broken * FIx serializer * [CircleCI] Test fixes * [Fixes #7675] Problem creating thumbnail * [LGTM] Do not modify the source dictionary * [WIP] [Resource Manager] Copy operation * [Code Quality] Run pyupgrade to ensure the code is modernized. * [Dependencies] Align setup.cfg to requirements.txt * [LGTM] Fix LGTM issues * [LGTM] Fix LGTM issues * [Resource Manager] Implemented "copy" method * [Fixes #220]: Trying to delete a resource from the main page fails * [LGTM] Fix LGTM issues * - Fix and merge migrations * Initial draft of new harvesting app * Continue implementation of base harvesting infrastructure * Add string representation to harvester model * Add django_celery_results to enable storing results integrated with django Also: - Add resource descriptor base classes - Start parsing CSW record - Draft harvesting task * Extract relevant information from a remote GeoNode resource * Add ability to parse harvester type specific config with jsonschema Also add a stricter XML parser and use it * Use API v1 for the GeoNode legacy harvester This is now being used over the CSW API because there doesn't seem to be any way to filter specific resource types (document, layer, etc) when using the CSW API. Also begin adding a WMS harvester * Continue implementation * Add harvestable resource list and some way to control them - wip * Refactor harvesting in order to take into account selection of which resources should be harvested * Automatically check harvestable resources when creating a harvester This is done when creating a harvester both on the django admin and also via REST API * Made BaseHarvesterWorker a proper AbstractBaseClass This shall make the interface that child harvesters neet to implement be more evident. Also refactored API endpoints for accessing a harvester's harvestable resources and managing their respective `should_be_harvested` property. Implementation is relying on nested routers, as provided by the drf-extensions package * Work on REST API for harvesting A harvester reource's status can be set to one of the predefined values in order to request updates of the harvester data * Implement regeneration of harvestable resources when worker config is changed via admin and API * Refactor base harvester worker The harvesting async workflow seems to be mostly modelled now, with the GeoNode legacy harvester as a reference implementation of a worker This commit has some other WIP changes * Launch update of harvestble resources with django's on_commit in order to ensure correct behavior * Add some docstrings * fix some bugs and add support for django 3.2 * Store a list of CRSs instead of a single one * base harvester provides a concrete implementation of update_geonode_resource Previously this was an abstract method, but it is more sensible to provide a default. Note that the actual implementation of this method is not done yet. * Adjust name of harvesting dispatcher task in serializers.py * Update harvester to update using ResourceManager * Fix jsonfield error * adapting base worker * fix failing test * [Resource Manager] Implement "copy" resource method #224 * Initial integration with resource_manager for the GeoNode harvester * [Fixes #7692] Layers caching problem (#7691) * Implement removal of harvestable resources that are no longer relevant Also improved GeoNodeLegacyHarvester's abilities to report on existing remote resources. This now takes into account the current preferences for harvesting layers, maps and documents * [CircleCI] Trying to speed up tests * [CircleCI] Trying to speed up tests * [CircleCI] Trying to speed up tests * [CircleCI] Trying to speed up tests * [CircleCI] Trying to speed up tests * [CircleCI] Fix and speeding up tests: api.tests base.tests * [CircleCI] Fix and speeding up tests: api.tests base.tests * [Issue 80] Add name and typename to legacy api * [Issue 80] Add links to v2 api * [Issue 80] rollback unwanted changes * Implement removal of orphaned resources * [CircleCI] Fix and speeding up tests: api.tests base.tests * [CircleCI] Fix and speeding up tests: api.tests base.tests * Implement saving a document's URL and thumbnail in the GeoNode harvesting worker * [CircleCI] Fix and speeding up tests: api.tests base.tests * - PEP8 issues plus a minor refactoring of the harvesting api urls pattern * - PEP8 issues use logger.exception accordingly to the doc and remove unneeded exceptions concat * get rid of redundant exception logging * Fix error pk assignee by sequnce object * - Make sure the "saved_layer" is valid * Extend HarvesterWorkerBase to allow creating other types of geonode resources * [LGTM] Fix LGTM issues * - Add "rabbitmqadmin" shell utility command * [CircleCI] Fix and speedup security tests * Make resource description more flexible in order to handle missing values * [Pep8] Fix issues * [CircleCI] Fix and speed-up Test Cases * [Fixes #7717] Temporary files created under static root are never removed * [Pep8] Fix issues * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [Fixes #7717] Temporary files created under static root are never removed * [CircleCI] Fix and speed-up Test Cases * Missing changes from 7693 * Missing changes from 7693 * [CircleCI] Fix and speed-up Test Cases * [Fixes #262] Rename Layer / Layers to Dataset / Datasets inside operations pages * [CircleCI] Fix and speed-up Test Cases * Add mo files * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * [CircleCI] Fix and speed-up Test Cases * Modify button links * - Typo: UnboundLocalError: local variable '_disable_layer_cache' referenced before assignment * [Resource Manager] Make the RM able to set thumbs for Documents also * - Avoid redundant logs on error stdout * - Added local enviroment to simplify people advanced install setup * [Hardening] Improve background error logging and avoid usefulness cycles in the case the image is good * [Dependencies] Align "setup.cfg" to the "requirements.txt" file * Fix MetaData update redirect * [Resource Manager] Ingest method * [Hardening] Catch IntegrityError on contributios migrations * ISSUE 277: add storetype to resourcebase * [Resource Manager] GeoServer concrete "ingest": make a temporary local copy of the stored files * [CircleCI] Tests fixes * [Pep8] Fix pep8 issues (cherry picked from commit 7360cdb) * [CircleCI] Tests fixes * [CircleCI] Tests fixes * ISSUE 277: rename storetype for layers * [CircleCI] Tests fixes * [CircleCI] Tests fixes * [CircleCI] Tests fixes * [ISSUE #298] Add state property to resources endpoint response * Rename endpoint from layers to datasets * [WIP][ISSUE #299] Expose resource manager methods as resource REST API endpoints * [WIP][ISSUE #299] Expose resource manager methods as resource REST API endpoints * [CircleCI] Tests fixes * change Layer to Dataset * [CircleCI] Tests fixes * [CircleCI] Tests fixes * [WIP][ISSUE #299] Expose resource manager methods as resource REST API endpoints * [CircleCI] Tests fixes * [CircleCI] Tests fixes * - Optimize migrations - Fix wrong field on resource/utils.py methods * - Fix Migrations * - Bump django-geonode-mapstore-client to version 4.0.0 * [CircleCI] Test fixes * [CircleCI] Test fixes * Rename endpoint from layers to datasets #885 Co-authored-by: mattiagiupponi <[email protected]> Co-authored-by: mattiagiupponi <[email protected]> Co-authored-by: marthamareal <[email protected]> Co-authored-by: Ricardo Garcia Silva <[email protected]> Co-authored-by: meomancer <[email protected]> Co-authored-by: Giovanni Allegri <[email protected]> Co-authored-by: Giovanni Allegri <[email protected]>
- Loading branch information