Building a java application to orchestrate F5 creation and configuration.
We make the following iControl calls to the F5 (in this order):
1) bigIp.ManagementDevice().get_failover_state(devices) - loop untill the state returned is HA_STATE_ACTIVE
2) upload base (vlan,selfip,etc..) iApp template
3) configureTemplate - bigIp.ManagementApplicationService().create() - that's where it usually fails
4) save configuration
6) upload iapp template 2
7) configureTemplate - bigIp.ManagementApplicationService().create() - sometimes fails
During step 3, we usually get something like this:
error_string : 01020005:3: The requested operation is not implemented yet.
I've set the code to retry if it encounters a failure. After a couple tries, the code will succeed and move on. But this is silly, I should be able to make the correct iControl calls to BIG-IP to validate that it is in a happy state and can accept my iControl iApp commands.
Anyone have any thoughts on how to create a robust request or group of requests to F5 to know that it's ready?
You may be triggering the iApp's implementation before the control plane (mcp) is ready. In tmsh, I would watch "show sys mcp" until it is in a running state. BTW, why are you uploading the iApp before licensing (steps 2 and 3), and again afterwards (steps 6 and 7)?
Thanks Fred, We are implementing 3 different iapps, so we upload 1, run 1, upload2, run2, upload 3, run 3.
We have it broken out this way because I have a few other scenarios we use and I'm mixing and matching iApps so each one is it's own function.
That's a good point about mcpd. I'll add some code that checks the services that are running before I run my commands to see if that seems to be the issue.
OK, I understand. If your goals is to bring these apps up quickly, perhaps a different order would help: 1) license, 2) upload all 3 iapps, 3) pause for system readiness, 4) run all 3 iapps, 5) save config.
Yeah, that sounds like a plan. It's the "pause for system readiness" that I'm trying to get rid of. I'd rather query something to know the system is definitely ready and then go as opposed to pause, try, fail, pause, try, fail, pause, try work, but I definitely like the idea of reordering.