Skip to content

Commit

Permalink
Made GeonodeUnifiedHarvesterWorker the default harvester for geonode …
Browse files Browse the repository at this point in the history
…remotes
  • Loading branch information
Ricardo Garcia Silva committed Oct 19, 2021
1 parent fc47c3d commit a9e112a
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 9 deletions.
2 changes: 0 additions & 2 deletions geonode/harvesting/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@

_DEFAULT_HARVESTERS: typing.Final = [
"geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker",
"geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester",
"geonode.harvesting.harvesters.geonodeharvester.GeonodeCurrentHarvester",
"geonode.harvesting.harvesters.wms.OgcWmsHarvester",
]

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Generated by Django 3.2.7 on 2021-10-11 11:51

from django.db import migrations

_INDIVIDUAL_HARVESTER_PATHS = [
"geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester",
"geonode.harvesting.harvesters.geonodeharvester.GeonodeCurrentHarvester",
]
_UNIFIED_HARVESTER_PATH = "geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker"


def convert_geonode_harvesters_to_unified(apps, schema_editor):
"""Convert GeoNode harvesters to use the unified harvester"""
harvester_model = apps.get_model('harvesting', 'Harvester')
for harvester in harvester_model.objects.all():
if harvester.harvester_type in _INDIVIDUAL_HARVESTER_PATHS:
harvester.harvester_type = _UNIFIED_HARVESTER_PATH
harvester.save()


def reverse_harvester_conversion(apps, schema_editor):
harvester_model = apps.get_model('harvesting', 'Harvester')
for harvester in harvester_model.objects.all():
if harvester.harvester_type == _UNIFIED_HARVESTER_PATH:
harvester.harvester_type = _INDIVIDUAL_HARVESTER_PATHS[0]
harvester.save()


class Migration(migrations.Migration):

dependencies = [
('harvesting', '0046_alter_harvester_harvester_type'),
]

operations = [
migrations.RunPython(convert_geonode_harvesters_to_unified, reverse_code=reverse_harvester_conversion),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.7 on 2021-10-11 12:11

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('harvesting', '0047_convert_geonode_harvesters_to_unified'),
]

operations = [
migrations.AlterField(
model_name='harvester',
name='harvester_type',
field=models.CharField(choices=[('geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker', 'geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker'), ('geonode.harvesting.harvesters.wms.OgcWmsHarvester', 'geonode.harvesting.harvesters.wms.OgcWmsHarvester')], default='geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker', help_text='Harvester class used to perform harvesting sessions. New harvester types can be added by an admin by changing the main GeoNode `settings.py` file', max_length=255),
),
]
2 changes: 1 addition & 1 deletion geonode/harvesting/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@


class HarvesterAdminTestCase(GeoNodeBaseTestSupport):
harvester_type = 'geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester'
harvester_type = 'geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker'

def setUp(self):
self.factory = RequestFactory()
Expand Down
11 changes: 5 additions & 6 deletions geonode/harvesting/tests/test_api_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class BriefHarvesterSerializerTestCase(GeoNodeBaseTestSupport):
remote_url = 'test.com'
name = 'This is geonode harvester'
user = get_user_model().objects.get(username='AnonymousUser')
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester"
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker"

@classmethod
def setUpTestData(cls):
Expand All @@ -48,7 +48,7 @@ class HarvesterSerializerTestCase(GeoNodeBaseTestSupport):
remote_url = 'test.com'
name = 'This is geonode harvester'
user = get_user_model().objects.get(username='AnonymousUser')
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester"
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker"

@classmethod
def setUpTestData(cls):
Expand Down Expand Up @@ -76,7 +76,7 @@ def test_validate_also_validates_worker_specific_config(self, mock_validate_conf
"name": "phony",
"remote_url": "http://fake.com",
"user": 1,
"harvester_type": "geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester",
"harvester_type": "geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker",
"harvester_type_specific_configuration": {"something": "fake config"},
}

Expand Down Expand Up @@ -125,7 +125,6 @@ def test_create(self):
"remote_url": "http://fake.com",
"user": 1,
}

request = _REQUEST_FACTORY.post("/api/v2/harvesters/")
request.user = self.user

Expand Down Expand Up @@ -237,7 +236,7 @@ def setUpTestData(cls):
remote_url = 'test.com'
name = 'This is geonode harvester'
user = get_user_model().objects.get(username='AnonymousUser')
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester"
harvester_type = "geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker"
cls.harvester = models.Harvester.objects.create(
remote_url=remote_url,
name=name,
Expand Down Expand Up @@ -270,7 +269,7 @@ def setUpTestData(cls):
remote_url='test.com',
name='This is geonode harvester',
default_owner=get_user_model().objects.get(username='AnonymousUser'),
harvester_type="geonode.harvesting.harvesters.geonodeharvester.GeonodeLegacyHarvester"
harvester_type="geonode.harvesting.harvesters.geonodeharvester.GeonodeUnifiedHarvesterWorker"
)
cls.harvestable_resource = models.HarvestableResource.objects.create(
unique_identifier=cls.unique_identifier,
Expand Down

0 comments on commit a9e112a

Please sign in to comment.