[Geoserver-users] Configuration of staged GeoServer installations

Hi all,

our development process for a GeoServer project consists of the typical stages:

- continuous integration stage
- user acceptance test stage
- ...
- production stage

The GeoServer configuration is the same for all stages except from a
few properties like

- URLs of cascaded, external WMS
- URLs of cascaded, external WFS
- ...

We have the geoserver data dir under version control and deploy the
data dir to each of the stages.

Problem:
The configuration has to be adjusted per stage.

Currently we adjust this configuration by automated search & replace
in our deployment pipeline.
However, at our customers site that is not easily possible.

I think it would be nice to have variable substitution in various
settings, like external URLs. Maybe substitution from system property
or the like. But I suppose variable substitution is not yet available,
is it?

Question:
How do you handle this?

Best regards,
Andreas

On Wed, Feb 24, 2016 at 5:44 PM, Andreas Watermeyer <
Andreas.Watermeyer@anonymised.com> wrote:

I think it would be nice to have variable substitution in various
settings, like external URLs. Maybe substitution from system property
or the like. But I suppose variable substitution is not yet available,
is it?

It is not indeed. For database connections you can use JDNI to externalize
the connection pool configuration, but for the rest, no support yet.
(and yes, it is annoying).

I agree it would be great to have some level of variable substitution...
for datastores I believe it may not be too hard, if there are other
settings it might get annoying... as in, it will be a case by case thing.
A guide for these requests:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Hi Andrea,

variable substitution might be quite easy to achieve when implemented in the config parsing layer - XStream.

XStream has “Converters” for example for to-string conversion. That might work, affecting all configurations globally.

What do you think?

Best regards,

Andreas

···

2016-02-24 18:02 GMT+01:00 Andrea Aime <andrea.aime@anonymised.com>:

On Wed, Feb 24, 2016 at 5:44 PM, Andreas Watermeyer <Andreas.Watermeyer@anonymised.com> wrote:

I think it would be nice to have variable substitution in various
settings, like external URLs. Maybe substitution from system property
or the like. But I suppose variable substitution is not yet available,
is it?

It is not indeed. For database connections you can use JDNI to externalize
the connection pool configuration, but for the rest, no support yet.
(and yes, it is annoying).

I agree it would be great to have some level of variable substitution…
for datastores I believe it may not be too hard, if there are other
settings it might get annoying… as in, it will be a case by case thing.
A guide for these requests:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Andreas Watermeyer

office: +49 (0)221 820 07 14

ITS Telco Services GmbH
GIS Services & Solutions
Telecommunications Division
Dillenburger Str. 77
D-51105 Köln
Tel.: +49 (0)221 820 07 00
Fax : +49 (0)221 820 07 22
Mail: info@anonymised.com
Web : http://www.its-telco.de

Sitz der Gesellschaft: Köln
Amtsgericht Köln, HRB 59310
Geschäftsführer: Gunnar Haack, Ralf Petersilka, Michael Schnepf, Kai Schriewer, Ludger Schulte

Diese E-Mail enthält vertrauliche Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser E-Mail ist nicht gestattet.

This e-mail may contain confidential information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

On Thu, Feb 25, 2016 at 2:06 PM, Andreas Watermeyer <
Andreas.Watermeyer@anonymised.com> wrote:

Hi Andrea,

variable substitution might be quite easy to achieve when implemented in
the config parsing layer - XStream.
XStream has "Converters" for example for to-string conversion. That might
work, affecting all configurations globally.
What do you think?

Could work, but wouldn't it mean that you cannot edit stuff with variables
anymore in the UI, and if you
try to edit and save, you might get your variable overridden (unless of
course there is something replacing them back).

Anyways, it's a possibility, but GeoServer makes heavy use of custom
converters, some of which spread out in the code
base, so... hmm... could be quite a bit of work, and again, case by case
stuff (which field of which bean do we need
to perform substitution on?).
Also, not everything in GeoServer is driven by XStream, some community
modules are not, not completely
sure what the security subsytem does either.

Anyways, here is the largest concentrated lot of converters, but you'll
find others around:
https://github.com/geoserver/geoserver/blob/master/src/main/src/main/java/org/geoserver/config/util/XStreamPersister.java

As said, I'd first identify which types of configuration you want to make
templatable, and then
check what can be done depending on how they are managed internally.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------