Forum Discussion
vgeorge_113186
Nimbostratus
Feb 07, 2012creation of LocalLB::VirtualServer not reflecting in /config/*.conf files
I am creating a LocalLB::VirtualServer & it successfully created. I can see the newly created Virtual Server in the GUI. But I am unable to see the difference in /config/*.conf files.
Basically I want see what diff's are making the creation of a LocalLB virtualServer on configuration files. can somebody help me out. I am using Pycontrol & iControl APIs for doing the same. pasted the code below
!/bin/env python
import os
import time
import pycontrol.pycontrol as pycontrol
import util
Required SOAP namespace
WSDL = ['LocalLB.VirtualServer', 'LocalLB.VirtualAddressV2', 'System.ConfigSync', 'System.SystemInfo']
USER = 'admin'
PASS = 'infoblox'
HOST1 = '10.39.9.5'
b = pycontrol.BIGIP(hostname=HOST1, username=USER, password=PASS, fromurl=True, wsdls=WSDL, debug=False)
VERSION = b.System.SystemInfo.get_version()
v = b.LocalLB.VirtualServer
VIRTUAL_SVR_NAME = 'vs_11_11_11_11_53_gtm'
def Create_Virtual_Server():
b.LocalLB.VirtualServer.create(
vs_def = v.typefactory.create('Common.VirtualServerDefinition')
vs_def.name = VIRTUAL_SVR_NAME
vs_def.address = '11.11.11.11'
vs_def.port = 53
proto = v.typefactory.create('Common.ProtocolType')
vs_def.protocol = proto.PROTOCOL_UDP
vs_def_seq = v.typefactory.create('Common.VirtualServerSequence')
vs_def_seq.item = [vs_def]
context = v.typefactory.create('LocalLB.ProfileContextType')
prof = v.typefactory.create('LocalLB.VirtualServer.VirtualServerProfile')
prof.profile_context = context.PROFILE_CONTEXT_TYPE_ALL
prof.profile_name = 'udp_gtm_dns'
prof_dns= v.typefactory.create('LocalLB.VirtualServer.VirtualServerProfile')
prof_dns.profile_name = 'dns'
prof_seq = v.typefactory.create('LocalLB.VirtualServer.VirtualServerProfileSequence')
prof_seq.item = [prof, prof_dns ]
v.create(
definitions = vs_def_seq,
wildmasks=['255.255.255.255'],
resources=[[]],
profiles=[prof_seq] )
def main():
Create_Virtual_Server()
main()
10 Replies
- iControl, by default, doesn't flush the configuration to disk (ie, /config/bigip.conf, bigip_base.conf). The reason is as simple in that it takes too long. If you have a large configuration, saving to disk can take seconds and when you are trying to make numerous API method calls, a couple seconds between calls can be very painful.
When you are good with the changes you've made, you will have to call the System.ConfigSync.save_configuration() method to force a flush to disk.
-Joe - mhite_60883
Cirrocumulus
So, uh, does it eventually flush it to disk, even if you don't do System.ConfigSync.save_configuration()? [That would seem to be our observation...] Slightly confused by your answer... - snovakov_86258
Nimbostratus
Hi mhite!
No, one must do a System.ConfigSync.save_configuration() call to save the config change you've made.
It is quite slow. - Posted By mhite on 02/07/2012 09:24 AM
So, uh, does it eventually flush it to disk, even if you don't do System.ConfigSync.save_configuration()? [That would seem to be our observation...] Slightly confused by your answer...
If you go into the GUI and make a change, it will then flush the running time configuration to disk on each page save. So, if you make iControl changes, and then someone changes a setting in the GUI, it will then get flushed to disk. But, if you are just modifying the config via iControl, then it shouldn't flush without you calling the save_configuration() method.
-Joe - Posted By snovakov on 02/07/2012 09:39 AM
Hi mhite!
No, one must do a System.ConfigSync.save_configuration() call to save the config change you've made.
It is quite slow, mostly because (as I found out the other day), the 'SaveMode' type that is listed as 'SAVE_HIGH_LEVEL_CONFIG' is not supported anymore, at least in the Perl version of iControl that I am using (10.2.0).
I have to use the 'SAVE_FULL' mode, which can take quite long if the configuration is "large" on the F5 Big IP box you're targeting.
I just checked the code for v10.2 and from what I can tell, System.ConfigSync.save_configuration() supports the SAVE_FULL, SAVE_HIGH_LEVEL_CONFIG, and SAVE_BASE_LEVEL_CONFIG parameters. For SAVE_HIGH_LEVEL_CONFIG, it will issue a "bigpipe save" command. For SAVE_BASE_LEVEL_CONFIG, it will issue a "bigpipe base save" command. For SAVE_FULL, it does some other calls to "bigpipe config save" with optional encryption parameters.
For v11 and above, it uses the tmsh equivalents.
Are you seeing errors when trying to run save_configuration() with SAVE_BASE_LEVEL_CONFIG?
-Joe - snovakov_86258
Nimbostratus
Sorry, Joe.
I believe I was confusing the configSync() method and the configSave() method:
When I tried using a 'sync_flag' argument of 'CONFIGSTNC_BASIC', I got:
SOAP-ENV:Server :Exception caught in System::urn:iControl:System/ConfigSync::synchronize_configuration() Exception: Common::OperationFailed primary_error_code : 16908289 (0x01020001) secondary_error_code : 0 error_string : Error synchronizing configuration: 012e0049:3: The requested command (config sync min) is no longer supported.
~ snovakov - snovakov_86258
Nimbostratus
Joe,
Thanks for the informative posting on this.Doesn't the SAVE_FULL do a 'bigpipe config save all'?
~ snovakov - Yes, but there's a separate entry path if you call the save_encrypted_configuration() method where it append passphrase info.
-Joe - vgeorge_113186
Nimbostratus
System.ConfigSync.save_configuration() works for me. thanks Joe - vgeorge_113186
Nimbostratus
I observed that System.ConfigSync.save_configuration() is works with v11 devices but it doesn't flush in the case of v10 devices. any info?
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects