如何使用 iControl Service 服务

python:

import sys
import pycontrol.pycontrol as pc
import time
import csv
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
pool='YXPT_ust_pool'

b = pc.BIGIP(
hostname = '1.1.1.1',
username = 'zjtlcb',
password = '123456',
fromurl = True,
    wsdls=['LocalLB.VirtualServer'])
pools = b.LocalLB.VirtualServer
print pools
print dir(pools)

print dir(pools)
a= pools.get_default_pool_name(virtual_servers=['esb_hg_vs'])
# print type(a)

print a



import sys
import pycontrol.pycontrol as pc
import time
import csv
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
pool='YXPT_ust_pool'

b = pc.BIGIP(
hostname = '1.1.1.1',
username = 'zjtlcb',
password = '123456',
fromurl = True,
    wsdls=['LocalLB.VirtualServer'])
pools = b.LocalLB.VirtualServer
print pools
print dir(pools)

print dir(pools)
a= pools.get_default_pool_name()
# print type(a)

print a


C:Python27python.exe C:/Users/tlcb/PycharmProjects/untitled/f5/get_f5_default_pool.py
<pycontrol.pycontrol.InterfaceInstance object at 0x03DAC030>
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add_authentication_profile', 'add_clone_pool', 'add_httpclass_profile', 'add_persistence_profile', 'add_profile', 'add_rule', 'create', 'delete_all_virtual_servers', 'delete_persistence_record', 'delete_virtual_server', 'get_actual_hardware_acceleration', 'get_all_statistics', 'get_authentication_profile', 'get_clone_pool', 'get_cmp_enable_mode', 'get_cmp_enabled_state', 'get_connection_limit', 'get_connection_mirror_state', 'get_default_pool_name', 'get_destination', 'get_enabled_state', 'get_fallback_persistence_profile', 'get_gtm_score', 'get_httpclass_profile', 'get_last_hop_pool', 'get_list', 'get_module_score', 'get_object_status', 'get_persistence_profile', 'get_persistence_record', 'get_profile', 'get_protocol', 'get_rate_class', 'get_rule', 'get_snat_pool', 'get_snat_type', 'get_source_port_behavior', 'get_statistics', 'get_translate_address_state', 'get_translate_port_state', 'get_type', 'get_version', 'get_vlan', 'get_wildmask', 'name', 'remove_all_authentication_profiles', 'remove_all_clone_pools', 'remove_all_httpclass_profiles', 'remove_all_persistence_profiles', 'remove_all_profiles', 'remove_all_rules', 'remove_authentication_profile', 'remove_clone_pool', 'remove_httpclass_profile', 'remove_persistence_profile', 'remove_profile', 'remove_rule', 'reset_statistics', 'set_cmp_enabled_state', 'set_connection_limit', 'set_connection_mirror_state', 'set_default_pool_name', 'set_destination', 'set_enabled_state', 'set_fallback_persistence_profile', 'set_gtm_score', 'set_last_hop_pool', 'set_protocol', 'set_rate_class', 'set_snat_automap', 'set_snat_none', 'set_snat_pool', 'set_source_port_behavior', 'set_translate_address_state', 'set_translate_port_state', 'set_type', 'set_vlan', 'set_wildmask', 'suds', 'typefactory']
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add_authentication_profile', 'add_clone_pool', 'add_httpclass_profile', 'add_persistence_profile', 'add_profile', 'add_rule', 'create', 'delete_all_virtual_servers', 'delete_persistence_record', 'delete_virtual_server', 'get_actual_hardware_acceleration', 'get_all_statistics', 'get_authentication_profile', 'get_clone_pool', 'get_cmp_enable_mode', 'get_cmp_enabled_state', 'get_connection_limit', 'get_connection_mirror_state', 'get_default_pool_name', 'get_destination', 'get_enabled_state', 'get_fallback_persistence_profile', 'get_gtm_score', 'get_httpclass_profile', 'get_last_hop_pool', 'get_list', 'get_module_score', 'get_object_status', 'get_persistence_profile', 'get_persistence_record', 'get_profile', 'get_protocol', 'get_rate_class', 'get_rule', 'get_snat_pool', 'get_snat_type', 'get_source_port_behavior', 'get_statistics', 'get_translate_address_state', 'get_translate_port_state', 'get_type', 'get_version', 'get_vlan', 'get_wildmask', 'name', 'remove_all_authentication_profiles', 'remove_all_clone_pools', 'remove_all_httpclass_profiles', 'remove_all_persistence_profiles', 'remove_all_profiles', 'remove_all_rules', 'remove_authentication_profile', 'remove_clone_pool', 'remove_httpclass_profile', 'remove_persistence_profile', 'remove_profile', 'remove_rule', 'reset_statistics', 'set_cmp_enabled_state', 'set_connection_limit', 'set_connection_mirror_state', 'set_default_pool_name', 'set_destination', 'set_enabled_state', 'set_fallback_persistence_profile', 'set_gtm_score', 'set_last_hop_pool', 'set_protocol', 'set_rate_class', 'set_snat_automap', 'set_snat_none', 'set_snat_pool', 'set_source_port_behavior', 'set_translate_address_state', 'set_translate_port_state', 'set_type', 'set_vlan', 'set_wildmask', 'suds', 'typefactory']
No handlers could be found for logger "suds.client"
Traceback (most recent call last):
  File "C:/Users/tlcb/PycharmProjects/untitled/f5/get_f5_default_pool.py", line 20, in <module>
    a= pools.get_default_pool_name()
  File "C:Python27libsite-packagessudsclient.py", line 542, in __call__
    return client.invoke(args, kwargs)
  File "C:Python27libsite-packagessudsclient.py", line 602, in invoke
    result = self.send(soapenv)
  File "C:Python27libsite-packagessudsclient.py", line 649, in send
    result = self.failed(binding, e)
  File "C:Python27libsite-packagessudsclient.py", line 702, in failed
    r, p = binding.get_fault(reply)
  File "C:Python27libsite-packagessudsindingsinding.py", line 265, in get_fault
    raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'Could not find element by name: virtual_servers'

