(Migrated) Dynamic parameters

(This message has been automatically imported from the retired mailing list)


here’s an idea that I have been thinking about for some time.

In outgoing connections we have things such as external addresses but
they do not necessarily stay static across environments.

For instance, during development, UAT and in production IP addresses of
a given external system will likely change.

One can use DNS aliases from /etc/hosts but they are not perfect because
it is at times desirable to dynamically specify other parameters, such
as content type or URL paths.

This could be dealt with if we were able to additionally specify
configuration in a manner similar to how zato-apitest does it now:


You can find it in the attachment - here two dynamic variables are used
and their values would be in runtime substituted with what was set in
environment variables before a server was started.

We could formulate a wider range of options:

$variable - read from environment

@variable - read from a config file

#variable - read from parameters used in a call to self.outgoing, such
as self.outgoing.plain_http[‘CRM’].post(self.cid, ‘data’, variable=‘123’)

This, I think, would cover a lot of use-cases that are currently handled
by means such as grep’ing through enmasse config and setting
per-environment values before servers start.

What do you think? Is there anything else to consider here?