def __init__(self, service_adapter, cert_manager, parent_ssl_profile=None): self.cert_manager = cert_manager self.parent_ssl_profile = parent_ssl_profile self.vs_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.virtual) self.service_adapter = service_adapter LOG.debug("ListenerServiceBuilder: using parent_ssl_profile %s ", parent_ssl_profile)
def resource_exists(self, resource_type, resource_name, partition=None): helper = resource_helper.BigIPResourceHelper(resource_type) resources = helper.get_resources(self.bigip, partition=partition) for resource in resources: if re.match(resource_name, resource.name): return True return False
def member_exists(self, pool_name, member_name, partition=None): helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.pool) if helper.exists(self.bigip, pool_name, partition=partition): p = helper.load(self.bigip, name=pool_name, partition=partition) m = p.members_s.members return m.exists(name=urllib.quote(member_name), partition=partition) return False
def get_virtual_service_insertion( self, bigip, partition=const.DEFAULT_PARTITION): """Returns list of virtual server addresses""" vs_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.virtual) va_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.virtual_address) virtual_servers = vs_helper.get_resources(bigip, partition=partition) virtual_services = [] for virtual_server in virtual_servers: name = virtual_server.name virtual_address = {name: {}} dest = os.path.basename(virtual_server.destination) (vip_addr, vip_port) = self.split_addr_port(dest) # Get virtual address associated with the virtual server. # split_addr_port can return a tuple where the vip addr is either # a name of the virt address, or the actual IP address. # This code gets a reference to the virt address in the event the # virtual server destination is a named resource, not an IP addr. try: vaddr = va_helper.load( bigip, name=vip_addr, partition=partition) except HTTPError: continue else: # there was no exception: legit VA, so use address from VA vip_addr = vaddr.raw['address'] virtual_address[name]['address'] = vip_addr virtual_address[name]['netmask'] = virtual_server.mask virtual_address[name]['protocol'] = virtual_server.ipProtocol virtual_address[name]['port'] = vip_port virtual_services.append(virtual_address) return virtual_services
def __init__(self, adapter, loadbalancer): self.adapter = adapter self.virtual_address = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.virtual_address) # Immutable attributes self.name = self.adapter.prefix + loadbalancer['id'] self.partition = self.adapter.get_folder_name( loadbalancer['tenant_id']) self.address = loadbalancer.get('vip_address', "") # Mutable attributes self.description = self.adapter.get_resource_description(loadbalancer) self.traffic_group = loadbalancer.get('traffic_group', "") self.auto_delete = False
def __init__(self, f5_global_routed_mode, conf, driver, l3_binding=None): self.f5_global_routed_mode = f5_global_routed_mode self.conf = conf self.driver = driver self.l3_binding = l3_binding self.l2_service = L2ServiceBuilder(driver, f5_global_routed_mode) self.bigip_selfip_manager = BigipSelfIpManager( self.driver, self.l2_service, self.driver.l3_binding) self.bigip_snat_manager = BigipSnatManager( self.driver, self.l2_service, self.driver.l3_binding) self.vlan_manager = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.vlan) self.rds_cache = {} self.interface_mapping = self.l2_service.interface_mapping self.network_helper = NetworkHelper(conf=self.conf) self.service_adapter = self.driver.service_adapter
def __init__(self, service_adapter): self.service_adapter = service_adapter self.http_mon_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.http_monitor) self.https_mon_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.https_monitor) self.tcp_mon_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.tcp_monitor) self.ping_mon_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.ping_monitor) self.pool_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.pool) self.node_helper = resource_helper.BigIPResourceHelper( resource_helper.ResourceType.node)
def get_resource(self, resource_type, resource_name, partition=None): helper = resource_helper.BigIPResourceHelper(resource_type) obj = helper.load(self.bigip, name=resource_name, partition=partition) return obj