예제 #1
0
    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)
예제 #2
0
 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)
예제 #4
0
    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)
예제 #6
0
# 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)
예제 #7
0
 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()
예제 #8
0
 def __init__(self):
     self.folder_helper = BigIPResourceHelper(ResourceType.folder)
예제 #9
0
 def __init__(self, conf):
     self.conf = conf
     self.policy_helper = BigIPResourceHelper(ResourceType.l7policy)
     self.rule_helper = BigIPResourceHelper(ResourceType.rule)