def purge_folder_contents(self, bigip, folder): network_helper = NetworkHelper() if folder not in self.exempt_folders: # First remove all LTM resources. ltm_types = [ ResourceType.virtual, ResourceType.pool, ResourceType.http_monitor, ResourceType.https_monitor, ResourceType.tcp_monitor, ResourceType.ping_monitor, ResourceType.node, ResourceType.snat, ResourceType.snatpool, ResourceType.snat_translation, ResourceType.rule ] for ltm_type in ltm_types: resource = BigIPResourceHelper(ltm_type) [r.delete() for r in resource.get_resources(bigip, folder)] # Remove all net resources net_types = [ ResourceType.arp, ResourceType.selfip, ResourceType.vlan, ResourceType.route_domain ] for net_type in net_types: resource = BigIPResourceHelper(net_type) [r.delete() for r in resource.get_resources(bigip, folder)] # Tunnels and fdb's require some special attention. resource = BigIPResourceHelper(ResourceType.tunnel) tunnels = resource.get_resources(bigip, folder) for tunnel in tunnels: network_helper.delete_all_fdb_entries(bigip, tunnel.name, folder) network_helper.delete_tunnel(bigip, tunnel.name, folder)
def __init__(self, driver, l2_service, l3_binding): self.driver = driver self.l2_service = l2_service self.l3_binding = l3_binding self.snatpool_manager = BigIPResourceHelper(ResourceType.snatpool) self.snat_translation_manager = BigIPResourceHelper( ResourceType.snat_translation) self.network_helper = NetworkHelper()
def resource_exists(self, bigip, tag_name, resource_type): helper = BigIPResourceHelper(resource_type) name = tag_name # allow user to define chain cert name with or without '.crt' if resource_type == ResourceType.ssl_cert_file and not \ name.endswith('.crt'): name += '.crt' return helper.exists_in_collection(bigip, name)
def __init__(self, event, f5_l7policy): self.event = event self.f5_l7policy = f5_l7policy self.helper = BigIPResourceHelper(ResourceType.l7policy) if event == 'DELETE_L7POLICY': # both rules and policies handled by same method self.execute = self.delete else: # create and update event for both rules and polices self.execute = self.create
def __init__(self, service_adapter): self.service_adapter = service_adapter self.http_mon_helper = BigIPResourceHelper(ResourceType.http_monitor) self.https_mon_helper = BigIPResourceHelper(ResourceType.https_monitor) self.tcp_mon_helper = BigIPResourceHelper(ResourceType.tcp_monitor) self.ping_mon_helper = BigIPResourceHelper(ResourceType.ping_monitor) self.pool_helper = BigIPResourceHelper(ResourceType.pool) self.node_helper = BigIPResourceHelper(ResourceType.node)
# Note: symbols_data provided through commandline json file. from pytest import symbols as symbols_data class DummyConf(object): def __init__(self): self.environment_prefix = 'Project' self.f5_snat_mode = True requests.packages.urllib3.disable_warnings(InsecureRequestWarning) disconnected_service = DisconnectedService() service_adapter = ServiceModelAdapter(DummyConf()) listener_builder = ListenerServiceBuilder(service_adapter) folder_helper = BigIPResourceHelper(ResourceType.folder) bigips = [ BigIP(symbols_data.bigip_ip, symbols_data.bigip_username, symbols_data.bigip_password) ] def deploy_service(service_file): service = {'listeners': []} folder = None try: service = json.load(open(service_file))["service"] # create partition folder = service_adapter.get_folder(service)
def __init__(self, driver, l2_service, l3_binding): self.driver = driver self.l2_service = l2_service self.l3_binding = l3_binding self.selfip_manager = BigIPResourceHelper(ResourceType.selfip) self.network_helper = NetworkHelper()
def __init__(self): self.folder_helper = BigIPResourceHelper(ResourceType.folder)
def __init__(self, conf): self.conf = conf self.policy_helper = BigIPResourceHelper(ResourceType.l7policy) self.rule_helper = BigIPResourceHelper(ResourceType.rule)