Passing variables directly from iApps to TMSH.
Try as I might I just can't seem to work out how to get an iApp to pass a command to TMSH.
I am trying to automate (via an iApp) the setup of around 300 GRE tunnels. I've created the iApp at the presentation section and made sure my variables have the correct information by writing them to scriptd.out via "puts"
For Example, once a user fills in the fields presented to them via presentation, the resulting command set of variables is:
Presentation Form:
This would then translate into:
puts [format "Example GRE Loopback command: %s" $::NONFLOAT$::GRESourceLoopback__lb-$::GRESourceLoopback__diocese-$::GRESourceLoopback__orgid$::IPADDRESS$::GRESourceLoopback__loopback/32$::TRAFFICGROUP$::VLANLOOPBACK]
When I send it to the Log file the actual command reads:
create /net self zscaler-wcf-gre-source-nonfloat-lb01-dbb-12345 address 10.4.200.200/32 traffic-group traffic-group-local-only vlan zscaler-wcf-gre-loopback
How do I pass that command straight to TMSH from the Implementation part of the iApp?
I've tried to get my head around iapp::conf but I don't understand what may need to "escaped" or not in the variables.
Thanks....
This is useful for when scripting tmsh: Documentation for tmsh scripting Commands.
Looks like tmsh create is the syntax you are looking to use here.
app::config procedure is nice as it returns the object name of the object created and handles the appropriate tmsh scripting command based on input (create/modify/delete). Although, you will need to escape brackets and a few other characters such as backslashes.