Chat about integration tests / installer

Tom Zeller tzeller at dragonacea.biz
Thu Jul 27 15:43:20 EDT 2017


Mostly Rod and Scott,

I pinged Rod off-list and asked if he had time to continue talking
about the installer. Looks like Rod and I are both available
tomorrow/Friday at the usual call time to chat.

Scott if you have time, great, because then you could also start a
Zoom meeting :-)

Details below :

To recap, on the last dev call I asked for advice regarding next steps
in testing Jetty 9.4, and the outcome/goal is to (as Scott said)
"inject property-driven configuration changes at install-time". While
the mechanism should be general, the specific task is to use the
installer to install an IdP suitable for the testbed and integration
tests, replacing some filesystem operations currently accomplished
using Maven and Java. And yes, it needs to work on Windows natively.

Basically, the RFE is to copy files to idp.home before the WAR is built.

For example :

 <copy todir="${idp.target.dir}" >
   <fileset dir="${idp.local.src.dir}" />
 </copy>

where

 idp.target.dir = idp.home, e,g. /opt/shibboleth-idp

 idp.src.dir = idp-distribution, e.g.
downloads/shibboleth-identity-provider-M.N.P

and a new property

 idp.local.src.dir

defines a directory containing configuration files to "prepopulate"
idp.target.dir a.k.a. idp.home.

We could also "postpopulate", but I want to supply credentials, not
generate them throw just to throw them away. So I added this new Ant
target after "allinput" but before "genkeys" in the "install-nocopy"
target in idp.home/bin/build.xml.

To avoid generating credentials, we might need to adjust

 <condition property="idp.will.call.certgen">

with some checks to make sure the credentials don't already exist, e.g. :

 <not>
  <available file="${idp.target.dir}/credentials/idp-signing.key" />
 </not>

Also, FWIW, from the perspective of a downstream installer (like a fed
op, not sure), I think I could create an Ant buildfile which imports
the IdP distribution's (using <import/>) and then overrides targets
yet preserves properties. We could document that, or we could build
hooks into the install flow before and/or after the WAR is built.

That said, Rod sent me a note suggesting that existing Ant targets
might be enough. They might be, but I'm not sure.

So, thanks for reading this far, tomorrow it would be good to hear
feedback on this email / proposal.

Tom

https://wiki.shibboleth.net/confluence/display/DEV/2017-07-21

https://wiki.shibboleth.net/confluence/display/~tzeller@shibboleth.net/Notes+on+IdP+integration+tests


More information about the dev mailing list