Skip to content

Commit 02a7619

Browse files
Upgrade ubuntu base image to 24.04 LTS (#13616)
* Upgrade gdal to 3.11.4 * Upgrade gdal to 3.11.4 * Add base image with gdal upgrade * upgrade base ubuntu image and gdal upgrade * upgrade base ubuntu image and gdal * minor fix on gdal exec path and geoserver upgrade * Upgrade ubuntu to 24.04, gdal upgrade and pyton3.12 * Upgrade ubuntu to 24.04, gdal upgrade and pyton3.12 * Upgrade ubuntu to 24.04, gdal upgrade and pyton3.12
1 parent ac17cfd commit 02a7619

File tree

20 files changed

+63
-59
lines changed

20 files changed

+63
-59
lines changed

.env_dev

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,5 +210,5 @@ RESTART_POLICY_WINDOW=120s
210210

211211
DEFAULT_MAX_PARALLEL_UPLOADS_PER_USER=5
212212
IMPORTER_ENABLE_DYN_MODELS=True
213-
UPSERT_CHUNK_SIZE= 10
213+
UPSERT_CHUNK_SIZE= 100
214214
UPSERT_LIMIT_ERROR_LOG=100

.github/workflows/flake8.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python-version: [ '3.10', '3.11']
16+
python-version: [ '3.12']
1717

1818
runs-on: ubuntu-latest
1919

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM geonode/geonode-base:latest-ubuntu-22.04
1+
FROM geonode/geonode-base:latest-ubuntu-24.04
22
LABEL GeoNode development team
33

44
# copy local geonode src inside container
@@ -22,6 +22,7 @@ RUN chmod +x /usr/bin/celery-cmd
2222
# RUN cd /usr/src/geonode-contribs/geonode-logstash; pip install --upgrade -e . \
2323
# cd /usr/src/geonode-contribs/ldap; pip install --upgrade -e .
2424

25+
RUN . /usr/src/venv/bin/activate
2526
RUN yes w | pip install --src /usr/src -r requirements.txt &&\
2627
yes w | pip install -e .
2728

docker-compose.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ x-common-django:
1111
env_file:
1212
- .env
1313
volumes:
14+
- .:/usr/src/geonode/
1415
- statics:/mnt/volumes/statics
1516
- geoserver-data-dir:/geoserver_data/data
1617
- backup-restore:/backup_restore
@@ -91,7 +92,7 @@ services:
9192

9293
# Geoserver backend
9394
geoserver:
94-
image: geonode/geoserver:2.27.2-latest
95+
image: geonode/geoserver:2.27.x-latest
9596
container_name: geoserver4${COMPOSE_PROJECT_NAME}
9697
healthcheck:
9798
test: "curl -m 10 --fail --silent --write-out 'HTTP CODE : %{http_code}\n' --output /dev/null http://geoserver:8080/geoserver/ows"

entrypoint.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
# Exit script in case of error
44
set -e
5+
source /usr/src/venv/bin/activate
56

67
INVOKE_LOG_STDOUT=${INVOKE_LOG_STDOUT:-FALSE}
78
invoke () {
89
if [ $INVOKE_LOG_STDOUT = 'true' ] || [ $INVOKE_LOG_STDOUT = 'True' ]
910
then
10-
/usr/local/bin/invoke $@
11+
$(which invoke) $@
1112
else
12-
/usr/local/bin/invoke $@ > /usr/src/geonode/invoke.log 2>&1
13+
$(which invoke) $@ > /usr/src/geonode/invoke.log 2>&1
1314
fi
1415
echo "$@ tasks done"
1516
}

geonode/base/bbox_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def translate_polygons(
119119
"""
120120
ref.: https://towardsdatascience.com/around-the-world-in-80-lines-crossing-the-antimeridian-with-python-and-shapely-c87c9b6e1513
121121
"""
122-
for polygon in geometry_collection:
122+
for polygon in [geometry_collection]:
123123
(minx, _, maxx, _) = polygon.bounds
124124
if minx < -180:
125125
geo_polygon = affinity.translate(polygon, xoff=360)

geonode/base/management/commands/thesaurus_subcommands/list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def list_thesauri():
1919
else:
2020
# DISABLED
2121
# [0..n]
22-
card = f'[{t.card_min}..{t.card_max if t.card_max!=-1 else "N"}] '
22+
card = f'[{t.card_min}..{t.card_max if t.card_max != -1 else "N"}] '
2323
logger.info(
2424
f'id:{t.id:2} sort:{t.order:3} {card} name={t.identifier.ljust(max_id_len)} title="{t.title}" URI:{t.about}\n'
2525
)

geonode/br/management/commands/utils/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ def restore_db(config, db_name, db_user, db_port, db_host, db_passwd, source_fol
287287
f" -h {db_host} -p {str(db_port)} -d {db_name}"
288288
f" -U {db_user} --role={db_user} "
289289
f' -t "{table_name}" '
290-
f' {"-c" if not preserve_tables else "" } '
290+
f' {"-c" if not preserve_tables else ""} '
291291
f" {os.path.join(source_folder, filename)} "
292292
)
293293
ret = subprocess.call(command, env={"PGPASSWORD": db_passwd}, shell=True)

geonode/facets/tests.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -649,8 +649,8 @@ def test_group_facet_api_call(self):
649649
},
650650
}
651651

