Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: nsp: juniper
How to query the results tree from a commit script?
 

Index | Next | Previous | View Flat


tore.anderson at redpill-linpro

May 22, 2012, 6:21 AM


Views: 476
Permalink
How to query the results tree from a commit script?

Hi,

I'm trying to write a template for a commit script that, when called,
will find the first unused unit on an interface and add some transient
config to it. "Unused" means that that the unit isn't defined in the
main configuration file and that an earlier call to the template hasn't
written transient config to it yet.

This second part I have trouble figuring out how to accomplish. The
following template will, when called repeatedly, make the change to the
same unit every time (the first one not defined in the input
configuration file). The second condition in the first if() for
"/commit-script-result/transient-change/..." clearly doesn't work, I
just left it in so it's obvious what I want it to do (I've tried
various other xpath expressions too, without luck). Any suggestion on
how to make this work?


template generate-vpn($unit=0, $ikegw, $local, $remote) {
/* create the tunnel sub-interfaces on this interface */
var $iface = "st0";

/*
* call the template recursively until we find the first unused
* unit on the interface (poor man's iterator)
*/
if(/commit-script-input/configuration/interfaces/interface[name == $iface]/unit[name == $unit] ||
/commit-script-results/transient-change/interfaces/interface[name == $iface]/unit[name == $unit]) {
call emit-vpn-definition() {
with $unit = $unit + 1;
with $ikegw = $ikegw;
with $local = $local;
with $remote = $remote;
}
} else {
/* found the first available unit, now add the transient change */
<xnm:warning> {
<message> "adding interface=" _ $iface _ "." _ $unit _ "; ikegw=" _ $ikegw _ "; local=" _ $local _ "; remote=" _ $remote;
}
<transient-change> {
<interfaces> {
<interface> {
<name> $iface;
<unit> {
<name> $unit;
<description> "ikegw=" _ $ikegw _ "; local=" _ $local _ "; remote=" _ $remote;
<family> {
<inet>;
}
}
}
}
}
}
}

If I can make this work, the idea is to extend the transient change to
also add filter-based forwarding for the src/dst network into the right
st0.x interface, plus generating vpn entries for under security ipsec
with matching proxy identities and bind-interface, so that I can make
the SRX establish multi-phase2 IPSEC VPNs to e.g. Cisco ASA without
requiring a massive configuration file. The box is running JUNOS
12.1R1.9.

Best regards,
--
Tore Anderson
Redpill Linpro AS - http://www.redpill-linpro.com
_______________________________________________
juniper-nsp mailing list juniper-nsp [at] puck
https://puck.nether.net/mailman/listinfo/juniper-nsp

Subject User Time
How to query the results tree from a commit script? tore.anderson at redpill-linpro May 22, 2012, 6:21 AM
    Re: How to query the results tree from a commit script? ccall at juniper May 22, 2012, 3:37 PM
    Re: How to query the results tree from a commit script? tore.anderson at redpill-linpro May 23, 2012, 12:18 AM
    Re: How to query the results tree from a commit script? benny+usenet at amorsen May 23, 2012, 1:22 AM
    Re: How to query the results tree from a commit script? benny+usenet at amorsen May 23, 2012, 1:32 AM
    Re: How to query the results tree from a commit script? phil at juniper May 23, 2012, 6:13 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.