Process finished with exit code 1



[root@yyjk tmp]# grep 'virtual_servers' /tmp/aaa | sort -u
		<input message="tns:LocalLB.VirtualServer.delete_all_virtual_serversRequest"/>
<message name="LocalLB.VirtualServer.delete_all_virtual_serversRequest">
<message name="LocalLB.VirtualServer.delete_all_virtual_serversResponse">
	<operation name="delete_all_virtual_servers">
		<output message="tns:LocalLB.VirtualServer.delete_all_virtual_serversResponse"/>
	<part name="virtual_servers" type="tns:Common.StringSequence"/>
	
查看perl版本:

##获取所有定义的LTM 虚拟机服务器
my @ltm_virtuals = $ic->get_ltm_vs_list();
##Returns an array of all defined LTM virtual servers. 返回所有的LTM virtual servers

foreach $vs (@ltm_virtuals){
  print $vs;
  print "
";
#获取指定的LTM 虚拟机服务器的目的地,格式为ip:port
  my $destination = $ic->get_vs_destination($vs);
  #Returns the default pool names for the specified virtual server.
  my $default_pool_name = $ic->get_default_pool_name ($vs);
  
 
get_ltm_vs_list 方法是没有参数的:
 
sub get_ltm_vs_list {
        return @{$_[0]->_request(module => 'LocalLB', interface => 'VirtualServer', method => 'get_list')};
}



import sys
import pycontrol.pycontrol as pc
import time
import csv
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
pool='YXPT_ust_pool'

b = pc.BIGIP(
hostname = '1.1.1.1',
username = 'zjtlcb',
password = '123456',
fromurl = True,
    wsdls=['LocalLB.VirtualServer'])
pools = b.LocalLB.VirtualServer
print pools
print dir(pools)

print dir(pools)
a= pools.get_list()
# # print type(a)
#
print a


#Returns the default pool names for the specified virtual server.

sub get_default_pool_name {
        my ($self, $vs)=@_;
        return @{$self->_request(module => 'LocalLB', interface => 'VirtualServer', method => 'get_default_pool_name', data => {virtual_servers => [$vs]})}[0]
}

import sys
import pycontrol.pycontrol as pc
import time
import csv
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
pool='YXPT_ust_pool'

b = pc.BIGIP(
hostname = '1.1.1.1',
username = 'zjtlcb',
password = '123456',
fromurl = True,
    wsdls=['LocalLB.VirtualServer'])
pools = b.LocalLB.VirtualServer
print pools
print dir(pools)

print dir(pools)
a= pools.get_default_pool_name(virtual_servers=['esb_hg_vs'])
# print type(a)

print a

  
原文地址:https://www.cnblogs.com/hzcya1995/p/13348968.html