652-
url_filtered = f"{reverse('get_facet',args=['group'])}?filter{{group.in}}={self.group_admin.id}&include_topics=true&key={self.group_admin.id}"
653-
url_base = f"{reverse('get_facet',args=['group'])}"
652+
url_filtered = f"{reverse('get_facet', args=['group'])}?filter{{group.in}}={self.group_admin.id}&include_topics=true&key={self.group_admin.id}"
653+
url_base = f"{reverse('get_facet', args=['group'])}"
654654

655655
response_filtered = self.client.get(url_filtered)
656656
response_dict_filtered = response_filtered.json()
@@ -672,23 +672,23 @@ def test_group_facet_api_call(self):
672672

673673
def test_group_facets_are_filtered_by_words(self):
674674
# there are some groups and the facets return them
675-
url = f"{reverse('get_facet',args=['group'])}"
675+
url = f"{reverse('get_facet', args=['group'])}"
676676

677677
response = self.client.get(url)
678678
self.assertEqual(200, response.status_code, response.json())
679679

680680
self.assertTrue(response.json().get("topics", {}).get("total", 0) > 0)
681681

682682
# topic_contains with real name should return 1
683-
url = f"{reverse('get_facet',args=['group'])}?topic_contains=UserAdmin"
683+
url = f"{reverse('get_facet', args=['group'])}?topic_contains=UserAdmin"
684684
response = self.client.get(url)
685685

686686
self.assertEqual(200, response.status_code, response.json())
687687

688688
self.assertEqual(1, response.json().get("topics", {}).get("total", 0))
689689

690690
# topic_contains with a random string to be searched for should be 0
691-
url = f"{reverse('get_facet',args=['group'])}?topic_contains=abc123scfuqbrwefbasascgiu"
691+
url = f"{reverse('get_facet', args=['group'])}?topic_contains=abc123scfuqbrwefbasascgiu"
692692
response = self.client.get(url)
693693

694694
self.assertEqual(200, response.status_code, response.json())

geonode/harvesting/tests/test_tasks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@ def test_handle_harvesting_error_cleans_up_harvest_execution(self):
190190

191191
@mock.patch("geonode.harvesting.tasks.models.Harvester")
192192
def test_check_harvester_available(self, mock_harvester_model):
193-
mock_harvester = mock.MagicMock(spec=models.Harvester).return_value
193+
194+
mock_harvester = mock_harvester_model
194195
mock_harvester_model.objects.get.return_value = mock_harvester
195196
tasks.check_harvester_available(1000)
196197
mock_harvester.update_availability.assert_called()

0 commit comments

Comments
 (0)