From 3aa0277446ebeb2cf6a9a96114735210b536624e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Thu, 27 Jun 2019 11:50:14 +0200 Subject: [PATCH] Moves the locales to the config container --- docker/config/Dockerfile | 5 +- docker/config/requirements.txt | 2 - .../scaffolds/create/Dockerfile_tmpl | 48 ++++++++++++++----- .../update/geoportal/CONST_Makefile_tmpl | 13 +---- .../c2cgeoportal_geoportal/views/dynamic.py | 2 +- .../tests/functional/test_dynamicview.py | 8 ++-- requirements-dev.txt | 1 + 7 files changed, 43 insertions(+), 36 deletions(-) delete mode 100644 docker/config/requirements.txt diff --git a/docker/config/Dockerfile b/docker/config/Dockerfile index b93f53d591..41209a1f45 100644 --- a/docker/config/Dockerfile +++ b/docker/config/Dockerfile @@ -6,9 +6,6 @@ ENV VERSION=$VERSION RUN \ apt-get update && \ - apt-get install --assume-yes --no-install-recommends gettext-base python3-pip python3-setuptools && \ + apt-get install --assume-yes --no-install-recommends gettext-base python3 && \ apt-get clean && \ rm --recursive --force /var/lib/apt/lists/* - -COPY requirements.txt /tmp -RUN python3 -m pip install --requirement=/tmp/requirements.txt diff --git a/docker/config/requirements.txt b/docker/config/requirements.txt deleted file mode 100644 index 723d0ff0aa..0000000000 --- a/docker/config/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -c2c.template~=2.1.0 -pykwalify==1.7.0 diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl b/geoportal/c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl index 3c1f44364b..38929d3c96 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl @@ -1,10 +1,7 @@ -FROM camptocamp/geomapfish-config-build:{{geomapfish_version}} - -ARG PGSCHEMA -ENV PGSCHEMA=$PGSCHEMA - -COPY . /tmp/config/ +FROM camptocamp/geomapfish-build:{{geomapfish_version}} as builder +ENV LANGUAGES="en fr de" +ENV VARS_FILE=vars.yaml ENV CONFIG_VARS sqlalchemy.url sqlalchemy.pool_recycle sqlalchemy.pool_size sqlalchemy.max_overflow \ sqlalchemy.use_batch_mode sqlalchemy_slave.url sqlalchemy_slave.pool_recycle sqlalchemy_slave.pool_size \ sqlalchemy_slave.max_overflow sqlalchemy_slave.use_batch_mode schema schema_static enable_admin_interface \ @@ -14,7 +11,37 @@ ENV CONFIG_VARS sqlalchemy.url sqlalchemy.pool_recycle sqlalchemy.pool_size sqla reset_password fulltextsearch global_headers headers authorized_referers hooks stats db_chooser \ dbsessions urllogin host_forward_host smtp c2c.base_path welcome_email \ lingua_extractor interfaces_config interfaces devserver_url api -ENV VARS_FILE=vars.yaml + +COPY . /tmp/config/ + +RUN \ + for lang in ${LANGUAGES}; \ + do \ + node /usr/bin/compile-catalog \ + /opt/c2cgeoportal_geoportal/c2cgeoportal_geoportal/locale/${lang}/LC_MESSAGES/ngeo.po \ + /opt/c2cgeoportal_geoportal/c2cgeoportal_geoportal/locale/${lang}/LC_MESSAGES/gmf.po \ + /tmp/config/geoportal/{{package}}_geoportal/locale/${lang}/LC_MESSAGES/{{package}}_geoportal-client.po \ + > /tmp/config/geoportal/{{package}}_geoportal/static/${lang}.json; \ + done && \ + rm -rf /tmp/config/geoportal/{{package}}_geoportal/locale + +RUN \ + cd /tmp/config/geoportal/ && \ + c2c-template --vars ${VARS_FILE} \ + --get-config {{package}}_geoportal/config.yaml \ + ${CONFIG_VARS} && \ + pykwalify --data-file {{package}}_geoportal/config.yaml \ + --schema-file CONST_config-schema.yaml && \ + rm CONST_* vars.yaml + +############################################################################### + +FROM camptocamp/geomapfish-config-build:{{geomapfish_version}} + +ARG PGSCHEMA +ENV PGSCHEMA=$PGSCHEMA + +COPY --from=builder /tmp/config/ /tmp/config/ RUN mv /tmp/config/bin/* /usr/bin/ && \ if [ -e /tmp/config/mapserver ]; then mv /tmp/config/mapserver /etc/; fi && \ @@ -25,12 +52,7 @@ RUN mv /tmp/config/bin/* /usr/bin/ && \ if [ -e /tmp/config/front_dev ]; then mv /tmp/config/front_dev /etc/haproxy_dev; fi && \ mkdir --parent /usr/local/tomcat/webapps/ROOT/ && \ if [ -e /tmp/config/print ]; then mv /tmp/config/print/print-apps /usr/local/tomcat/webapps/ROOT/; fi && \ - cd /tmp/config/geoportal && \ - mkdir --parent /etc/geomapfish/ && \ - c2c-template --vars ${VARS_FILE} --get-config /tmp/_config.yaml ${CONFIG_VARS} && \ - pykwalify --data-file /tmp/_config.yaml --schema-file CONST_config-schema.yaml && \ - mv /tmp/_config.yaml /etc/geomapfish/config.yaml && \ - mv /tmp/config/geoportal/{{package}}_geoportal/static /etc/geomapfish/ && \ + mv /tmp/config/geoportal/{{package}}_geoportal/ /etc/geomapfish/ && \ chmod g+w -R /etc /usr/local/tomcat/webapps && \ adduser www-data root diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/update/geoportal/CONST_Makefile_tmpl b/geoportal/c2cgeoportal_geoportal/scaffolds/update/geoportal/CONST_Makefile_tmpl index a645980c4d..3426c86cae 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/update/geoportal/CONST_Makefile_tmpl +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/update/geoportal/CONST_Makefile_tmpl @@ -39,11 +39,8 @@ APP_JS_FILES = $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '* HTML_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.html' 2> /dev/null) SASS_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.scss' 2> /dev/null) CSS_FILES += $(shell find $(PACKAGE)_geoportal/static-ngeo/js -type f -name '*.css' 2> /dev/null) -JSON_CLIENT_LOCALISATION_FILES = $(addprefix $(APP_OUTPUT_DIR)/, $(addsuffix .json, $(LANGUAGES))) ANGULAR_LOCALES_FILES = $(addprefix $(APP_OUTPUT_DIR)/angular-locale_, $(addsuffix .js, $(LANGUAGES))) -NGEO_OUTPUT_FILES = $(JSON_CLIENT_LOCALISATION_FILES) \ - $(ANGULAR_LOCALES_FILES) -NGEO_OUTPUT_FILES += apps +NGEO_OUTPUT_FILES = $(ANGULAR_LOCALES_FILES) apps NGEO_API_OUTPUT_JS_FILE ?= $(APP_OUTPUT_DIR)/api.js.tmpl NGEO_API_OUTPUT_FILES += $(NGEO_API_OUTPUT_JS_FILE) $(APP_OUTPUT_DIR)/api.css @@ -93,14 +90,6 @@ eslint: $(APP_JS_FILES) .PHONY: build-ngeo build-ngeo: $(NGEO_OUTPUT_FILES) -.PRECIOUS: $(APP_OUTPUT_DIR)/%.json -$(APP_OUTPUT_DIR)/%.json: - mkdir --parent $(dir $@) - node /usr/bin/compile-catalog \ - /opt/c2cgeoportal_geoportal/c2cgeoportal_geoportal/locale/$*/LC_MESSAGES/ngeo.po \ - /opt/c2cgeoportal_geoportal/c2cgeoportal_geoportal/locale/$*/LC_MESSAGES/gmf.po \ - $(PACKAGE)_geoportal/locale/$*/LC_MESSAGES/$(PACKAGE)_geoportal-client.po > $@ - $(APP_OUTPUT_DIR)/angular-locale_%.js: /usr/lib/node_modules/ngeo/package.json language_mapping mkdir --parent $(dir $@) rm --force $@ diff --git a/geoportal/c2cgeoportal_geoportal/views/dynamic.py b/geoportal/c2cgeoportal_geoportal/views/dynamic.py index 2b9103b312..779e0b146e 100644 --- a/geoportal/c2cgeoportal_geoportal/views/dynamic.py +++ b/geoportal/c2cgeoportal_geoportal/views/dynamic.py @@ -72,7 +72,7 @@ def dynamic(self): 'interface': interface_name, 'cache_version': get_cache_version(), 'lang_urls': { - lang: self.request.static_url('/etc/static-ngeo/{lang}.json'.format( + lang: self.request.static_url('/etc/geomapfish/static/{lang}.json'.format( package=self.request.registry.settings["package"], lang=lang, _query={ diff --git a/geoportal/tests/functional/test_dynamicview.py b/geoportal/tests/functional/test_dynamicview.py index dc8d3c585d..f78683fb78 100644 --- a/geoportal/tests/functional/test_dynamicview.py +++ b/geoportal/tests/functional/test_dynamicview.py @@ -197,7 +197,7 @@ def test_constant_dynamic_lang_urls(self): assert 'XTest' in dynamic['constants'], dynamic assert dynamic['constants']['XTest'] == { - 'fr': '/dummy/route/url//etc/static-ngeo/fr.json' + 'fr': '/dummy/route/url//etc/geomapfish/static/fr.json' } def test_constant_dynamic_fulltextsearch_groups(self): @@ -269,7 +269,7 @@ def test_route_with_keywords(self): } } })) as config: - config.add_static_view(name='static-ngeo', path='/etc/static-ngeo') + config.add_static_view(name='static', path='/etc/geomapfish/static') config.add_route('test', '/test') config.add_route('route_with_keywords', '/test/{key1}/{key2}') request = DummyRequest({'interface': 'test'}) @@ -290,7 +290,7 @@ def test_route_with_segments(self): } } })) as config: - config.add_static_view(name='static-ngeo', path='/etc/static-ngeo') + config.add_static_view(name='static', path='/etc/geomapfish/static') config.add_route('test', '/test') config.add_route('route_with_segments', '/test') request = DummyRequest({'interface': 'test'}) @@ -318,7 +318,7 @@ def test_route_with_all(self): } } })) as config: - config.add_static_view(name='static-ngeo', path='/etc/static-ngeo') + config.add_static_view(name='static', path='/etc/geomapfish/static') config.add_route('test', '/test') config.add_route('route_with_all', '/test/{key1}/{key2}') request = DummyRequest({'interface': 'test'}) diff --git a/requirements-dev.txt b/requirements-dev.txt index 41e62b7e62..68fcc2e284 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -18,6 +18,7 @@ pep8~=1.7.1 # lint pep8-naming~=0.8.2 # Lint polib~=1.1.0 # i18n pyflakes~=2.1.1 # lint, flake8 +pykwalify==1.7.0 # Validate config pylint~=2.3.1 # lint Pillow~=6.0.0 # Tile generation, rq.filter: < 6.0.0 pytest-cov~=2.7.1 # tests